Pular para o conteúdo

Como licenciar um projeto de código aberto, passo a passo

Escolha a licença e copie os três trechos: o arquivo LICENSE, o campo license do package.json e o cabeçalho SPDX.

Para licenciar um projeto: ponha o texto da licença num arquivo LICENSE na raiz, declare o id SPDX no package.json (campo license) e, se quiser, acrescente uma linha SPDX-License-Identifier no topo de cada arquivo de código.

Informação, não aconselhamento jurídico. Os resumos são nossos e simplificam; o texto oficial da licença é o que vale. Para decisões com consequência legal ou financeira, consulte um advogado.

Passo 1. Arquivo de licença na raiz do projeto

LICENSE
curl -L -o LICENSE https://raw.githubusercontent.com/spdx/license-list-data/main/text/MIT.txt
Este texto é um modelo com lacunas: abra o arquivo e troque <year> e <copyright holders> pelo ano e pelo nome do titular dos direitos. No PowerShell do Windows, use curl.exe no lugar de curl. Quer ler antes? Texto na lista SPDX ou página de quem mantém a licença.

Passo 2. Declarar a licença no package.json

package.json
{
  "license": "MIT"
}
Campo license com o id SPDX. Para um projeto que não pode ser usado por ninguém, o npm aceita o valor UNLICENSED.

Passo 3. Cabeçalho SPDX em cada arquivo de código (opcional)

JavaScript, TypeScript, C, Java, Go…
// SPDX-License-Identifier: MIT
Python, Shell, Ruby, YAML…
# SPDX-License-Identifier: MIT

Uma linha no topo do arquivo, com a etiqueta SPDX-License-Identifier, ajuda ferramentas a reconhecer a licença de cada arquivo.

Cargo.toml (Rust)
[package]
license = "MIT"
O crates.io lê o campo license como expressão SPDX.
pyproject.toml (Python)
[project]
license = "MIT"
A chave license aceita uma expressão SPDX (PEP 639).

Antes de copiar: o que decidir e o que conferir

  • Escolha a licença primeiro. Se ainda não escolheu, use o escolhedor de três perguntas ou compare as 14 na tabela comparativa.
  • Preencha as lacunas. MIT, BSD-2-Clause, BSD-3-Clause e ISC são textos-modelo, com ano e titular dos direitos a preencher. Apache-2.0, GPL, LGPL, AGPL, MPL, EPL, BSL, Unlicense e CC0 têm texto fixo: o arquivo vai como está.
  • Confira o id SPDX. Para GPL, LGPL e AGPL, o id sem sufixo (GPL-3.0) está obsoleto na lista SPDX: use -only ou -or-later. O seletor acima já escreve a forma vigente.
  • Duas licenças ao mesmo tempo. A documentação do Cargo mostra a expressão MIT OR Apache-2.0, em que o OR indica que quem usa pode escolher qualquer uma das duas.
  • Dependências têm licença própria. A licença do seu projeto não muda a das bibliotecas que ele usa; para saber se as combinações são permitidas, veja a página de compatibilidade.

Exemplo resolvido: um pacote npm sob MIT

Do zero ao projeto licenciado
  1. Na raiz do projeto, rode o comando do passo 1 com MIT selecionada. O arquivo LICENSE aparece com o modelo da lista SPDX.
  2. Abra o LICENSE e troque as lacunas pelo ano e pelo seu nome.
  3. No package.json, acrescente "license": "MIT".
  4. Opcional: ponha // SPDX-License-Identifier: MIT na primeira linha dos arquivos de código.
  5. Faça o commit. Quem abrir o repositório, o pacote no npm ou uma ferramenta de análise de licenças passa a ver a licença declarada.
Resultado no package.json
{
  "name": "meu-pacote",
  "version": "1.0.0",
  "license": "MIT"
}

E se o projeto ficar sem licença?

Sem licença, o projeto não dá a ninguém permissão de uso, mesmo estando público. Segundo o choosealicense.com, o trabalho fica sob direito autoral exclusivo por padrão, e ninguém mais pode copiar, distribuir ou modificar. Os termos do GitHub permitem que outras pessoas vejam e façam fork de um repositório público, mas isso não autoriza usar, modificar ou compartilhar para qualquer fim.

Se a intenção é manter o código fechado, o npm tem o valor UNLICENSED para o campo license, que indica que você não concede a ninguém direitos de uso; a documentação sugere também "private": true para evitar publicação acidental.

Onde cada instrução vem

Fontes abertas em 11/10/2026.

Perguntas frequentes

Como adiciono uma licença ao meu projeto?

Crie um arquivo de texto (em geral LICENSE) na raiz do projeto com o texto da licença, declare o id SPDX no package.json (campo license) ou no arquivo equivalente do seu ecossistema e, se quiser, ponha uma linha SPDX-License-Identifier no topo de cada arquivo de código.

O que escrever no campo license do package.json?

O identificador SPDX da licença, por exemplo "MIT". Para licenças comuns como MIT ou BSD-2-Clause, a documentação do npm manda usar o identificador SPDX vigente. Para GPL, use "GPL-3.0-only" ou "GPL-3.0-or-later".

Preciso colocar meu nome no arquivo de licença?

Nas licenças modelo (MIT, BSD-2-Clause, BSD-3-Clause, ISC), sim: o texto tem lacunas de ano e titular dos direitos que você preenche. Nas licenças de texto fixo (Apache-2.0, GPL, MPL e outras), o arquivo vai como está.

O que acontece se eu não colocar licença?

Segundo o choosealicense, o trabalho fica sob direito autoral exclusivo por padrão e ninguém mais pode copiar, distribuir ou modificar. Quem quer que o projeto seja usado precisa declarar uma licença.