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
curl -L -o LICENSE https://raw.githubusercontent.com/spdx/license-list-data/main/text/MIT.txtcurl.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
{
"license": "MIT"
}Passo 3. Cabeçalho SPDX em cada arquivo de código (opcional)
// SPDX-License-Identifier: MIT# SPDX-License-Identifier: MITUma linha no topo do arquivo, com a etiqueta SPDX-License-Identifier, ajuda ferramentas a reconhecer a licença de cada arquivo.
[package]
license = "MIT"[project]
license = "MIT"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
-onlyou-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
- Na raiz do projeto, rode o comando do passo 1 com MIT selecionada. O arquivo
LICENSEaparece com o modelo da lista SPDX. - Abra o
LICENSEe troque as lacunas pelo ano e pelo seu nome. - No
package.json, acrescente"license": "MIT". - Opcional: ponha
// SPDX-License-Identifier: MITna primeira linha dos arquivos de código. - 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.
{
"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.
- Nome e conteúdo do arquivo de licença (
howde cada licença): choosealicense.com. - Campo
licensedopackage.json: documentação do npm (página editada em 23/04/2025). - Linha
SPDX-License-Identifier: spdx.dev (atualizada em 24/02/2026). - Cargo e pyproject.toml (PEP 639): campo license como expressão SPDX.
Continue por aqui
Cada página resolve uma parte da escolha.
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.