Experimente a nova interface V2 (prévia): Uma interface simplificada com padrões
send() e stream() agora está disponível, facilitando conversas multi-turno. Saiba mais sobre a prévia do TypeScript V2Instalação
O SDK agrupa um binário nativo do Claude Code para sua plataforma como uma dependência opcional, como
@anthropic-ai/claude-agent-sdk-darwin-arm64. Você não precisa instalar o Claude Code separadamente. Se seu gerenciador de pacotes pular dependências opcionais, o SDK lança Native CLI binary for <platform> not found; defina pathToClaudeCodeExecutable para um binário claude instalado separadamente.Funções
query()
A função principal para interagir com o Claude Code. Cria um gerador assíncrono que transmite mensagens conforme chegam.
Parâmetros
| Parâmetro | Tipo | Descrição |
|---|---|---|
prompt | string | AsyncIterable<SDKUserMessage> | O prompt de entrada como uma string ou iterável assíncrono para modo de transmissão |
options | Options | Objeto de configuração opcional (veja o tipo Options abaixo) |
Retorna
Retorna um objetoQuery que estende AsyncGenerator<SDKMessage, void> com métodos adicionais.
startup()
Pré-aquece o subprocesso CLI gerando-o e completando o handshake de inicialização antes de um prompt estar disponível. O handle WarmQuery retornado aceita um prompt depois e o escreve em um processo já pronto, então a primeira chamada query() é resolvida sem pagar o custo de geração e inicialização do subprocesso inline.
Parâmetros
| Parâmetro | Tipo | Descrição |
|---|---|---|
options | Options | Objeto de configuração opcional. Igual ao parâmetro options para query() |
initializeTimeoutMs | number | Tempo máximo em milissegundos para aguardar a inicialização do subprocesso. Padrão é 60000. Se a inicialização não for concluída no tempo, a promise é rejeitada com um erro de timeout |
Retorna
Retorna umaPromise<WarmQuery> que é resolvida assim que o subprocesso é gerado e completa seu handshake de inicialização.
Exemplo
Chamestartup() cedo, por exemplo no boot da aplicação, depois chame .query() no handle retornado assim que um prompt estiver pronto. Isso move a geração do subprocesso e inicialização para fora do caminho crítico.
tool()
Cria uma definição de ferramenta MCP type-safe para uso com servidores MCP do SDK.
Parâmetros
| Parâmetro | Tipo | Descrição |
|---|---|---|
name | string | O nome da ferramenta |
description | string | Uma descrição do que a ferramenta faz |
inputSchema | Schema extends AnyZodRawShape | Schema Zod definindo os parâmetros de entrada da ferramenta (suporta Zod 3 e Zod 4) |
handler | (args, extra) => Promise<CallToolResult> | Função assíncrona que executa a lógica da ferramenta |
extras | { annotations?: ToolAnnotations } | Anotações MCP opcionais da ferramenta fornecendo dicas comportamentais aos clientes |
ToolAnnotations
Re-exportado de @modelcontextprotocol/sdk/types.js. Todos os campos são dicas opcionais; os clientes não devem confiar neles para decisões de segurança.
| Campo | Tipo | Padrão | Descrição |
|---|---|---|---|
title | string | undefined | Título legível para a ferramenta |
readOnlyHint | boolean | false | Se true, a ferramenta não modifica seu ambiente |
destructiveHint | boolean | true | Se true, a ferramenta pode realizar atualizações destrutivas (apenas significativo quando readOnlyHint é false) |
idempotentHint | boolean | false | Se true, chamadas repetidas com os mesmos argumentos não têm efeito adicional (apenas significativo quando readOnlyHint é false) |
openWorldHint | boolean | true | Se true, a ferramenta interage com entidades externas (por exemplo, busca na web). Se false, o domínio da ferramenta é fechado (por exemplo, uma ferramenta de memória) |
createSdkMcpServer()
Cria uma instância de servidor MCP que é executada no mesmo processo que sua aplicação.
Parâmetros
| Parâmetro | Tipo | Descrição |
|---|---|---|
options.name | string | O nome do servidor MCP |
options.version | string | String de versão opcional |
options.tools | Array<SdkMcpToolDefinition> | Array de definições de ferramentas criadas com tool() |
listSessions()
Descobre e lista sessões passadas com metadados leves. Filtre por diretório de projeto ou liste sessões em todos os projetos.
Parâmetros
| Parâmetro | Tipo | Padrão | Descrição |
|---|---|---|---|
options.dir | string | undefined | Diretório para listar sessões. Quando omitido, retorna sessões em todos os projetos |
options.limit | number | undefined | Número máximo de sessões a retornar |
options.includeWorktrees | boolean | true | Quando dir está dentro de um repositório git, inclua sessões de todos os caminhos de worktree |
Tipo de retorno: SDKSessionInfo
| Propriedade | Tipo | Descrição |
|---|---|---|
sessionId | string | Identificador único de sessão (UUID) |
summary | string | Título de exibição: título personalizado, resumo gerado automaticamente ou primeiro prompt |
lastModified | number | Tempo da última modificação em milissegundos desde a época |
fileSize | number | undefined | Tamanho do arquivo de sessão em bytes. Apenas preenchido para armazenamento JSONL local |
customTitle | string | undefined | Título de sessão definido pelo usuário (via /rename) |
firstPrompt | string | undefined | Primeiro prompt de usuário significativo na sessão |
gitBranch | string | undefined | Branch git no final da sessão |
cwd | string | undefined | Diretório de trabalho para a sessão |
tag | string | undefined | Tag de sessão definida pelo usuário (veja tagSession()) |
createdAt | number | undefined | Tempo de criação em milissegundos desde a época, do timestamp da primeira entrada |
Exemplo
Imprima as 10 sessões mais recentes para um projeto. Os resultados são classificados porlastModified descendente, então o primeiro item é o mais novo. Omita dir para pesquisar em todos os projetos.
getSessionMessages()
Lê mensagens de usuário e assistente de uma transcrição de sessão passada.
Parâmetros
| Parâmetro | Tipo | Padrão | Descrição |
|---|---|---|---|
sessionId | string | obrigatório | UUID da sessão a ler (veja listSessions()) |
options.dir | string | undefined | Diretório do projeto para encontrar a sessão. Quando omitido, pesquisa todos os projetos |
options.limit | number | undefined | Número máximo de mensagens a retornar |
options.offset | number | undefined | Número de mensagens a pular do início |
Tipo de retorno: SessionMessage
| Propriedade | Tipo | Descrição |
|---|---|---|
type | "user" | "assistant" | Papel da mensagem |
uuid | string | Identificador único de mensagem |
session_id | string | Sessão a que esta mensagem pertence |
message | unknown | Payload de mensagem bruta da transcrição |
parent_tool_use_id | null | Reservado |
Exemplo
getSessionInfo()
Lê metadados para uma única sessão por ID sem verificar o diretório do projeto completo.
Parâmetros
| Parâmetro | Tipo | Padrão | Descrição |
|---|---|---|---|
sessionId | string | obrigatório | UUID da sessão a procurar |
options.dir | string | undefined | Caminho do diretório do projeto. Quando omitido, pesquisa todos os diretórios de projeto |
SDKSessionInfo, ou undefined se a sessão não for encontrada.
renameSession()
Renomeia uma sessão anexando uma entrada de título personalizado. Chamadas repetidas são seguras; o título mais recente vence.
Parâmetros
| Parâmetro | Tipo | Padrão | Descrição |
|---|---|---|---|
sessionId | string | obrigatório | UUID da sessão a renomear |
title | string | obrigatório | Novo título. Deve ser não-vazio após aparar espaços em branco |
options.dir | string | undefined | Caminho do diretório do projeto. Quando omitido, pesquisa todos os diretórios de projeto |
tagSession()
Marca uma sessão. Passe null para limpar a tag. Chamadas repetidas são seguras; a tag mais recente vence.
Parâmetros
| Parâmetro | Tipo | Padrão | Descrição |
|---|---|---|---|
sessionId | string | obrigatório | UUID da sessão a marcar |
tag | string | null | obrigatório | String de tag, ou null para limpar |
options.dir | string | undefined | Caminho do diretório do projeto. Quando omitido, pesquisa todos os diretórios de projeto |
Tipos
Options
Objeto de configuração para a função query().
| Propriedade | Tipo | Padrão | Descrição |
|---|---|---|---|
abortController | AbortController | new AbortController() | Controlador para cancelar operações |
additionalDirectories | string[] | [] | Diretórios adicionais que Claude pode acessar |
agent | string | undefined | Nome do agente para a thread principal. O agente deve ser definido na opção agents ou em configurações |
agents | Record<string, [AgentDefinition](#agent-definition)> | undefined | Defina subagentes programaticamente |
allowDangerouslySkipPermissions | boolean | false | Ativar bypass de permissões. Obrigatório ao usar permissionMode: 'bypassPermissions' |
allowedTools | string[] | [] | Ferramentas para auto-aprovar sem solicitar. Isso não restringe Claude apenas a essas ferramentas; ferramentas não listadas caem em permissionMode e canUseTool. Use disallowedTools para bloquear ferramentas. Veja Permissões |
betas | SdkBeta[] | [] | Ativar recursos beta |
canUseTool | CanUseTool | undefined | Função de permissão personalizada para uso de ferramentas |
continue | boolean | false | Continuar a conversa mais recente |
cwd | string | process.cwd() | Diretório de trabalho atual |
debug | boolean | false | Ativar modo de depuração para o processo Claude Code |
debugFile | string | undefined | Escrever logs de depuração em um caminho de arquivo específico. Ativa implicitamente o modo de depuração |
disallowedTools | string[] | [] | Ferramentas para sempre negar. Regras de negação são verificadas primeiro e substituem allowedTools e permissionMode (incluindo bypassPermissions) |
effort | 'low' | 'medium' | 'high' | 'xhigh' | 'max' | 'high' | Controla quanto esforço Claude coloca em sua resposta. Funciona com pensamento adaptativo para guiar a profundidade do pensamento |
enableFileCheckpointing | boolean | false | Ativar rastreamento de mudanças de arquivo para retrocesso. Veja File checkpointing |
env | Record<string, string | undefined> | process.env | Variáveis de ambiente. Defina CLAUDE_AGENT_SDK_CLIENT_APP para identificar sua aplicação no cabeçalho User-Agent |
executable | 'bun' | 'deno' | 'node' | Auto-detectado | Runtime JavaScript a usar |
executableArgs | string[] | [] | Argumentos a passar para o executável |
extraArgs | Record<string, string | null> | {} | Argumentos adicionais |
fallbackModel | string | undefined | Modelo a usar se o primário falhar |
forkSession | boolean | false | Ao retomar com resume, bifurcar para um novo ID de sessão em vez de continuar a sessão original |
hooks | Partial<Record<HookEvent, HookCallbackMatcher[]>> | {} | Callbacks de hook para eventos |
includePartialMessages | boolean | false | Incluir eventos de mensagem parcial |
maxBudgetUsd | number | undefined | Parar a consulta quando a estimativa de custo do lado do cliente atingir este valor em USD. Comparado com a mesma estimativa que total_cost_usd; veja Track cost and usage para ressalvas de precisão |
maxThinkingTokens | number | undefined | Descontinuado: Use thinking em vez disso. Tokens máximos para processo de pensamento |
maxTurns | number | undefined | Turnos agênticos máximos (round trips de uso de ferramenta) |
mcpServers | Record<string, [McpServerConfig](#mcp-server-config)> | {} | Configurações de servidor MCP |
model | string | Padrão da CLI | Modelo Claude a usar |
outputFormat | { type: 'json_schema', schema: JSONSchema } | undefined | Defina o formato de saída para resultados de agente. Veja Structured outputs para detalhes |
pathToClaudeCodeExecutable | string | Auto-resolvido do binário nativo agrupado | Caminho para executável Claude Code. Apenas necessário se dependências opcionais foram puladas durante a instalação ou sua plataforma não está no conjunto suportado |
permissionMode | PermissionMode | 'default' | Modo de permissão para a sessão |
permissionPromptToolName | string | undefined | Nome da ferramenta MCP para prompts de permissão |
persistSession | boolean | true | Quando false, desativa persistência de sessão em disco. Sessões não podem ser retomadas depois |
plugins | SdkPluginConfig[] | [] | Carregar plugins personalizados de caminhos locais. Veja Plugins para detalhes |
promptSuggestions | boolean | false | Ativar sugestões de prompt. Emite uma mensagem prompt_suggestion após cada turno com um prompt de usuário previsto |
resume | string | undefined | ID de sessão a retomar |
resumeSessionAt | string | undefined | Retomar sessão em um UUID de mensagem específico |
sandbox | SandboxSettings | undefined | Configurar comportamento de sandbox programaticamente. Veja Sandbox settings para detalhes |
sessionId | string | Auto-gerado | Use um UUID específico para a sessão em vez de auto-gerar um |
settingSources | SettingSource[] | Padrões da CLI (todas as fontes) | Controle quais configurações do sistema de arquivos carregar. Passe [] para desativar configurações de usuário, projeto e local. Configurações de política gerenciada carregam independentemente. Veja Use Claude Code features |
spawnClaudeCodeProcess | (options: SpawnOptions) => SpawnedProcess | undefined | Função personalizada para gerar o processo Claude Code. Use para executar Claude Code em VMs, contêineres ou ambientes remotos |
stderr | (data: string) => void | undefined | Callback para saída stderr |
strictMcpConfig | boolean | false | Aplicar validação MCP rigorosa |
systemPrompt | string | { type: 'preset'; preset: 'claude_code'; append?: string; excludeDynamicSections?: boolean } | undefined (prompt mínimo) | Configuração de prompt do sistema. Passe uma string para prompt personalizado, ou { type: 'preset', preset: 'claude_code' } para usar o prompt do sistema do Claude Code. Ao usar a forma de objeto preset, adicione append para estendê-lo com instruções adicionais, e defina excludeDynamicSections: true para mover contexto por sessão para a primeira mensagem do usuário para melhor reutilização de cache de prompt entre máquinas |
thinking | ThinkingConfig | { type: 'adaptive' } para modelos suportados | Controla o comportamento de pensamento/raciocínio do Claude. Veja ThinkingConfig para opções |
toolConfig | ToolConfig | undefined | Configuração para comportamento de ferramenta integrada. Veja ToolConfig para detalhes |
tools | string[] | { type: 'preset'; preset: 'claude_code' } | undefined | Configuração de ferramenta. Passe um array de nomes de ferramentas ou use o preset para obter as ferramentas padrão do Claude Code |
Objeto Query
Interface retornada pela função query().
Métodos
| Método | Descrição |
|---|---|
interrupt() | Interrompe a consulta (apenas disponível em modo de entrada de transmissão) |
rewindFiles(userMessageId, options?) | Restaura arquivos para seu estado na mensagem de usuário especificada. Passe { dryRun: true } para visualizar mudanças. Requer enableFileCheckpointing: true. Veja File checkpointing |
setPermissionMode() | Altera o modo de permissão (apenas disponível em modo de entrada de transmissão) |
setModel() | Altera o modelo (apenas disponível em modo de entrada de transmissão) |
setMaxThinkingTokens() | Descontinuado: Use a opção thinking em vez disso. Altera os tokens de pensamento máximos |
initializationResult() | Retorna o resultado de inicialização completo incluindo comandos suportados, modelos, informações de conta e configuração de estilo de saída |
supportedCommands() | Retorna comandos slash disponíveis |
supportedModels() | Retorna modelos disponíveis com informações de exibição |
supportedAgents() | Retorna subagentes disponíveis como AgentInfo[] |
mcpServerStatus() | Retorna status de servidores MCP conectados |
accountInfo() | Retorna informações de conta |
reconnectMcpServer(serverName) | Reconectar um servidor MCP por nome |
toggleMcpServer(serverName, enabled) | Ativar ou desativar um servidor MCP por nome |
setMcpServers(servers) | Substituir dinamicamente o conjunto de servidores MCP para esta sessão. Retorna informações sobre quais servidores foram adicionados, removidos e quaisquer erros |
streamInput(stream) | Transmitir mensagens de entrada para a consulta para conversas multi-turno |
stopTask(taskId) | Parar uma tarefa de fundo em execução por ID |
close() | Fechar a consulta e encerrar o processo subjacente. Força o término da consulta e limpa todos os recursos |
WarmQuery
Handle retornado por startup(). O subprocesso já está gerado e inicializado, então chamar query() neste handle escreve o prompt diretamente em um processo pronto sem latência de inicialização.
Métodos
| Método | Descrição |
|---|---|
query(prompt) | Enviar um prompt para o subprocesso pré-aquecido e retornar uma Query. Pode ser chamado apenas uma vez por WarmQuery |
close() | Fechar o subprocesso sem enviar um prompt. Use isso para descartar uma consulta quente que não é mais necessária |
WarmQuery implementa AsyncDisposable, então pode ser usado com await using para limpeza automática.
SDKControlInitializeResponse
Tipo de retorno de initializationResult(). Contém dados de inicialização de sessão.
AgentDefinition
Configuração para um subagente definido programaticamente.
| Campo | Obrigatório | Descrição |
|---|---|---|
description | Sim | Descrição em linguagem natural de quando usar este agente |
tools | Não | Array de nomes de ferramentas permitidas. Se omitido, herda todas as ferramentas do pai |
disallowedTools | Não | Array de nomes de ferramentas para explicitamente desallocar para este agente |
prompt | Sim | O prompt do sistema do agente |
model | Não | Substituição de modelo para este agente. Se omitido ou 'inherit', usa o modelo principal |
mcpServers | Não | Especificações de servidor MCP para este agente |
skills | Não | Array de nomes de skills para pré-carregar no contexto do agente |
maxTurns | Não | Número máximo de turnos agênticos (round-trips de API) antes de parar |
criticalSystemReminder_EXPERIMENTAL | Não | Experimental: Lembrete crítico adicionado ao prompt do sistema |
AgentMcpServerSpec
Especifica servidores MCP disponíveis para um subagente. Pode ser um nome de servidor (string referenciando um servidor da configuração mcpServers do pai) ou um registro de configuração de servidor inline mapeando nomes de servidor para configs.
McpServerConfigForProcessTransport é McpStdioServerConfig | McpSSEServerConfig | McpHttpServerConfig | McpSdkServerConfig.
SettingSource
Controla quais fontes de configuração baseadas em sistema de arquivos o SDK carrega configurações.
| Valor | Descrição | Localização |
|---|---|---|
'user' | Configurações globais do usuário | ~/.claude/settings.json |
'project' | Configurações de projeto compartilhadas (controladas por versão) | .claude/settings.json |
'local' | Configurações de projeto local (gitignored) | .claude/settings.local.json |
Comportamento padrão
QuandosettingSources é omitido ou undefined, query() carrega as mesmas configurações do sistema de arquivos que a CLI do Claude Code: usuário, projeto e local. Configurações de política gerenciada são carregadas em todos os casos. Veja What settingSources does not control para entradas que são lidas independentemente desta opção, e como desativá-las.
Por que usar settingSources
Desativar configurações do sistema de arquivos:Precedência de configurações
Quando múltiplas fontes são carregadas, as configurações são mescladas com esta precedência (maior para menor):- Configurações locais (
.claude/settings.local.json) - Configurações de projeto (
.claude/settings.json) - Configurações do usuário (
~/.claude/settings.json)
agents e allowedTools substituem configurações do sistema de arquivos de usuário, projeto e local. Configurações de política gerenciada têm precedência sobre opções programáticas.
PermissionMode
CanUseTool
Tipo de função de permissão personalizada para controlar o uso de ferramentas.
| Opção | Tipo | Descrição |
|---|---|---|
signal | AbortSignal | Sinalizado se a operação deve ser abortada |
suggestions | PermissionUpdate[] | Atualizações de permissão sugeridas para que o usuário não seja solicitado novamente para esta ferramenta |
blockedPath | string | O caminho do arquivo que acionou a solicitação de permissão, se aplicável |
decisionReason | string | Explica por que esta solicitação de permissão foi acionada |
toolUseID | string | Identificador único para esta chamada de ferramenta específica dentro da mensagem do assistente |
agentID | string | Se executando dentro de um sub-agente, o ID do sub-agente |
PermissionResult
Resultado de uma verificação de permissão.
ToolConfig
Configuração para comportamento de ferramenta integrada.
| Campo | Tipo | Descrição |
|---|---|---|
askUserQuestion.previewFormat | 'markdown' | 'html' | Opta pelo campo preview em opções AskUserQuestion e define seu formato de conteúdo. Quando não definido, Claude não emite visualizações |
McpServerConfig
Configuração para servidores MCP.
McpStdioServerConfig
McpSSEServerConfig
McpHttpServerConfig
McpSdkServerConfigWithInstance
McpClaudeAIProxyServerConfig
SdkPluginConfig
Configuração para carregar plugins no SDK.
| Campo | Tipo | Descrição |
|---|---|---|
type | 'local' | Deve ser 'local' (apenas plugins locais atualmente suportados) |
path | string | Caminho absoluto ou relativo para o diretório do plugin |
Tipos de Mensagem
SDKMessage
Tipo de união de todas as mensagens possíveis retornadas pela consulta.
SDKAssistantMessage
Mensagem de resposta do assistente.
message é uma BetaMessage do SDK Anthropic. Inclui campos como id, content, model, stop_reason e usage.
SDKAssistantMessageError é um de: 'authentication_failed', 'billing_error', 'rate_limit', 'invalid_request', 'server_error', 'max_output_tokens', ou 'unknown'.
SDKUserMessage
Mensagem de entrada do usuário.
shouldQuery como false para anexar a mensagem à transcrição sem acionar um turno do assistente. A mensagem é mantida e mesclada na próxima mensagem do usuário que aciona um turno. Use isso para injetar contexto, como a saída de um comando que você executou fora de banda, sem gastar uma chamada de modelo nela.
SDKUserMessageReplay
Mensagem de usuário repetida com UUID obrigatório.
SDKResultMessage
Mensagem de resultado final.
SDKSystemMessage
Mensagem de inicialização do sistema.
SDKPartialAssistantMessage
Mensagem parcial de transmissão (apenas quando includePartialMessages é true).
SDKCompactBoundaryMessage
Mensagem indicando um limite de compactação de conversa.
SDKPluginInstallMessage
Evento de progresso de instalação de plugin. Emitido quando CLAUDE_CODE_SYNC_PLUGIN_INSTALL está definido, para que sua aplicação Agent SDK possa rastrear a instalação de plugin do marketplace antes do primeiro turno. Os status started e completed delimitam a instalação geral. Os status installed e failed relatam marketplaces individuais e incluem name.
SDKPermissionDenial
Informações sobre um uso de ferramenta negado.
Tipos de Hook
Para um guia abrangente sobre o uso de hooks com exemplos e padrões comuns, veja o guia de Hooks.HookEvent
Eventos de hook disponíveis.
HookCallback
Tipo de função de callback de hook.
HookCallbackMatcher
Configuração de hook com matcher opcional.
HookInput
Tipo de união de todos os tipos de entrada de hook.
BaseHookInput
Interface base que todos os tipos de entrada de hook estendem.
PreToolUseHookInput
PostToolUseHookInput
PostToolUseFailureHookInput
NotificationHookInput
UserPromptSubmitHookInput
SessionStartHookInput
SessionEndHookInput
StopHookInput
SubagentStartHookInput
SubagentStopHookInput
PreCompactHookInput
PermissionRequestHookInput
SetupHookInput
TeammateIdleHookInput
TaskCompletedHookInput
ConfigChangeHookInput
WorktreeCreateHookInput
WorktreeRemoveHookInput
HookJSONOutput
Valor de retorno de hook.
AsyncHookJSONOutput
SyncHookJSONOutput
Tipos de Entrada de Ferramenta
Documentação de esquemas de entrada para todas as ferramentas integradas do Claude Code. Esses tipos são exportados de@anthropic-ai/claude-agent-sdk e podem ser usados para interações de ferramenta type-safe.
ToolInputSchemas
União de todos os tipos de entrada de ferramenta, exportada de @anthropic-ai/claude-agent-sdk.
Agent
Nome da ferramenta:Agent (anteriormente Task, que ainda é aceito como alias)
AskUserQuestion
Nome da ferramenta:AskUserQuestion
Bash
Nome da ferramenta:Bash
Monitor
Nome da ferramenta:Monitor
persistent: true para watches de comprimento de sessão, como tails de log. Monitor segue as mesmas regras de permissão que Bash. Veja a referência da ferramenta Monitor para comportamento e disponibilidade de provedor.
TaskOutput
Nome da ferramenta:TaskOutput
Edit
Nome da ferramenta:Edit
Read
Nome da ferramenta:Read
pages para intervalos de página PDF (por exemplo, "1-5").
Write
Nome da ferramenta:Write
Glob
Nome da ferramenta:Glob
Grep
Nome da ferramenta:Grep
TaskStop
Nome da ferramenta:TaskStop
NotebookEdit
Nome da ferramenta:NotebookEdit
WebFetch
Nome da ferramenta:WebFetch
WebSearch
Nome da ferramenta:WebSearch
TodoWrite
Nome da ferramenta:TodoWrite
ExitPlanMode
Nome da ferramenta:ExitPlanMode
ListMcpResources
Nome da ferramenta:ListMcpResources
ReadMcpResource
Nome da ferramenta:ReadMcpResource
Config
Nome da ferramenta:Config
EnterWorktree
Nome da ferramenta:EnterWorktree
path para mudar para um worktree existente do repositório atual em vez de criar um novo. name e path são mutuamente exclusivos.
Tipos de Saída de Ferramenta
Documentação de esquemas de saída para todas as ferramentas integradas do Claude Code. Esses tipos são exportados de@anthropic-ai/claude-agent-sdk e representam os dados de resposta reais retornados por cada ferramenta.
ToolOutputSchemas
União de todos os tipos de saída de ferramenta.
Agent
Nome da ferramenta:Agent (anteriormente Task, que ainda é aceito como alias)
status: "completed" para tarefas concluídas, "async_launched" para tarefas de background e "sub_agent_entered" para subagentes interativos.
AskUserQuestion
Nome da ferramenta:AskUserQuestion
Bash
Nome da ferramenta:Bash
backgroundTaskId.
Monitor
Nome da ferramenta:Monitor
TaskStop para cancelar a watch antecipadamente.
Edit
Nome da ferramenta:Edit
Read
Nome da ferramenta:Read
type.
Write
Nome da ferramenta:Write
Glob
Nome da ferramenta:Glob
Grep
Nome da ferramenta:Grep
mode: lista de arquivo, conteúdo com correspondências ou contagens de correspondência.
TaskStop
Nome da ferramenta:TaskStop
NotebookEdit
Nome da ferramenta:NotebookEdit
WebFetch
Nome da ferramenta:WebFetch
WebSearch
Nome da ferramenta:WebSearch
TodoWrite
Nome da ferramenta:TodoWrite
ExitPlanMode
Nome da ferramenta:ExitPlanMode
ListMcpResources
Nome da ferramenta:ListMcpResources
ReadMcpResource
Nome da ferramenta:ReadMcpResource
Config
Nome da ferramenta:Config
EnterWorktree
Nome da ferramenta:EnterWorktree
Tipos de Permissão
PermissionUpdate
Operações para atualizar permissões.
PermissionBehavior
PermissionUpdateDestination
PermissionRuleValue
Outros Tipos
ApiKeySource
SdkBeta
Recursos beta disponíveis que podem ser ativados via opção betas. Veja Beta headers para mais informações.
SlashCommand
Informações sobre um comando slash disponível.
ModelInfo
Informações sobre um modelo disponível.
AgentInfo
Informações sobre um subagente disponível que pode ser invocado via ferramenta Agent.
| Campo | Tipo | Descrição |
|---|---|---|
name | string | Identificador de tipo de agente (por exemplo, "Explore", "general-purpose") |
description | string | Descrição de quando usar este agente |
model | string | undefined | Alias de modelo que este agente usa. Se omitido, herda o modelo do pai |
McpServerStatus
Status de um servidor MCP conectado.
McpServerStatusConfig
A configuração de um servidor MCP conforme relatado por mcpServerStatus(). Esta é a união de todos os tipos de transporte de servidor MCP.
McpServerConfig para detalhes sobre cada tipo de transporte.
AccountInfo
Informações de conta para o usuário autenticado.
ModelUsage
Estatísticas de uso por modelo retornadas em mensagens de resultado. O valor costUSD é uma estimativa do lado do cliente. Veja Track cost and usage para ressalvas de faturamento.
ConfigScope
NonNullableUsage
Uma versão de Usage com todos os campos anuláveis tornados não-anuláveis.
Usage
Estatísticas de uso de token (de @anthropic-ai/sdk).
CallToolResult
Tipo de resultado de ferramenta MCP (de @modelcontextprotocol/sdk/types.js).
ThinkingConfig
Controla o comportamento de pensamento/raciocínio do Claude. Tem precedência sobre o maxThinkingTokens descontinuado.
SpawnedProcess
Interface para geração de processo personalizado (usada com opção spawnClaudeCodeProcess). ChildProcess já satisfaz esta interface.
SpawnOptions
Opções passadas para a função de geração personalizada.
McpSetServersResult
Resultado de uma operação setMcpServers().
RewindFilesResult
Resultado de uma operação rewindFiles().
SDKStatusMessage
Mensagem de atualização de status (por exemplo, compactando).
SDKTaskNotificationMessage
Notificação quando uma tarefa de background é concluída, falha ou é parada. Tarefas de background incluem comandos Bash run_in_background, watches Monitor e subagentes de background.
SDKToolUseSummaryMessage
Resumo do uso de ferramenta em uma conversa.
SDKHookStartedMessage
Emitido quando um hook começa a executar.
SDKHookProgressMessage
Emitido enquanto um hook está em execução, com saída stdout/stderr.
SDKHookResponseMessage
Emitido quando um hook termina de executar.
SDKToolProgressMessage
Emitido periodicamente enquanto uma ferramenta está sendo executada para indicar progresso.
SDKAuthStatusMessage
Emitido durante fluxos de autenticação.
SDKTaskStartedMessage
Emitido quando uma tarefa de background começa. O campo task_type é "local_bash" para comandos Bash de background e watches Monitor, "local_agent" para subagentes, ou "remote_agent".
SDKTaskProgressMessage
Emitido periodicamente enquanto uma tarefa de background está em execução.
SDKFilesPersistedEvent
Emitido quando checkpoints de arquivo são persistidos em disco.
SDKRateLimitEvent
Emitido quando a sessão encontra um limite de taxa.
SDKLocalCommandOutputMessage
Saída de um comando slash local (por exemplo, /voice ou /cost). Exibido como texto estilo assistente na transcrição.
SDKPromptSuggestionMessage
Emitido após cada turno quando promptSuggestions está ativado. Contém um prompt de usuário previsto.
AbortError
Classe de erro personalizada para operações de abort.
Configuração de Sandbox
SandboxSettings
Configuração para comportamento de sandbox. Use isso para ativar sandboxing de comando e configurar restrições de rede programaticamente.
| Propriedade | Tipo | Padrão | Descrição |
|---|---|---|---|
enabled | boolean | false | Ativar modo sandbox para execução de comando |
autoAllowBashIfSandboxed | boolean | true | Auto-aprovar comandos bash quando sandbox está ativado |
excludedCommands | string[] | [] | Comandos que sempre contornam restrições de sandbox (por exemplo, ['docker']). Esses executam sem sandbox automaticamente sem envolvimento do modelo |
allowUnsandboxedCommands | boolean | true | Permitir que o modelo solicite executar comandos fora do sandbox. Quando true, o modelo pode definir dangerouslyDisableSandbox na entrada da ferramenta, que volta para o sistema de permissões |
network | SandboxNetworkConfig | undefined | Configuração de sandbox específica de rede |
filesystem | SandboxFilesystemConfig | undefined | Configuração de sandbox específica do sistema de arquivos para restrições de leitura/escrita |
ignoreViolations | Record<string, string[]> | undefined | Mapa de categorias de violação para padrões a ignorar (por exemplo, { file: ['/tmp/*'], network: ['localhost'] }) |
enableWeakerNestedSandbox | boolean | false | Ativar um sandbox aninhado mais fraco para compatibilidade |
ripgrep | { command: string; args?: string[] } | undefined | Configuração de binário ripgrep personalizado para ambientes sandbox |
Exemplo de uso
SandboxNetworkConfig
Configuração específica de rede para modo sandbox.
| Propriedade | Tipo | Padrão | Descrição |
|---|---|---|---|
allowedDomains | string[] | [] | Nomes de domínio que processos sandboxed podem acessar |
deniedDomains | string[] | [] | Nomes de domínio que processos sandboxed não podem acessar. Tem precedência sobre allowedDomains |
allowManagedDomainsOnly | boolean | false | Restringir acesso de rede apenas aos domínios em allowedDomains |
allowLocalBinding | boolean | false | Permitir que processos se vinculem a portas locais (por exemplo, para servidores dev) |
allowUnixSockets | string[] | [] | Caminhos de socket Unix que processos podem acessar (por exemplo, socket Docker) |
allowAllUnixSockets | boolean | false | Permitir acesso a todos os sockets Unix |
httpProxyPort | number | undefined | Porta de proxy HTTP para requisições de rede |
socksProxyPort | number | undefined | Porta de proxy SOCKS para requisições de rede |
SandboxFilesystemConfig
Configuração específica do sistema de arquivos para modo sandbox.
| Propriedade | Tipo | Padrão | Descrição |
|---|---|---|---|
allowWrite | string[] | [] | Padrões de caminho de arquivo para permitir acesso de escrita |
denyWrite | string[] | [] | Padrões de caminho de arquivo para negar acesso de escrita |
denyRead | string[] | [] | Padrões de caminho de arquivo para negar acesso de leitura |
Fallback de Permissões para Comandos Sem Sandbox
QuandoallowUnsandboxedCommands está ativado, o modelo pode solicitar executar comandos fora do sandbox definindo dangerouslyDisableSandbox: true na entrada da ferramenta. Essas solicitações voltam para o sistema de permissões existente, significando que seu handler canUseTool é invocado, permitindo que você implemente lógica de autorização personalizada.
excludedCommands vs allowUnsandboxedCommands:excludedCommands: Uma lista estática de comandos que sempre contornam o sandbox automaticamente (por exemplo,['docker']). O modelo não tem controle sobre isso.allowUnsandboxedCommands: Permite que o modelo decida em tempo de execução se solicita execução sem sandbox definindodangerouslyDisableSandbox: truena entrada da ferramenta.
- Auditar solicitações do modelo: Registre quando o modelo solicita execução sem sandbox
- Implementar listas de permissão: Apenas permitir comandos específicos para executar sem sandbox
- Adicionar fluxos de aprovação: Exigir autorização explícita para operações privilegiadas
Veja também
- Visão geral do SDK - Conceitos gerais do SDK
- Referência do SDK Python - Documentação do SDK Python
- Referência da CLI - Interface de linha de comando
- Fluxos de trabalho comuns - Guias passo a passo