Como funciona
Claude Code define a variável de ambienteCLAUDECODE como 1 para cada comando que executa através das ferramentas Bash e PowerShell, e para comandos de hook. A partir da v2.1.172, também define CLAUDE_CODE_CHILD_SESSION como 1 nesses mesmos subprocessos. Quando sua CLI vê uma dessas variáveis, ela escreve uma tag auto-fechável <claude-code-hint /> para stderr. Em comandos de hook, a tag de dica é removida e ignorada. Apenas a saída das ferramentas Bash e PowerShell dispara o prompt de instalação.
Quando Claude Code recebe a saída do comando, ele:
- Verifica linhas de dica e as remove antes da saída chegar ao modelo
- Verifica se a dica aponta para um plugin em um marketplace oficial da Anthropic
- Verifica se o plugin ainda não foi instalado e não foi solicitado antes
- Mostra ao usuário um prompt de instalação que nomeia o comando que emitiu a dica
Emita a dica
Gate a emissão em uma variável de ambiente para que o marcador seja improvável de aparecer quando um humano executa seu CLI diretamente, depois escreva a tag para stderr em sua própria linha. Escolha qual variável verificar:CLAUDECODE: definida em todas as versões do Claude Code, portanto atinge a maioria das sessões. Também é definida em sessões tmux e subprocessos do servidor MCP stdio que Claude Code inicia. Extensões IDE também a definem em seus terminais integrados, onde um humano pode estar executando seu CLI diretamente.CLAUDE_CODE_CHILD_SESSION: definida apenas em subprocessos que o próprio Claude Code gera, como chamadas de ferramenta, comandos hook e comandos da linha de status, portanto a tag normalmente não atinge um terminal humano. Um processo de longa duração que foi iniciado dentro de uma sessão, como um servidor tmux, captura a variável, portanto shells iniciados posteriormente a partir desse processo ainda mostram a tag bruta. Requer Claude Code v2.1.172 ou posterior, portanto sessões em versões mais antigas perdem a dica.
CLAUDECODE para máximo alcance e emitem uma dica para um plugin chamado example-cli no marketplace oficial:
example-cli pelo nome do seu plugin no marketplace oficial.
Escolha onde emitir
Você controla quais caminhos de código emitem a dica. Claude Code deduplica por plugin, portanto emitir em cada invocação não tem desvantagem. Os pontos de contato que funcionam bem incluem:| Posicionamento | Por que funciona |
|---|---|
Saída de --help | Claude frequentemente executa help ao explorar uma CLI desconhecida |
| Erros de subcomando desconhecido | Atinge o momento em que Claude está confuso sobre sua interface |
| Sucesso de login ou autenticação | O usuário já está em uma mentalidade de configuração |
| Mensagem de boas-vindas na primeira execução | Um momento natural de integração |
O que o usuário vê
Quando a dica passa em todas as verificações, Claude Code mostra um prompt como o seguinte:- Uma vez por plugin: após o prompt ser exibido, Claude Code registra o plugin e nunca o solicita novamente, independentemente da resposta do usuário.
- Uma vez por sessão: em todas as CLIs da máquina, no máximo um prompt de dica aparece por sessão do Claude Code.
Formato da dica
A dica é uma tag auto-fechável com três atributos obrigatórios.| Atributo | Obrigatório | Descrição |
|---|---|---|
v | Sim | Versão do protocolo. 1 é o único valor suportado |
type | Sim | Tipo de dica. plugin é o único valor suportado |
value | Sim | Identificador do plugin na forma name@marketplace |
Requisitos
Claude Code impõe duas condições antes de agir em uma dica. Dicas que falham em qualquer uma das verificações são descartadas:- Linha própria: a tag deve ocupar sua própria linha. Uma tag incorporada no meio da linha, por exemplo dentro de uma instrução de log, é ignorada. Espaço em branco à esquerda e à direita na linha é permitido.
- Marketplace oficial: o
valuedeve fazer referência a um plugin em um marketplace controlado pela Anthropic, comoclaude-plugins-official. Dicas que apontam para outros marketplaces são silenciosamente descartadas.
- Escrever para stderr: stderr mantém a tag fora de pipelines de shell, como
example-cli deploy | jq. Claude Code verifica ambos os fluxos, portanto stdout também funciona. - Gate em uma variável de ambiente: emita apenas quando
CLAUDECODEouCLAUDE_CODE_CHILD_SESSIONestiver definido. Consulte Emitir a dica para saber como as duas variáveis diferem.
Coloque seu plugin no marketplace oficial
O protocolo de dica só entra em vigor para plugins listados no marketplace oficial da Anthropic,claude-plugins-official. A Anthropic cura esse marketplace a seu critério, e os formulários de envio no aplicativo adicionam plugins ao marketplace da comunidade, que o protocolo de dica não verifica. Se você está trabalhando com um contato de parceiro da Anthropic, entre em contato com ele para coordenar uma listagem no marketplace oficial.
Veja também
- Criar plugins: construa o plugin que sua CLI recomenda
- Criar e distribuir um marketplace de plugins: hospede plugins fora do marketplace oficial
- Variáveis de ambiente: referência completa para
CLAUDECODEe variáveis relacionadas