Loading...
    • Guia do Desenvolvedor
    • Referência da API
    • MCP
    • Recursos
    • Notas de lançamento
    Search...
    ⌘K
    Primeiros passos
    Introdução ao ClaudeInício rápido
    Modelos e preços
    Visão geral dos modelosEscolhendo um modeloNovidades no Claude 4.5Migrando para Claude 4.5Descontinuação de modelosPreços
    Construir com Claude
    Visão geral de recursosUsando a API MessagesJanelas de contextoMelhores práticas de prompting
    Capacidades
    Cache de promptEdição de contextoPensamento estendidoEsforçoStreaming de mensagensProcessamento em loteCitaçõesSuporte multilíngueContagem de tokensEmbeddingsVisãoSuporte a PDFAPI de arquivosResultados de buscaSaídas estruturadas
    Ferramentas
    Visão geralComo implementar o uso de ferramentasStreaming de ferramentas granularFerramenta BashFerramenta de execução de códigoChamada de ferramenta programáticaFerramenta de uso do computadorFerramenta de editor de textoFerramenta de busca na webFerramenta de pesquisa na webFerramenta de memóriaFerramenta de busca de ferramentas
    Habilidades do agente
    Visão geralInício rápidoMelhores práticasUsando habilidades com a API
    SDK do agente
    Visão geralInício rápidoSDK TypeScriptTypeScript V2 (preview)SDK PythonGuia de migração
    MCP na API
    Conector MCPServidores MCP remotos
    Claude em plataformas de terceiros
    Amazon BedrockMicrosoft FoundryVertex AI
    Engenharia de prompts
    Visão geralGerador de promptsUsar modelos de promptsMelhorador de promptsSeja claro e diretoUse exemplos (prompting multishot)Deixe Claude pensar (CoT)Use tags XMLDê um papel ao Claude (prompts do sistema)Preencha a resposta do ClaudeEncadeie prompts complexosDicas de contexto longoDicas de pensamento estendido
    Testar e avaliar
    Definir critérios de sucessoDesenvolver casos de testeUsando a ferramenta de avaliaçãoReduzindo latência
    Fortalecer proteções
    Reduzir alucinaçõesAumentar consistência de saídaMitigar jailbreaksRecusas de streamingReduzir vazamento de promptManter Claude em personagem
    Administração e monitoramento
    Visão geral da API de administraçãoAPI de uso e custoAPI de análise de código Claude
    Console
    Log in
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...

    Solutions

    • AI agents
    • Code modernization
    • Coding
    • Customer support
    • Education
    • Financial services
    • Government
    • Life sciences

    Partners

    • Amazon Bedrock
    • Google Cloud's Vertex AI

    Learn

    • Blog
    • Catalog
    • Courses
    • Use cases
    • Connectors
    • Customer stories
    • Engineering at Anthropic
    • Events
    • Powered by Claude
    • Service partners
    • Startups program

    Company

    • Anthropic
    • Careers
    • Economic Futures
    • Research
    • News
    • Responsible Scaling Policy
    • Security and compliance
    • Transparency

    Learn

    • Blog
    • Catalog
    • Courses
    • Use cases
    • Connectors
    • Customer stories
    • Engineering at Anthropic
    • Events
    • Powered by Claude
    • Service partners
    • Startups program

    Help and security

    • Availability
    • Status
    • Support
    • Discord

    Terms and policies

    • Privacy policy
    • Responsible disclosure policy
    • Terms of service: Commercial
    • Terms of service: Consumer
    • Usage policy
    SDK do agente

    Referência do Agent SDK - TypeScript

    Referência completa da API para o Agent SDK TypeScript, incluindo todas as funções, tipos e interfaces.

    Experimente a nova interface V2 (visualização): Uma interface simplificada com padrões send() e receive() agora está disponível, facilitando conversas multi-turno. Saiba mais

    Instalação

    npm install @anthropic-ai/claude-agent-sdk

    Funções

    query()

    A função principal para interagir com Claude Code. Cria um gerador assíncrono que transmite mensagens conforme chegam.

    function query({
      prompt,
      options
    }: {
      prompt: string | AsyncIterable<SDKUserMessage>;
      options?: Options;
    }): Query

    Parâmetros

    ParâmetroTipoDescrição
    promptstring | AsyncIterable<SDKUserMessage>O prompt de entrada como uma string ou iterável assíncrono para modo de transmissão
    optionsOptionsObjeto de configuração opcional (veja o tipo Options abaixo)

    Retorna

    Retorna um objeto Query que estende AsyncGenerator<SDKMessage, void> com métodos adicionais.

    tool()

    Cria uma definição de ferramenta MCP type-safe para uso com servidores MCP do SDK.

    function tool<Schema extends ZodRawShape>(
      name: string,
      description: string,
      inputSchema: Schema,
      handler: (args: z.infer<ZodObject<Schema>>, extra: unknown) => Promise<CallToolResult>
    ): SdkMcpToolDefinition<Schema>

    Parâmetros

    ParâmetroTipoDescrição
    namestringO nome da ferramenta
    descriptionstringUma descrição do que a ferramenta faz
    inputSchemaSchema extends ZodRawShapeSchema Zod definindo os parâmetros de entrada da ferramenta
    handler(args, extra) => Promise<CallToolResult>Função assíncrona que executa a lógica da ferramenta

    createSdkMcpServer()

    Cria uma instância de servidor MCP que é executada no mesmo processo que sua aplicação.

    function createSdkMcpServer(options: {
      name: string;
      version?: string;
      tools?: Array<SdkMcpToolDefinition<any>>;
    }): McpSdkServerConfigWithInstance

    Parâmetros

    ParâmetroTipoDescrição
    options.namestringO nome do servidor MCP
    options.versionstringString de versão opcional
    options.toolsArray<SdkMcpToolDefinition>Array de definições de ferramentas criadas com tool()

    Tipos

    Options

    Objeto de configuração para a função query().

    PropriedadeTipoPadrãoDescrição
    abortControllerAbortControllernew AbortController()Controlador para cancelar operações
    additionalDirectoriesstring[][]Diretórios adicionais que Claude pode acessar
    agentsRecord<string, [AgentDefinition](#agentdefinition)>undefinedDefina subagentos programaticamente

    Query

    Interface retornada pela função query().

    interface Query extends AsyncGenerator<SDKMessage, void> {
      interrupt(): Promise<void>;
      rewindFiles(userMessageUuid: string): Promise<void>;
      setPermissionMode(mode: PermissionMode): Promise<void>;
      setModel(model?: string): Promise<void>;
      setMaxThinkingTokens(maxThinkingTokens: number | null): Promise<void>;
      supportedCommands(): Promise<SlashCommand[]>;
      supportedModels(): Promise<ModelInfo[]>;
      mcpServerStatus(): Promise<McpServerStatus[]>;
      accountInfo(): Promise<AccountInfo>;
    }

    Métodos

    MétodoDescrição
    interrupt()Interrompe a consulta (disponível apenas em modo de entrada de transmissão)
    rewindFiles(userMessageUuid)Restaura arquivos para seu estado na mensagem do usuário especificada. Requer enableFileCheckpointing: true. Veja File checkpointing
    setPermissionMode()Altera o modo de permissão (disponível apenas em modo de entrada de transmissão)
    setModel()Altera o modelo (disponível apenas em modo de entrada de transmissão)
    setMaxThinkingTokens()Altera os tokens de pensamento máximos (disponível apenas em modo de entrada de transmissão)
    supportedCommands()Retorna comandos de barra invertida disponíveis

    AgentDefinition

    Configuração para um subagentos definido programaticamente.

    type AgentDefinition = {
      description: string;
      tools?: string[];
      prompt: string;
      model?: 'sonnet' | 'opus' | 'haiku' | 'inherit';
    }
    CampoObrigatórioDescrição
    descriptionSimDescrição em linguagem natural de quando usar este agente
    toolsNãoArray de nomes de ferramentas permitidas. Se omitido, herda todas as ferramentas
    promptSimO prompt do sistema do agente
    modelNãoOverride de modelo para este agente. Se omitido, usa o modelo principal

    SettingSource

    Controla quais fontes de configuração baseadas em sistema de arquivos o SDK carrega as configurações.

    type SettingSource = 'user' | 'project' | 'local';
    ValorDescriçãoLocalizaçã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

    Quando settingSources é omitido ou undefined, o SDK não carrega nenhuma configuração do sistema de arquivos. Isso fornece isolamento para aplicações SDK.

    Por que usar settingSources?

    Carregue todas as configurações do sistema de arquivos (comportamento legado):

    // Carregue todas as configurações como o SDK v0.0.x fez
    const result = query({
      prompt: "Analyze this code",
      options: {
        settingSources: ['user', 'project', 'local']  // Carregue todas as configurações
      }
    });

    Carregue apenas fontes de configuração específicas:

    // Carregue apenas configurações de projeto, ignore user e local
    const result = query({
      prompt: "Run CI checks",
      options: {
        settingSources: ['project']  // Apenas .claude/settings.json
      }
    });

    Ambientes de teste e CI:

    // Garanta comportamento consistente em CI excluindo configurações locais
    const result = query({
      prompt: "Run tests",
      options: {
        settingSources: ['project'],  // Apenas configurações compartilhadas da equipe
        permissionMode: 'bypassPermissions'
      }
    });

    Aplicações apenas SDK:

    // Defina tudo programaticamente (comportamento padrão)
    // Sem dependências do sistema de arquivos - settingSources padrão é []
    const result = query({
      prompt: "Review this PR",
      options: {
        // settingSources: [] é o padrão, não precisa especificar
        agents: { /* ... */ },
        mcpServers: { /* ... */ },
        allowedTools: ['Read', 'Grep', 'Glob']
      }
    });

    Carregando instruções de projeto CLAUDE.md:

    // Carregue configurações de projeto para incluir arquivos CLAUDE.md
    const result = query({
      prompt: "Add a new feature following project conventions",
      options: {
        systemPrompt: {
          type: 'preset',
          preset: 'claude_code'  // Necessário para usar CLAUDE.md
        },
        settingSources: ['project'],  // Carrega CLAUDE.md do diretório do projeto
        allowedTools: ['Read', 'Write', 'Edit']
      }
    });

    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):

    1. Configurações locais (.claude/settings.local.json)
    2. Configurações de projeto (.claude/settings.json)
    3. Configurações do usuário (~/.claude/settings.json)

    Opções programáticas (como agents, allowedTools) sempre substituem configurações do sistema de arquivos.

    PermissionMode

    type PermissionMode =
      | 'default'           // Comportamento de permissão padrão
      | 'acceptEdits'       // Auto-aceitar edições de arquivo
      | 'bypassPermissions' // Bypass de todas as verificações de permissão
      | 'plan'              // Modo de planejamento - sem execução

    CanUseTool

    Tipo de função de permissão personalizada para controlar o uso de ferramentas.

    type CanUseTool = (
      toolName: string,
      input: ToolInput,
      options: {
        signal: AbortSignal;
        suggestions?: PermissionUpdate[];
      }
    ) => Promise<PermissionResult>;

    PermissionResult

    Resultado de uma verificação de permissão.

    type PermissionResult = 
      | {
          behavior: 'allow';
          updatedInput: ToolInput;
          updatedPermissions?: PermissionUpdate[];
        }
      | {
          behavior: 'deny';
          message: string;
          interrupt?: boolean;
        }

    McpServerConfig

    Configuração para servidores MCP.

    type McpServerConfig = 
      | McpStdioServerConfig
      | McpSSEServerConfig
      | McpHttpServerConfig
      | McpSdkServerConfigWithInstance;

    McpStdioServerConfig

    type McpStdioServerConfig = {
      type?: 'stdio';
      command: string;
      args?: string[];
      env?: Record<string, string>;
    }

    McpSSEServerConfig

    type McpSSEServerConfig = {
      type: 'sse';
      url: string;
      headers?: Record<string, string>;
    }

    McpHttpServerConfig

    type McpHttpServerConfig = {
      type: 'http';
      url: string;
      headers?: Record<string, string>;
    }

    McpSdkServerConfigWithInstance

    type McpSdkServerConfigWithInstance = {
      type: 'sdk';
      name: string;
      instance: McpServer;
    }

    SdkPluginConfig

    Configuração para carregamento de plugins no SDK.

    type SdkPluginConfig = {
      type: 'local';
      path: string;
    }
    CampoTipoDescrição
    type'local'Deve ser 'local' (apenas plugins locais atualmente suportados)
    pathstringCaminho absoluto ou relativo para o diretório do plugin

    Exemplo:

    plugins: [
      { type: 'local', path: './my-plugin' },
      { type: 'local', path: '/absolute/path/to/plugin' }
    ]

    Para informações completas sobre criação e uso de plugins, veja Plugins.

    Tipos de Mensagem

    SDKMessage

    Tipo de união de todas as mensagens possíveis retornadas pela consulta.

    type SDKMessage = 
      | SDKAssistantMessage
      | SDKUserMessage
      | SDKUserMessageReplay
      | SDKResultMessage
      | SDKSystemMessage
      | SDKPartialAssistantMessage
      | SDKCompactBoundaryMessage;

    SDKAssistantMessage

    Mensagem de resposta do assistente.

    type SDKAssistantMessage = {
      type: 'assistant';
      uuid: UUID;
      session_id: string;
      message: APIAssistantMessage; // Do SDK Anthropic
      parent_tool_use_id: string | null;
    }

    SDKUserMessage

    Mensagem de entrada do usuário.

    type SDKUserMessage = {
      type: 'user';
      uuid?: UUID;
      session_id: string;
      message: APIUserMessage; // Do SDK Anthropic
      parent_tool_use_id: string | null;
    }

    SDKUserMessageReplay

    Mensagem de usuário repetida com UUID obrigatório.

    type SDKUserMessageReplay = {
      type: 'user';
      uuid: UUID;
      session_id: string;
      message: APIUserMessage;
      parent_tool_use_id: string | null;
    }

    SDKResultMessage

    Mensagem de resultado final.

    type SDKResultMessage =
      | {
          type: 'result';
          subtype: 'success';
          uuid: UUID;
          session_id: string;
          duration_ms: number;
          duration_api_ms: number;
          is_error: boolean;
          num_turns: number;
          result: string;
          total_cost_usd: number;
          usage: NonNullableUsage;
          modelUsage: { [modelName: string]: ModelUsage };
          permission_denials: SDKPermissionDenial[];
          structured_output?: unknown;
        }
      | {
          type: 'result';
          subtype:
            | 'error_max_turns'
            | 'error_during_execution'
            | 'error_max_budget_usd'
            | 'error_max_structured_output_retries';
          uuid: UUID;
          session_id: string;
          duration_ms: number;
          duration_api_ms: number;
          is_error: boolean;
          num_turns: number;
          total_cost_usd: number;
          usage: NonNullableUsage;
          modelUsage: { [modelName: string]: ModelUsage };
          permission_denials: SDKPermissionDenial[];
          errors: string[];
        }

    SDKSystemMessage

    Mensagem de inicialização do sistema.

    type SDKSystemMessage = {
      type: 'system';
      subtype: 'init';
      uuid: UUID;
      session_id: string;
      apiKeySource: ApiKeySource;
      cwd: string;
      tools: string[];
      mcp_servers: {
        name: string;
        status: string;
      }[];
      model: string;
      permissionMode: PermissionMode;
      slash_commands: string[];
      output_style: string;
    }

    SDKPartialAssistantMessage

    Mensagem parcial de transmissão (apenas quando includePartialMessages é true).

    type SDKPartialAssistantMessage = {
      type: 'stream_event';
      event: RawMessageStreamEvent; // Do SDK Anthropic
      parent_tool_use_id: string | null;
      uuid: UUID;
      session_id: string;
    }

    SDKCompactBoundaryMessage

    Mensagem indicando um limite de compactação de conversa.

    type SDKCompactBoundaryMessage = {
      type: 'system';
      subtype: 'compact_boundary';
      uuid: UUID;
      session_id: string;
      compact_metadata: {
        trigger: 'manual' | 'auto';
        pre_tokens: number;
      };
    }

    SDKPermissionDenial

    Informações sobre um uso de ferramenta negado.

    type SDKPermissionDenial = {
      tool_name: string;
      tool_use_id: string;
      tool_input: ToolInput;
    }

    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.

    type HookEvent =
      | 'PreToolUse'
      | 'PostToolUse'
      | 'PostToolUseFailure'
      | 'Notification'
      | 'UserPromptSubmit'
      | 'SessionStart'
      | 'SessionEnd'
      | 'Stop'
      | 'SubagentStart'
      | 'SubagentStop'
      | 'PreCompact'
      | 'PermissionRequest';

    HookCallback

    Tipo de função de callback de hook.

    type HookCallback = (
      input: HookInput, // União de todos os tipos de entrada de hook
      toolUseID: string | undefined,
      options: { signal: AbortSignal }
    ) => Promise<HookJSONOutput>;

    HookCallbackMatcher

    Configuração de hook com matcher opcional.

    interface HookCallbackMatcher {
      matcher?: string;
      hooks: HookCallback[];
    }

    HookInput

    Tipo de união de todos os tipos de entrada de hook.

    type HookInput =
      | PreToolUseHookInput
      | PostToolUseHookInput
      | PostToolUseFailureHookInput
      | NotificationHookInput
      | UserPromptSubmitHookInput
      | SessionStartHookInput
      | SessionEndHookInput
      | StopHookInput
      | SubagentStartHookInput
      | SubagentStopHookInput
      | PreCompactHookInput
      | PermissionRequestHookInput;

    BaseHookInput

    Interface base que todos os tipos de entrada de hook estendem.

    type BaseHookInput = {
      session_id: string;
      transcript_path: string;
      cwd: string;
      permission_mode?: string;
    }

    PreToolUseHookInput

    type PreToolUseHookInput = BaseHookInput & {
      hook_event_name: 'PreToolUse';
      tool_name: string;
      tool_input: unknown;
    }

    PostToolUseHookInput

    type PostToolUseHookInput = BaseHookInput & {
      hook_event_name: 'PostToolUse';
      tool_name: string;
      tool_input: unknown;
      tool_response: unknown;
    }

    PostToolUseFailureHookInput

    type PostToolUseFailureHookInput = BaseHookInput & {
      hook_event_name: 'PostToolUseFailure';
      tool_name: string;
      tool_input: unknown;
      error: string;
      is_interrupt?: boolean;
    }

    NotificationHookInput

    type NotificationHookInput = BaseHookInput & {
      hook_event_name: 'Notification';
      message: string;
      title?: string;
    }

    UserPromptSubmitHookInput

    type UserPromptSubmitHookInput = BaseHookInput & {
      hook_event_name: 'UserPromptSubmit';
      prompt: string;
    }

    SessionStartHookInput

    type SessionStartHookInput = BaseHookInput & {
      hook_event_name: 'SessionStart';
      source: 'startup' | 'resume' | 'clear' | 'compact';
    }

    SessionEndHookInput

    type SessionEndHookInput = BaseHookInput & {
      hook_event_name: 'SessionEnd';
      reason: ExitReason;  // String do array EXIT_REASONS
    }

    StopHookInput

    type StopHookInput = BaseHookInput & {
      hook_event_name: 'Stop';
      stop_hook_active: boolean;
    }

    SubagentStartHookInput

    type SubagentStartHookInput = BaseHookInput & {
      hook_event_name: 'SubagentStart';
      agent_id: string;
      agent_type: string;
    }

    SubagentStopHookInput

    type SubagentStopHookInput = BaseHookInput & {
      hook_event_name: 'SubagentStop';
      stop_hook_active: boolean;
    }

    PreCompactHookInput

    type PreCompactHookInput = BaseHookInput & {
      hook_event_name: 'PreCompact';
      trigger: 'manual' | 'auto';
      custom_instructions: string | null;
    }

    PermissionRequestHookInput

    type PermissionRequestHookInput = BaseHookInput & {
      hook_event_name: 'PermissionRequest';
      tool_name: string;
      tool_input: unknown;
      permission_suggestions?: PermissionUpdate[];
    }

    HookJSONOutput

    Valor de retorno do hook.

    type HookJSONOutput = AsyncHookJSONOutput | SyncHookJSONOutput;

    AsyncHookJSONOutput

    type AsyncHookJSONOutput = {
      async: true;
      asyncTimeout?: number;
    }

    SyncHookJSONOutput

    type SyncHookJSONOutput = {
      continue?: boolean;
      suppressOutput?: boolean;
      stopReason?: string;
      decision?: 'approve' | 'block';
      systemMessage?: string;
      reason?: string;
      hookSpecificOutput?:
        | {
            hookEventName: 'PreToolUse';
            permissionDecision?: 'allow' | 'deny' | 'ask';
            permissionDecisionReason?: string;
            updatedInput?: Record<string, unknown>;
          }
        | {
            hookEventName: 'UserPromptSubmit';
            additionalContext?: string;
          }
        | {
            hookEventName: 'SessionStart';
            additionalContext?: string;
          }
        | {
            hookEventName: 'PostToolUse';
            additionalContext?: string;
          };
    }

    Tipos de Entrada de Ferramenta

    Documentação de esquemas de entrada para todas as ferramentas Claude Code integradas. Esses tipos são exportados de @anthropic-ai/claude-agent-sdk e podem ser usados para interações de ferramentas type-safe.

    ToolInput

    Nota: Este é um tipo apenas para documentação para clareza. Representa a união de todos os tipos de entrada de ferramenta.

    type ToolInput =
      | AgentInput
      | AskUserQuestionInput
      | BashInput
      | BashOutputInput
      | FileEditInput
      | FileReadInput
      | FileWriteInput
      | GlobInput
      | GrepInput
      | KillShellInput
      | NotebookEditInput
      | WebFetchInput
      | WebSearchInput
      | TodoWriteInput
      | ExitPlanModeInput
      | ListMcpResourcesInput
      | ReadMcpResourceInput;

    Task

    Nome da ferramenta: Task

    interface AgentInput {
      /**
       * Uma descrição breve (3-5 palavras) da tarefa
       */
      description: string;
      /**
       * A tarefa para o agente executar
       */
      prompt: string;
      /**
       * O tipo de agente especializado a usar para esta tarefa
       */
      subagent_type: string;
    }

    Inicia um novo agente para lidar com tarefas complexas e multi-etapas de forma autônoma.

    AskUserQuestion

    Nome da ferramenta: AskUserQuestion

    interface AskUserQuestionInput {
      /**
       * Perguntas a fazer ao usuário (1-4 perguntas)
       */
      questions: Array<{
        /**
         * A pergunta completa a fazer ao usuário. Deve ser clara, específica,
         * e terminar com um ponto de interrogação.
         */
        question: string;
        /**
         * Rótulo muito curto exibido como um chip/tag (máx 12 caracteres).
         * Exemplos: "Auth method", "Library", "Approach"
         */
        header: string;
        /**
         * As opções disponíveis (2-4 opções). Uma opção "Other" é
         * fornecida automaticamente.
         */
        options: Array<{
          /**
           * Texto de exibição para esta opção (1-5 palavras)
           */
          label: string;
          /**
           * Explicação do que esta opção significa
           */
          description: string;
        }>;
        /**
         * Defina como true para permitir múltiplas seleções
         */
        multiSelect: boolean;
      }>;
      /**
       * Respostas do usuário preenchidas pelo sistema de permissões.
       * Mapeia texto de pergunta para rótulo(s) de opção selecionada.
       * Respostas de múltipla seleção são separadas por vírgula.
       */
      answers?: Record<string, string>;
    }

    Faz perguntas de esclarecimento ao usuário durante a execução. Veja Handling the AskUserQuestion Tool para detalhes de uso.

    Bash

    Nome da ferramenta: Bash

    interface BashInput {
      /**
       * O comando a executar
       */
      command: string;
      /**
       * Timeout opcional em milissegundos (máx 600000)
       */
      timeout?: number;
      /**
       * Descrição clara e concisa do que este comando faz em 5-10 palavras
       */
      description?: string;
      /**
       * Defina como true para executar este comando em background
       */
      run_in_background?: boolean;
    }

    Executa comandos bash em uma sessão de shell persistente com timeout opcional e execução em background.

    BashOutput

    Nome da ferramenta: BashOutput

    interface BashOutputInput {
      /**
       * O ID do shell em background para recuperar saída
       */
      bash_id: string;
      /**
       * Regex opcional para filtrar linhas de saída
       */
      filter?: string;
    }

    Recupera saída de um shell bash em execução ou concluído em background.

    Edit

    Nome da ferramenta: Edit

    interface FileEditInput {
      /**
       * O caminho absoluto para o arquivo a modificar
       */
      file_path: string;
      /**
       * O texto a substituir
       */
      old_string: string;
      /**
       * O texto para substituir (deve ser diferente de old_string)
       */
      new_string: string;
      /**
       * Substituir todas as ocorrências de old_string (padrão false)
       */
      replace_all?: boolean;
    }

    Realiza substituições exatas de string em arquivos.

    Read

    Nome da ferramenta: Read

    interface FileReadInput {
      /**
       * O caminho absoluto para o arquivo a ler
       */
      file_path: string;
      /**
       * O número da linha para começar a ler
       */
      offset?: number;
      /**
       * O número de linhas a ler
       */
      limit?: number;
    }

    Lê arquivos do sistema de arquivos local, incluindo texto, imagens, PDFs e notebooks Jupyter.

    Write

    Nome da ferramenta: Write

    interface FileWriteInput {
      /**
       * O caminho absoluto para o arquivo a escrever
       */
      file_path: string;
      /**
       * O conteúdo a escrever no arquivo
       */
      content: string;
    }

    Escreve um arquivo no sistema de arquivos local, sobrescrevendo se existir.

    Glob

    Nome da ferramenta: Glob

    interface GlobInput {
      /**
       * O padrão glob para corresponder arquivos
       */
      pattern: string;
      /**
       * O diretório para pesquisar (padrão cwd)
       */
      path?: string;
    }

    Correspondência rápida de padrão de arquivo que funciona com qualquer tamanho de codebase.

    Grep

    Nome da ferramenta: Grep

    interface GrepInput {
      /**
       * O padrão de expressão regular para pesquisar
       */
      pattern: string;
      /**
       * Arquivo ou diretório para pesquisar (padrão cwd)
       */
      path?: string;
      /**
       * Padrão glob para filtrar arquivos (por exemplo "*.js")
       */
      glob?: string;
      /**
       * Tipo de arquivo para pesquisar (por exemplo "js", "py", "rust")
       */
      type?: string;
      /**
       * Modo de saída: "content", "files_with_matches", ou "count"
       */
      output_mode?: 'content' | 'files_with_matches' | 'count';
      /**
       * Pesquisa insensível a maiúsculas/minúsculas
       */
      '-i'?: boolean;
      /**
       * Mostrar números de linha (para modo content)
       */
      '-n'?: boolean;
      /**
       * Linhas para mostrar antes de cada correspondência
       */
      '-B'?: number;
      /**
       * Linhas para mostrar após cada correspondência
       */
      '-A'?: number;
      /**
       * Linhas para mostrar antes e depois de cada correspondência
       */
      '-C'?: number;
      /**
       * Limitar saída às primeiras N linhas/entradas
       */
      head_limit?: number;
      /**
       * Ativar modo multilinha
       */
      multiline?: boolean;
    }

    Ferramenta de pesquisa poderosa construída em ripgrep com suporte a regex.

    KillBash

    Nome da ferramenta: KillBash

    interface KillShellInput {
      /**
       * O ID do shell em background para matar
       */
      shell_id: string;
    }

    Mata um shell bash em execução em background pelo seu ID.

    NotebookEdit

    Nome da ferramenta: NotebookEdit

    interface NotebookEditInput {
      /**
       * O caminho absoluto para o arquivo de notebook Jupyter
       */
      notebook_path: string;
      /**
       * O ID da célula a editar
       */
      cell_id?: string;
      /**
       * A nova fonte para a célula
       */
      new_source: string;
      /**
       * O tipo da célula (code ou markdown)
       */
      cell_type?: 'code' | 'markdown';
      /**
       * O tipo de edição (replace, insert, delete)
       */
      edit_mode?: 'replace' | 'insert' | 'delete';
    }

    Edita células em arquivos de notebook Jupyter.

    WebFetch

    Nome da ferramenta: WebFetch

    interface WebFetchInput {
      /**
       * A URL para buscar conteúdo
       */
      url: string;
      /**
       * O prompt para executar no conteúdo buscado
       */
      prompt: string;
    }

    Busca conteúdo de uma URL e o processa com um modelo de IA.

    WebSearch

    Nome da ferramenta: WebSearch

    interface WebSearchInput {
      /**
       * A consulta de pesquisa a usar
       */
      query: string;
      /**
       * Incluir apenas resultados destes domínios
       */
      allowed_domains?: string[];
      /**
       * Nunca incluir resultados destes domínios
       */
      blocked_domains?: string[];
    }

    Pesquisa a web e retorna resultados formatados.

    TodoWrite

    Nome da ferramenta: TodoWrite

    interface TodoWriteInput {
      /**
       * A lista de tarefas atualizada
       */
      todos: Array<{
        /**
         * A descrição da tarefa
         */
        content: string;
        /**
         * O status da tarefa
         */
        status: 'pending' | 'in_progress' | 'completed';
        /**
         * Forma ativa da descrição da tarefa
         */
        activeForm: string;
      }>;
    }

    Cria e gerencia uma lista de tarefas estruturada para rastrear progresso.

    ExitPlanMode

    Nome da ferramenta: ExitPlanMode

    interface ExitPlanModeInput {
      /**
       * O plano a executar pelo usuário para aprovação
       */
      plan: string;
    }

    Sai do modo de planejamento e solicita ao usuário que aprove o plano.

    ListMcpResources

    Nome da ferramenta: ListMcpResources

    interface ListMcpResourcesInput {
      /**
       * Nome de servidor opcional para filtrar recursos por
       */
      server?: string;
    }

    Lista recursos MCP disponíveis de servidores conectados.

    ReadMcpResource

    Nome da ferramenta: ReadMcpResource

    interface ReadMcpResourceInput {
      /**
       * O nome do servidor MCP
       */
      server: string;
      /**
       * A URI do recurso a ler
       */
      uri: string;
    }

    Lê um recurso MCP específico de um servidor.

    Tipos de Saída de Ferramenta

    Documentação de esquemas de saída para todas as ferramentas Claude Code integradas. Esses tipos representam os dados de resposta reais retornados por cada ferramenta.

    ToolOutput

    Nota: Este é um tipo apenas para documentação para clareza. Representa a união de todos os tipos de saída de ferramenta.

    type ToolOutput =
      | TaskOutput
      | AskUserQuestionOutput
      | BashOutput
      | BashOutputToolOutput
      | EditOutput
      | ReadOutput
      | WriteOutput
      | GlobOutput
      | GrepOutput
      | KillBashOutput
      | NotebookEditOutput
      | WebFetchOutput
      | WebSearchOutput
      | TodoWriteOutput
      | ExitPlanModeOutput
      | ListMcpResourcesOutput
      | ReadMcpResourceOutput;

    Task

    Nome da ferramenta: Task

    interface TaskOutput {
      /**
       * Mensagem de resultado final do subagentos
       */
      result: string;
      /**
       * Estatísticas de uso de token
       */
      usage?: {
        input_tokens: number;
        output_tokens: number;
        cache_creation_input_tokens?: number;
        cache_read_input_tokens?: number;
      };
      /**
       * Custo total em USD
       */
      total_cost_usd?: number;
      /**
       * Duração da execução em milissegundos
       */
      duration_ms?: number;
    }

    Retorna o resultado final do subagentos após completar a tarefa delegada.

    AskUserQuestion

    Nome da ferramenta: AskUserQuestion

    interface AskUserQuestionOutput {
      /**
       * As perguntas que foram feitas
       */
      questions: Array<{
        question: string;
        header: string;
        options: Array<{
          label: string;
          description: string;
        }>;
        multiSelect: boolean;
      }>;
      /**
       * As respostas fornecidas pelo usuário.
       * Mapeia texto de pergunta para string de resposta.
       * Respostas de múltipla seleção são separadas por vírgula.
       */
      answers: Record<string, string>;
    }

    Retorna as perguntas feitas e as respostas do usuário.

    Bash

    Nome da ferramenta: Bash

    interface BashOutput {
      /**
       * Saída combinada de stdout e stderr
       */
      output: string;
      /**
       * Código de saída do comando
       */
      exitCode: number;
      /**
       * Se o comando foi morto devido a timeout
       */
      killed?: boolean;
      /**
       * ID do shell para processos em background
       */
      shellId?: string;
    }

    Retorna saída de comando com status de saída. Comandos em background retornam imediatamente com um shellId.

    BashOutput

    Nome da ferramenta: BashOutput

    interface BashOutputToolOutput {
      /**
       * Nova saída desde a última verificação
       */
      output: string;
      /**
       * Status atual do shell
       */
      status: 'running' | 'completed' | 'failed';
      /**
       * Código de saída (quando concluído)
       */
      exitCode?: number;
    }

    Retorna saída incremental de shells em background.

    Edit

    Nome da ferramenta: Edit

    interface EditOutput {
      /**
       * Mensagem de confirmação
       */
      message: string;
      /**
       * Número de substituições feitas
       */
      replacements: number;
      /**
       * Caminho do arquivo que foi editado
       */
      file_path: string;
    }

    Retorna confirmação de edições bem-sucedidas com contagem de substituições.

    Ler

    Nome da ferramenta: Read

    type ReadOutput = 
      | TextFileOutput
      | ImageFileOutput
      | PDFFileOutput
      | NotebookFileOutput;
    
    interface TextFileOutput {
      /**
       * Conteúdo do arquivo com números de linha
       */
      content: string;
      /**
       * Número total de linhas no arquivo
       */
      total_lines: number;
      /**
       * Linhas realmente retornadas
       */
      lines_returned: number;
    }
    
    interface ImageFileOutput {
      /**
       * Dados de imagem codificados em Base64
       */
      image: string;
      /**
       * Tipo MIME da imagem
       */
      mime_type: string;
      /**
       * Tamanho do arquivo em bytes
       */
      file_size: number;
    }
    
    interface PDFFileOutput {
      /**
       * Array de conteúdos de página
       */
      pages: Array<{
        page_number: number;
        text?: string;
        images?: Array<{
          image: string;
          mime_type: string;
        }>;
      }>;
      /**
       * Número total de páginas
       */
      total_pages: number;
    }
    
    interface NotebookFileOutput {
      /**
       * Células do notebook Jupyter
       */
      cells: Array<{
        cell_type: 'code' | 'markdown';
        source: string;
        outputs?: any[];
        execution_count?: number;
      }>;
      /**
       * Metadados do notebook
       */
      metadata?: Record<string, any>;
    }

    Retorna o conteúdo do arquivo em formato apropriado para o tipo de arquivo.

    Escrever

    Nome da ferramenta: Write

    interface WriteOutput {
      /**
       * Mensagem de sucesso
       */
      message: string;
      /**
       * Número de bytes escritos
       */
      bytes_written: number;
      /**
       * Caminho do arquivo que foi escrito
       */
      file_path: string;
    }

    Retorna confirmação após escrever com sucesso o arquivo.

    Glob

    Nome da ferramenta: Glob

    interface GlobOutput {
      /**
       * Array de caminhos de arquivo correspondentes
       */
      matches: string[];
      /**
       * Número de correspondências encontradas
       */
      count: number;
      /**
       * Diretório de pesquisa usado
       */
      search_path: string;
    }

    Retorna caminhos de arquivo correspondentes ao padrão glob, ordenados por tempo de modificação.

    Grep

    Nome da ferramenta: Grep

    type GrepOutput = 
      | GrepContentOutput
      | GrepFilesOutput
      | GrepCountOutput;
    
    interface GrepContentOutput {
      /**
       * Linhas correspondentes com contexto
       */
      matches: Array<{
        file: string;
        line_number?: number;
        line: string;
        before_context?: string[];
        after_context?: string[];
      }>;
      /**
       * Número total de correspondências
       */
      total_matches: number;
    }
    
    interface GrepFilesOutput {
      /**
       * Arquivos contendo correspondências
       */
      files: string[];
      /**
       * Número de arquivos com correspondências
       */
      count: number;
    }
    
    interface GrepCountOutput {
      /**
       * Contagens de correspondências por arquivo
       */
      counts: Array<{
        file: string;
        count: number;
      }>;
      /**
       * Total de correspondências em todos os arquivos
       */
      total: number;
    }

    Retorna resultados de pesquisa no formato especificado por output_mode.

    KillBash

    Nome da ferramenta: KillBash

    interface KillBashOutput {
      /**
       * Mensagem de sucesso
       */
      message: string;
      /**
       * ID do shell encerrado
       */
      shell_id: string;
    }

    Retorna confirmação após encerrar o shell em segundo plano.

    NotebookEdit

    Nome da ferramenta: NotebookEdit

    interface NotebookEditOutput {
      /**
       * Mensagem de sucesso
       */
      message: string;
      /**
       * Tipo de edição realizada
       */
      edit_type: 'replaced' | 'inserted' | 'deleted';
      /**
       * ID da célula que foi afetada
       */
      cell_id?: string;
      /**
       * Total de células no notebook após a edição
       */
      total_cells: number;
    }

    Retorna confirmação após modificar o notebook Jupyter.

    WebFetch

    Nome da ferramenta: WebFetch

    interface WebFetchOutput {
      /**
       * Resposta do modelo de IA ao prompt
       */
      response: string;
      /**
       * URL que foi buscada
       */
      url: string;
      /**
       * URL final após redirecionamentos
       */
      final_url?: string;
      /**
       * Código de status HTTP
       */
      status_code?: number;
    }

    Retorna a análise da IA do conteúdo web buscado.

    WebSearch

    Nome da ferramenta: WebSearch

    interface WebSearchOutput {
      /**
       * Resultados da pesquisa
       */
      results: Array<{
        title: string;
        url: string;
        snippet: string;
        /**
         * Metadados adicionais se disponíveis
         */
        metadata?: Record<string, any>;
      }>;
      /**
       * Número total de resultados
       */
      total_results: number;
      /**
       * A consulta que foi pesquisada
       */
      query: string;
    }

    Retorna resultados de pesquisa formatados da web.

    TodoWrite

    Nome da ferramenta: TodoWrite

    interface TodoWriteOutput {
      /**
       * Mensagem de sucesso
       */
      message: string;
      /**
       * Estatísticas atuais de tarefas
       */
      stats: {
        total: number;
        pending: number;
        in_progress: number;
        completed: number;
      };
    }

    Retorna confirmação com estatísticas atuais de tarefas.

    ExitPlanMode

    Nome da ferramenta: ExitPlanMode

    interface ExitPlanModeOutput {
      /**
       * Mensagem de confirmação
       */
      message: string;
      /**
       * Se o usuário aprovou o plano
       */
      approved?: boolean;
    }

    Retorna confirmação após sair do modo de plano.

    ListMcpResources

    Nome da ferramenta: ListMcpResources

    interface ListMcpResourcesOutput {
      /**
       * Recursos disponíveis
       */
      resources: Array<{
        uri: string;
        name: string;
        description?: string;
        mimeType?: string;
        server: string;
      }>;
      /**
       * Número total de recursos
       */
      total: number;
    }

    Retorna lista de recursos MCP disponíveis.

    ReadMcpResource

    Nome da ferramenta: ReadMcpResource

    interface ReadMcpResourceOutput {
      /**
       * Conteúdo do recurso
       */
      contents: Array<{
        uri: string;
        mimeType?: string;
        text?: string;
        blob?: string;
      }>;
      /**
       * Servidor que forneceu o recurso
       */
      server: string;
    }

    Retorna o conteúdo do recurso MCP solicitado.

    Tipos de Permissão

    PermissionUpdate

    Operações para atualizar permissões.

    type PermissionUpdate = 
      | {
          type: 'addRules';
          rules: PermissionRuleValue[];
          behavior: PermissionBehavior;
          destination: PermissionUpdateDestination;
        }
      | {
          type: 'replaceRules';
          rules: PermissionRuleValue[];
          behavior: PermissionBehavior;
          destination: PermissionUpdateDestination;
        }
      | {
          type: 'removeRules';
          rules: PermissionRuleValue[];
          behavior: PermissionBehavior;
          destination: PermissionUpdateDestination;
        }
      | {
          type: 'setMode';
          mode: PermissionMode;
          destination: PermissionUpdateDestination;
        }
      | {
          type: 'addDirectories';
          directories: string[];
          destination: PermissionUpdateDestination;
        }
      | {
          type: 'removeDirectories';
          directories: string[];
          destination: PermissionUpdateDestination;
        }

    PermissionBehavior

    type PermissionBehavior = 'allow' | 'deny' | 'ask';

    PermissionUpdateDestination

    type PermissionUpdateDestination = 
      | 'userSettings'     // Configurações globais do usuário
      | 'projectSettings'  // Configurações de projeto por diretório
      | 'localSettings'    // Configurações locais ignoradas pelo Git
      | 'session'          // Apenas sessão atual

    PermissionRuleValue

    type PermissionRuleValue = {
      toolName: string;
      ruleContent?: string;
    }

    Outros Tipos

    ApiKeySource

    type ApiKeySource = 'user' | 'project' | 'org' | 'temporary';

    SdkBeta

    Recursos beta disponíveis que podem ser habilitados via opção betas. Veja cabeçalhos beta para mais informações.

    type SdkBeta = 'context-1m-2025-08-07';
    ValorDescriçãoModelos Compatíveis
    'context-1m-2025-08-07'Habilita janela de contexto de 1 milhão de tokensClaude Sonnet 4, Claude Sonnet 4.5

    SlashCommand

    Informações sobre um comando de barra disponível.

    type SlashCommand = {
      name: string;
      description: string;
      argumentHint: string;
    }

    ModelInfo

    Informações sobre um modelo disponível.

    type ModelInfo = {
      value: string;
      displayName: string;
      description: string;
    }

    McpServerStatus

    Status de um servidor MCP conectado.

    type McpServerStatus = {
      name: string;
      status: 'connected' | 'failed' | 'needs-auth' | 'pending';
      serverInfo?: {
        name: string;
        version: string;
      };
    }

    AccountInfo

    Informações de conta para o usuário autenticado.

    type AccountInfo = {
      email?: string;
      organization?: string;
      subscriptionType?: string;
      tokenSource?: string;
      apiKeySource?: string;
    }

    ModelUsage

    Estatísticas de uso por modelo retornadas em mensagens de resultado.

    type ModelUsage = {
      inputTokens: number;
      outputTokens: number;
      cacheReadInputTokens: number;
      cacheCreationInputTokens: number;
      webSearchRequests: number;
      costUSD: number;
      contextWindow: number;
    }

    ConfigScope

    type ConfigScope = 'local' | 'user' | 'project';

    NonNullableUsage

    Uma versão de Usage com todos os campos anuláveis tornados não-anuláveis.

    type NonNullableUsage = {
      [K in keyof Usage]: NonNullable<Usage[K]>;
    }

    Usage

    Estatísticas de uso de tokens (de @anthropic-ai/sdk).

    type Usage = {
      input_tokens: number | null;
      output_tokens: number | null;
      cache_creation_input_tokens?: number | null;
      cache_read_input_tokens?: number | null;
    }

    CallToolResult

    Tipo de resultado de ferramenta MCP (de @modelcontextprotocol/sdk/types.js).

    type CallToolResult = {
      content: Array<{
        type: 'text' | 'image' | 'resource';
        // Campos adicionais variam por tipo
      }>;
      isError?: boolean;
    }

    AbortError

    Classe de erro personalizada para operações de abortagem.

    class AbortError extends Error {}

    Configuração de Sandbox

    SandboxSettings

    Configuração para comportamento de sandbox. Use isto para habilitar sandboxing de comando e configurar restrições de rede programaticamente.

    type SandboxSettings = {
      enabled?: boolean;
      autoAllowBashIfSandboxed?: boolean;
      excludedCommands?: string[];
      allowUnsandboxedCommands?: boolean;
      network?: NetworkSandboxSettings;
      ignoreViolations?: SandboxIgnoreViolations;
      enableWeakerNestedSandbox?: boolean;
    }
    PropriedadeTipoPadrãoDescrição
    enabledbooleanfalseHabilitar modo sandbox para execução de comando
    autoAllowBashIfSandboxedbooleanfalseAprovar automaticamente comandos bash quando sandbox está habilitado
    excludedCommandsstring[][]Comandos que sempre contornam restrições de sandbox (por exemplo, ['docker']). Estes executam sem sandbox automaticamente sem envolvimento do modelo

    Restrições de acesso a sistema de arquivos e rede NÃO são configuradas via configurações de sandbox. Em vez disso, são derivadas de regras de permissão:

    • Restrições de leitura do sistema de arquivos: Regras de negação de leitura
    • Restrições de escrita do sistema de arquivos: Regras de permissão/negação de edição
    • Restrições de rede: Regras de permissão/negação de WebFetch

    Use configurações de sandbox para sandboxing de execução de comando e regras de permissão para controle de acesso a sistema de arquivos e rede.

    Exemplo de uso

    import { query } from "@anthropic-ai/claude-agent-sdk";
    
    const result = await query({
      prompt: "Build and test my project",
      options: {
        sandbox: {
          enabled: true,
          autoAllowBashIfSandboxed: true,
          excludedCommands: ["docker"],
          network: {
            allowLocalBinding: true,
            allowUnixSockets: ["/var/run/docker.sock"]
          }
        }
      }
    });

    NetworkSandboxSettings

    Configuração específica de rede para modo sandbox.

    type NetworkSandboxSettings = {
      allowLocalBinding?: boolean;
      allowUnixSockets?: string[];
      allowAllUnixSockets?: boolean;
      httpProxyPort?: number;
      socksProxyPort?: number;
    }
    PropriedadeTipoPadrãoDescrição
    allowLocalBindingbooleanfalsePermitir que processos se vinculem a portas locais (por exemplo, para servidores de desenvolvimento)
    allowUnixSocketsstring[][]Caminhos de socket Unix que processos podem acessar (por exemplo, socket Docker)
    allowAllUnixSocketsbooleanfalsePermitir acesso a todos os sockets Unix

    SandboxIgnoreViolations

    Configuração para ignorar violações de sandbox específicas.

    type SandboxIgnoreViolations = {
      file?: string[];
      network?: string[];
    }
    PropriedadeTipoPadrãoDescrição
    filestring[][]Padrões de caminho de arquivo para ignorar violações
    networkstring[][]Padrões de rede para ignorar violações

    Fallback de Permissões para Comandos Sem Sandbox

    Quando allowUnsandboxedCommands está habilitado, o modelo pode solicitar executar comandos fora do sandbox definindo dangerouslyDisableSandbox: true na entrada da ferramenta. Estas solicitações voltam para o sistema de permissões existente, significando que seu manipulador canUseTool será 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 isto.
    • allowUnsandboxedCommands: Permite que o modelo decida em tempo de execução se deve solicitar execução sem sandbox definindo dangerouslyDisableSandbox: true na entrada da ferramenta.
    import { query } from "@anthropic-ai/claude-agent-sdk";
    
    const result = await query({
      prompt: "Deploy my application",
      options: {
        sandbox: {
          enabled: true,
          allowUnsandboxedCommands: true  // O modelo pode solicitar execução sem sandbox
        },
        permissionMode: "default",
        canUseTool: async (tool, input) => {
          // Verificar se o modelo está solicitando contornar o sandbox
          if (tool === "Bash" && input.dangerouslyDisableSandbox) {
            // O modelo quer executar este comando fora do sandbox
            console.log(`Unsandboxed command requested: ${input.command}`);
    
            // Retornar true para permitir, false para negar
            return isCommandAuthorized(input.command);
          }
          return true;
        }
      }
    });

    Este padrão permite que você:

    • Auditar solicitações do modelo: Registrar quando o modelo solicita execução sem sandbox
    • Implementar listas de permissão: Permitir apenas comandos específicos para executar sem sandbox
    • Adicionar fluxos de trabalho de aprovação: Exigir autorização explícita para operações privilegiadas

    Comandos executados com dangerouslyDisableSandbox: true têm acesso total ao sistema. Certifique-se de que seu manipulador canUseTool valida estas solicitações cuidadosamente.

    Veja também

    • Visão geral do SDK - Conceitos gerais do SDK
    • Referência do SDK Python - Documentação do SDK Python
    • Referência CLI - Interface de linha de comando
    • Fluxos de trabalho comuns - Guias passo a passo
    • Instalação
    • Funções
    • query()
    • tool()
    • createSdkMcpServer()
    • Tipos
    • Options
    • Query
    • AgentDefinition
    • SettingSource
    • PermissionMode
    • CanUseTool
    • PermissionResult
    • McpServerConfig
    • SdkPluginConfig
    • Tipos de Mensagem
    • SDKMessage
    • SDKAssistantMessage
    • SDKUserMessage
    • SDKUserMessageReplay
    • SDKResultMessage
    • SDKSystemMessage
    • SDKPartialAssistantMessage
    • SDKCompactBoundaryMessage
    • SDKPermissionDenial
    • Tipos de Hook
    • HookEvent
    • HookCallback
    • HookCallbackMatcher
    • HookInput
    • BaseHookInput
    • HookJSONOutput
    • Tipos de Entrada de Ferramenta
    • ToolInput
    • Task
    • AskUserQuestion
    • Bash
    • BashOutput
    • Edit
    • Read
    • Write
    • Glob
    • Grep
    • KillBash
    • NotebookEdit
    • WebFetch
    • WebSearch
    • TodoWrite
    • ExitPlanMode
    • ListMcpResources
    • ReadMcpResource
    • Tipos de Saída de Ferramenta
    • ToolOutput
    • Task
    • AskUserQuestion
    • Bash
    • BashOutput
    • Edit
    • Ler
    • Escrever
    • Glob
    • Grep
    • KillBash
    • NotebookEdit
    • WebFetch
    • WebSearch
    • TodoWrite
    • ExitPlanMode
    • ListMcpResources
    • ReadMcpResource
    • Tipos de Permissão
    • PermissionUpdate
    • PermissionBehavior
    • PermissionUpdateDestination
    • PermissionRuleValue
    • Outros Tipos
    • ApiKeySource
    • SdkBeta
    • SlashCommand
    • ModelInfo
    • McpServerStatus
    • AccountInfo
    • ModelUsage
    • ConfigScope
    • NonNullableUsage
    • Usage
    • CallToolResult
    • AbortError
    • Configuração de Sandbox
    • SandboxSettings
    • NetworkSandboxSettings
    • SandboxIgnoreViolations
    • Fallback de Permissões para Comandos Sem Sandbox
    • Veja também
    allowDangerouslySkipPermissions
    boolean
    false
    Ativar bypass de permissões. Necessário ao usar permissionMode: 'bypassPermissions'
    allowedToolsstring[]Todas as ferramentasLista de nomes de ferramentas permitidas
    betasSdkBeta[][]Ativar recursos beta (por exemplo, ['context-1m-2025-08-07'])
    canUseToolCanUseToolundefinedFunção de permissão personalizada para uso de ferramentas
    continuebooleanfalseContinuar a conversa mais recente
    cwdstringprocess.cwd()Diretório de trabalho atual
    disallowedToolsstring[][]Lista de nomes de ferramentas não permitidas
    enableFileCheckpointingbooleanfalseAtivar rastreamento de alterações de arquivo para retrocesso. Veja File checkpointing
    envDict<string>process.envVariáveis de ambiente
    executable'bun' | 'deno' | 'node'Auto-detectadoRuntime JavaScript a usar
    executableArgsstring[][]Argumentos a passar para o executável
    extraArgsRecord<string, string | null>{}Argumentos adicionais
    fallbackModelstringundefinedModelo a usar se o primário falhar
    forkSessionbooleanfalseAo retomar com resume, fazer fork para um novo ID de sessão em vez de continuar a sessão original
    hooksPartial<Record<HookEvent, HookCallbackMatcher[]>>{}Callbacks de hook para eventos
    includePartialMessagesbooleanfalseIncluir eventos de mensagem parcial
    maxBudgetUsdnumberundefinedOrçamento máximo em USD para a consulta
    maxThinkingTokensnumberundefinedTokens máximos para o processo de pensamento
    maxTurnsnumberundefinedTurnos de conversa máximos
    mcpServersRecord<string, [McpServerConfig](#mcpserverconfig)>{}Configurações de servidor MCP
    modelstringPadrão da CLIModelo Claude a usar
    outputFormat{ type: 'json_schema', schema: JSONSchema }undefinedDefina o formato de saída para resultados do agente. Veja Structured outputs para detalhes
    pathToClaudeCodeExecutablestringUsa executável integradoCaminho para o executável Claude Code
    permissionModePermissionMode'default'Modo de permissão para a sessão
    permissionPromptToolNamestringundefinedNome da ferramenta MCP para prompts de permissão
    pluginsSdkPluginConfig[][]Carregue plugins personalizados de caminhos locais. Veja Plugins para detalhes
    resumestringundefinedID de sessão a retomar
    resumeSessionAtstringundefinedRetomar sessão em um UUID de mensagem específico
    sandboxSandboxSettingsundefinedConfigure o comportamento da sandbox programaticamente. Veja Sandbox settings para detalhes
    settingSourcesSettingSource[][] (sem configurações)Controle quais configurações baseadas em sistema de arquivos carregar. Quando omitido, nenhuma configuração é carregada. Nota: Deve incluir 'project' para carregar arquivos CLAUDE.md
    stderr(data: string) => voidundefinedCallback para saída stderr
    strictMcpConfigbooleanfalseImpor validação MCP rigorosa
    systemPromptstring | { type: 'preset'; preset: 'claude_code'; append?: string }undefined (prompt vazio)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 estender o prompt do sistema com instruções adicionais
    toolsstring[] | { type: 'preset'; preset: 'claude_code' }undefinedConfiguração de ferramentas. Passe um array de nomes de ferramentas ou use o preset para obter as ferramentas padrão do Claude Code
    supportedModels()
    Retorna modelos disponíveis com informações de exibição
    mcpServerStatus()Retorna status dos servidores MCP conectados
    accountInfo()Retorna informações da conta
    allowUnsandboxedCommandsbooleanfalsePermitir 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
    networkNetworkSandboxSettingsundefinedConfiguração de sandbox específica de rede
    ignoreViolationsSandboxIgnoreViolationsundefinedConfigurar quais violações de sandbox ignorar
    enableWeakerNestedSandboxbooleanfalseHabilitar um sandbox aninhado mais fraco para compatibilidade
    httpProxyPort
    number
    undefined
    Porta de proxy HTTP para requisições de rede
    socksProxyPortnumberundefinedPorta de proxy SOCKS para requisições de rede