Modo headless
Execute Claude Code programaticamente sem interface interativa
Visão Geral
O modo headless permite executar Claude Code programaticamente a partir de scripts de linha de comando e ferramentas de automação sem qualquer interface interativa.
Uso Básico
A interface de linha de comando principal para Claude Code é o comando claude
. Use a flag --print
(ou -p
) para executar em modo não interativo e imprimir o resultado final:
Opções de Configuração
O SDK aproveita todas as opções CLI disponíveis no Claude Code. Aqui estão as principais para uso do SDK:
Flag | Descrição | Exemplo |
---|---|---|
--print , -p | Executar em modo não interativo | claude -p "consulta" |
--output-format | Especificar formato de saída (text , json , stream-json ) | claude -p --output-format json |
--resume , -r | Retomar uma conversa por ID de sessão | claude --resume abc123 |
--continue , -c | Continuar a conversa mais recente | claude --continue |
--verbose | Habilitar log detalhado | claude --verbose |
--append-system-prompt | Anexar ao prompt do sistema (apenas com --print ) | claude --append-system-prompt "Instrução personalizada" |
--allowedTools | Lista separada por espaços de ferramentas permitidas, ou string de lista separada por vírgulas de ferramentas permitidas | claude --allowedTools mcp__slack mcp__filesystem claude --allowedTools "Bash(npm install),mcp__filesystem" |
--disallowedTools | Lista separada por espaços de ferramentas negadas, ou string de lista separada por vírgulas de ferramentas negadas | claude --disallowedTools mcp__splunk mcp__github claude --disallowedTools "Bash(git commit),mcp__github" |
--mcp-config | Carregar servidores MCP de um arquivo JSON | claude --mcp-config servers.json |
--permission-prompt-tool | Ferramenta MCP para lidar com prompts de permissão (apenas com --print ) | claude --permission-prompt-tool mcp__auth__prompt |
Para uma lista completa de opções CLI e recursos, consulte a documentação de referência CLI.
Conversas Multi-turno
Para conversas multi-turno, você pode retomar conversas ou continuar da sessão mais recente:
Formatos de Saída
Saída de Texto (Padrão)
Saída JSON
Retorna dados estruturados incluindo metadados:
Formato de resposta:
Saída JSON em Streaming
Transmite cada mensagem conforme é recebida:
Cada conversa começa com uma mensagem inicial do sistema init
, seguida por uma lista de mensagens do usuário e assistente, seguida por uma mensagem final do sistema result
com estatísticas. Cada mensagem é emitida como um objeto JSON separado.
Formatos de Entrada
Entrada de Texto (Padrão)
Entrada JSON em Streaming
Um fluxo de mensagens fornecido via stdin
onde cada mensagem representa um turno do usuário. Isso permite múltiplos turnos de uma conversa sem relançar o binário claude
e permite fornecer orientação ao modelo enquanto está processando uma solicitação.
Cada mensagem é um objeto JSON ‘Mensagem do usuário’, seguindo o mesmo formato do esquema de mensagem de saída. As mensagens são formatadas usando o formato jsonl onde cada linha de entrada é um objeto JSON completo. A entrada JSON em streaming requer -p
e --output-format stream-json
.
Exemplos de Integração de Agente
Bot de Resposta a Incidentes SRE
Revisão de Segurança Automatizada
Assistente Jurídico Multi-turno
Melhores Práticas
-
Use formato de saída JSON para análise programática de respostas:
-
Trate erros graciosamente - verifique códigos de saída e stderr:
-
Use gerenciamento de sessão para manter contexto em conversas multi-turno
-
Considere timeouts para operações de longa duração:
-
Respeite limites de taxa ao fazer múltiplas solicitações adicionando atrasos entre chamadas
Recursos Relacionados
- Uso e controles CLI - Documentação CLI completa
- Fluxos de trabalho comuns - Guias passo a passo para casos de uso comuns