SpyBara
Go Premium

Documentation 2026-05-13 23:01 UTC to 2026-05-14 17:02 UTC

22 files changed +412 −88. View all changes and history on the product overview
2026
Sun 31 06:39 Sat 30 06:23 Fri 29 06:38 Thu 28 06:37 Wed 27 06:42 Tue 26 06:33 Sun 24 06:25 Sat 23 06:18 Fri 22 06:33 Thu 21 06:36 Wed 20 06:35 Tue 19 06:34 Mon 18 23:59 Sun 17 01:01 Fri 15 22:58 Thu 14 17:02 Wed 13 23:01 Tue 12 22:57 Mon 11 23:00 Sun 10 23:03 Sat 9 04:57 Fri 8 22:00 Thu 7 22:59 Tue 5 23:00 Mon 4 22:58 Sat 2 18:14 Fri 1 18:19
Details

235 235 

236Seu callback retorna um objeto com duas categorias de campos:236Seu callback retorna um objeto com duas categorias de campos:

237 237 

238* **Campos de nível superior** controlam a conversa: `systemMessage` injeta uma mensagem na conversa visível ao modelo, e `continue` (`continue_` em Python) determina se o agente continua executando após este hook.238* **Campos de nível superior** funcionam da mesma forma em cada evento: `systemMessage` mostra uma mensagem ao usuário, e `continue` (`continue_` em Python) determina se o agente continua executando após este hook.

239* **`hookSpecificOutput`** controla a operação atual. Os campos dentro dependem do tipo de evento de hook. Para hooks `PreToolUse`, é aqui que você define `permissionDecision` (`"allow"`, `"deny"`, `"ask"` ou `"defer"`), `permissionDecisionReason` e `updatedInput`. Retornar `"defer"` encerra a consulta para que você possa [retomá-la depois](/pt/hooks#defer-a-tool-call-for-later). Para hooks `PostToolUse`, você pode definir `additionalContext` para anexar informações ao resultado da ferramenta, ou `updatedToolOutput` para substituir completamente a saída da ferramenta antes de Claude vê-la.239* **`hookSpecificOutput`** controla a operação atual. Os campos dentro dependem do tipo de evento de hook. Para hooks `PreToolUse`, é aqui que você define `permissionDecision` (`"allow"`, `"deny"`, `"ask"` ou `"defer"`), `permissionDecisionReason` e `updatedInput`. Retornar `"defer"` encerra a consulta para que você possa [retomá-la depois](/pt/hooks#defer-a-tool-call-for-later). Para hooks `PostToolUse`, você pode definir `additionalContext` para anexar informações ao resultado da ferramenta, ou `updatedToolOutput` para substituir completamente a saída da ferramenta antes de Claude vê-la.

240 240 

241Retorne `{}` para permitir a operação sem alterações. Hooks de callback do SDK usam o mesmo formato de saída JSON que [hooks de comando shell do Claude Code](/pt/hooks#json-output), que documenta cada campo e opção específica do evento. Para as definições de tipo do SDK, veja as referências do SDK [TypeScript](/pt/agent-sdk/typescript#synchookjsonoutput) e [Python](/pt/agent-sdk/python#synchookjsonoutput).241Retorne `{}` para permitir a operação sem alterações. Hooks de callback do SDK usam o mesmo formato de saída JSON que [hooks de comando shell do Claude Code](/pt/hooks#json-output), que documenta cada campo e opção específica do evento. Para as definições de tipo do SDK, veja as referências do SDK [TypeScript](/pt/agent-sdk/typescript#synchookjsonoutput) e [Python](/pt/agent-sdk/python#synchookjsonoutput).


331 331 

332### Adicionar contexto e bloquear uma ferramenta332### Adicionar contexto e bloquear uma ferramenta

333 333 

334Este exemplo bloqueia qualquer tentativa de escrever no diretório `/etc` e usa dois campos de saída juntos: `permissionDecision: 'deny'` para a chamada de ferramenta, enquanto `systemMessage` injeta um lembrete na conversa para que o agente receba contexto sobre por que a operação foi bloqueada e evite tentar novamente:334Este exemplo bloqueia gravações no diretório `/etc` e explica o motivo tanto para o modelo quanto para o usuário:

335 

336* `permissionDecision: 'deny'` interrompe a chamada de ferramenta.

337* `permissionDecisionReason` informa ao modelo por que, para que ele evite tentar novamente.

338* `systemMessage` mostra ao usuário o que aconteceu.

335 339 

336<CodeGroup>340<CodeGroup>

337 ```python Python theme={null}341 ```python Python theme={null}


340 344 

341 if file_path.startswith("/etc"):345 if file_path.startswith("/etc"):

342 return {346 return {

343 # Top-level field: inject guidance into the conversation347 # Top-level field: message shown to the user

344 "systemMessage": "Remember: system directories like /etc are protected.",348 "systemMessage": "Remember: system directories like /etc are protected.",

345 # hookSpecificOutput: block the operation349 # hookSpecificOutput: block the operation

346 "hookSpecificOutput": {350 "hookSpecificOutput": {


360 364 

361 if (filePath?.startsWith("/etc")) {365 if (filePath?.startsWith("/etc")) {

362 return {366 return {

363 // Top-level field: inject guidance into the conversation367 // Top-level field: message shown to the user

364 systemMessage: "Remember: system directories like /etc are protected.",368 systemMessage: "Remember: system directories like /etc are protected.",

365 // hookSpecificOutput: block the operation369 // hookSpecificOutput: block the operation

366 hookSpecificOutput: {370 hookSpecificOutput: {


807 811 

808### systemMessage não aparecendo na saída812### systemMessage não aparecendo na saída

809 813 

810O campo `systemMessage` adiciona contexto à conversa que o modelo , mas pode não aparecer em todos os modos de saída do SDK. Se você precisar expor decisões de hook para sua aplicação, registre-as separadamente ou use um canal de saída dedicado.814O campo `systemMessage` mostra uma mensagem ao usuário, não ao modelo. Por padrão, o SDK não expõe a saída de hook no fluxo de mensagens, portanto a mensagem pode não aparecer a menos que você defina `includeHookEvents` (`include_hook_events` em Python). Para passar contexto ao modelo, retorne [`additionalContext`](/pt/hooks#add-context-for-claude).

815 

816Se você precisar expor decisões de hook para sua aplicação de forma confiável, registre-as separadamente ou use um canal de saída dedicado.

811 817 

812## Recursos relacionados818## Recursos relacionados

813 819 

Details

1860Retorna um [`HookJSONOutput`](#hookjsonoutput) que pode conter:1860Retorna um [`HookJSONOutput`](#hookjsonoutput) que pode conter:

1861 1861 

1862* `decision`: `"block"` para bloquear a ação1862* `decision`: `"block"` para bloquear a ação

1863* `systemMessage`: Mensagem do sistema a adicionar à transcrição1863* `systemMessage`: Mensagem de aviso mostrada ao usuário

1864* `hookSpecificOutput`: Dados de saída específicos do hook1864* `hookSpecificOutput`: Dados de saída específicos do hook

1865 1865 

1866### `HookContext`1866### `HookContext`


2645 2645 

2646**Nome da ferramenta:** `TodoWrite`2646**Nome da ferramenta:** `TodoWrite`

2647 2647 

2648<Note>

2649 `TodoWrite` está descontinuado e será removido em uma versão futura. Use `TaskCreate`, `TaskGet`, `TaskUpdate` e `TaskList` em seu lugar. Defina `CLAUDE_CODE_ENABLE_TASKS=1` para aceitar. Veja [Migrar para ferramentas Task](/pt/agent-sdk/todo-tracking#migrate-to-task-tools) para como monitorar mudanças de código.

2650</Note>

2651 

2648**Entrada:**2652**Entrada:**

2649 2653 

2650```python theme={null}2654```python theme={null}


2668}2672}

2669```2673```

2670 2674 

2675### TaskCreate

2676 

2677**Nome da ferramenta:** `TaskCreate`

2678 

2679**Entrada:**

2680 

2681```python theme={null}

2682{

2683 "subject": str, # Título breve da tarefa

2684 "description": str, # Corpo detalhado da tarefa

2685 "activeForm": str | None, # Rótulo em tempo presente mostrado enquanto em progresso

2686 "metadata": dict | None, # Metadados arbitrários do chamador

2687}

2688```

2689 

2690**Saída:**

2691 

2692```python theme={null}

2693{

2694 "task": {"id": str, "subject": str}, # Tarefa criada com ID atribuído

2695}

2696```

2697 

2698### TaskUpdate

2699 

2700**Nome da ferramenta:** `TaskUpdate`

2701 

2702**Entrada:**

2703 

2704```python theme={null}

2705{

2706 "taskId": str, # ID da tarefa a corrigir

2707 "status": Literal["pending", "in_progress", "completed", "deleted"] | None,

2708 "subject": str | None,

2709 "description": str | None,

2710 "activeForm": str | None,

2711 "addBlocks": list[str] | None, # IDs de tarefas que esta tarefa agora bloqueia

2712 "addBlockedBy": list[str] | None, # IDs de tarefas que agora bloqueiam esta tarefa

2713 "owner": str | None,

2714 "metadata": dict | None,

2715}

2716```

2717 

2718**Saída:**

2719 

2720```python theme={null}

2721{

2722 "success": bool,

2723 "taskId": str,

2724 "updatedFields": list[str], # Nomes dos campos que mudaram

2725 "error": str | None,

2726 "statusChange": {"from": str, "to": str} | None,

2727}

2728```

2729 

2730### TaskGet

2731 

2732**Nome da ferramenta:** `TaskGet`

2733 

2734**Entrada:**

2735 

2736```python theme={null}

2737{

2738 "taskId": str, # ID da tarefa a ler

2739}

2740```

2741 

2742**Saída:**

2743 

2744```python theme={null}

2745{

2746 "task": {

2747 "id": str,

2748 "subject": str,

2749 "description": str,

2750 "status": Literal["pending", "in_progress", "completed"],

2751 "blocks": list[str],

2752 "blockedBy": list[str],

2753 } | None, # None quando o ID não é encontrado

2754}

2755```

2756 

2757### TaskList

2758 

2759**Nome da ferramenta:** `TaskList`

2760 

2761**Entrada:**

2762 

2763```python theme={null}

2764{}

2765```

2766 

2767**Saída:**

2768 

2769```python theme={null}

2770{

2771 "tasks": [

2772 {

2773 "id": str,

2774 "subject": str,

2775 "status": Literal["pending", "in_progress", "completed"],

2776 "owner": str | None,

2777 "blockedBy": list[str],

2778 }

2779 ],

2780}

2781```

2782 

2671### BashOutput2783### BashOutput

2672 2784 

2673**Nome da ferramenta:** `BashOutput`2785**Nome da ferramenta:** `BashOutput`

Details

389| `fallbackModel` | `string` | `undefined` | Modelo a usar se o primário falhar |389| `fallbackModel` | `string` | `undefined` | Modelo a usar se o primário falhar |

390| `forkSession` | `boolean` | `false` | Ao retomar com `resume`, bifurcar para um novo ID de sessão em vez de continuar a sessão original |390| `forkSession` | `boolean` | `false` | Ao retomar com `resume`, bifurcar para um novo ID de sessão em vez de continuar a sessão original |

391| `hooks` | `Partial<Record<`[`HookEvent`](#hookevent)`, `[`HookCallbackMatcher`](#hookcallbackmatcher)`[]>>` | `{}` | Callbacks de hook para eventos |391| `hooks` | `Partial<Record<`[`HookEvent`](#hookevent)`, `[`HookCallbackMatcher`](#hookcallbackmatcher)`[]>>` | `{}` | Callbacks de hook para eventos |

392| `includeHookEvents` | `boolean` | `false` | Incluir eventos de ciclo de vida de hook no fluxo de mensagens como [`SDKHookStartedMessage`](#sdkhookstartedmessage), [`SDKHookProgressMessage`](#sdkhookprogressmessage) e [`SDKHookResponseMessage`](#sdkhookresponsemessage) |

392| `includePartialMessages` | `boolean` | `false` | Incluir eventos de mensagem parcial |393| `includePartialMessages` | `boolean` | `false` | Incluir eventos de mensagem parcial |

393| `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 [Rastrear custo e uso](/pt/agent-sdk/cost-tracking) para ressalvas de precisão |394| `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 [Rastrear custo e uso](/pt/agent-sdk/cost-tracking) para ressalvas de precisão |

394| `maxThinkingTokens` | `number` | `undefined` | *Descontinuado:* Use `thinking` em vez disso. Tokens máximos para processo de pensamento |395| `maxThinkingTokens` | `number` | `undefined` | *Descontinuado:* Use `thinking` em vez disso. Tokens máximos para processo de pensamento |


1596 | ReadMcpResourceInput1597 | ReadMcpResourceInput

1597 | SubscribeMcpResourceInput1598 | SubscribeMcpResourceInput

1598 | SubscribePollingInput1599 | SubscribePollingInput

1600 | TaskCreateInput

1601 | TaskGetInput

1602 | TaskListInput

1599 | TaskStopInput1603 | TaskStopInput

1604 | TaskUpdateInput

1600 | TodoWriteInput1605 | TodoWriteInput

1601 | UnsubscribeMcpResourceInput1606 | UnsubscribeMcpResourceInput

1602 | UnsubscribePollingInput1607 | UnsubscribePollingInput


1850**Nome da ferramenta:** `TaskCreate`1855**Nome da ferramenta:** `TaskCreate`

1851 1856 

1852```typescript theme={null}1857```typescript theme={null}

1853// Ainda não exportado do SDK; defina localmente.

1854type TaskCreateInput = {1858type TaskCreateInput = {

1855 subject: string;1859 subject: string;

1856 description: string;1860 description: string;


1866**Nome da ferramenta:** `TaskUpdate`1870**Nome da ferramenta:** `TaskUpdate`

1867 1871 

1868```typescript theme={null}1872```typescript theme={null}

1869// Ainda não exportado do SDK; defina localmente.

1870type TaskUpdateInput = {1873type TaskUpdateInput = {

1871 taskId: string;1874 taskId: string;

1872 status?: "pending" | "in_progress" | "completed" | "deleted";1875 status?: "pending" | "in_progress" | "completed" | "deleted";


1887**Nome da ferramenta:** `TaskGet`1890**Nome da ferramenta:** `TaskGet`

1888 1891 

1889```typescript theme={null}1892```typescript theme={null}

1890// Ainda não exportado do SDK; defina localmente.

1891type TaskGetInput = {1893type TaskGetInput = {

1892 taskId: string;1894 taskId: string;

1893};1895};


1900**Nome da ferramenta:** `TaskList`1902**Nome da ferramenta:** `TaskList`

1901 1903 

1902```typescript theme={null}1904```typescript theme={null}

1903// Ainda não exportado do SDK; defina localmente.

1904type TaskListInput = {};1905type TaskListInput = {};

1905```1906```

1906 1907 


1983 | MonitorOutput1984 | MonitorOutput

1984 | NotebookEditOutput1985 | NotebookEditOutput

1985 | ReadMcpResourceOutput1986 | ReadMcpResourceOutput

1987 | TaskCreateOutput

1988 | TaskGetOutput

1989 | TaskListOutput

1986 | TaskStopOutput1990 | TaskStopOutput

1991 | TaskUpdateOutput

1987 | TodoWriteOutput1992 | TodoWriteOutput

1988 | WebFetchOutput1993 | WebFetchOutput

1989 | WebSearchOutput;1994 | WebSearchOutput;


2347**Nome da ferramenta:** `TaskCreate`2352**Nome da ferramenta:** `TaskCreate`

2348 2353 

2349```typescript theme={null}2354```typescript theme={null}

2350// Ainda não exportado do SDK; defina localmente.

2351type TaskCreateOutput = {2355type TaskCreateOutput = {

2352 task: {2356 task: {

2353 id: string;2357 id: string;


2363**Nome da ferramenta:** `TaskUpdate`2367**Nome da ferramenta:** `TaskUpdate`

2364 2368 

2365```typescript theme={null}2369```typescript theme={null}

2366// Ainda não exportado do SDK; defina localmente.

2367type TaskUpdateOutput = {2370type TaskUpdateOutput = {

2368 success: boolean;2371 success: boolean;

2369 taskId: string;2372 taskId: string;


2383**Nome da ferramenta:** `TaskGet`2386**Nome da ferramenta:** `TaskGet`

2384 2387 

2385```typescript theme={null}2388```typescript theme={null}

2386// Ainda não exportado do SDK; defina localmente.

2387type TaskGetOutput = {2389type TaskGetOutput = {

2388 task: {2390 task: {

2389 id: string;2391 id: string;


2403**Nome da ferramenta:** `TaskList`2405**Nome da ferramenta:** `TaskList`

2404 2406 

2405```typescript theme={null}2407```typescript theme={null}

2406// Ainda não exportado do SDK; defina localmente.

2407type TaskListOutput = {2408type TaskListOutput = {

2408 tasks: Array<{2409 tasks: Array<{

2409 id: string;2410 id: string;

agent-view.md +45 −7

Details

46 </Step>46 </Step>

47 47 

48 <Step title="Despache uma sessão">48 <Step title="Despache uma sessão">

49 Digite um prompt descrevendo uma tarefa e pressione `Enter`. Uma nova sessão em background é iniciada nessa tarefa e aparece como uma linha mostrando se está funcionando, aguardando você ou concluída. A nova sessão usa o modelo mostrado no cabeçalho da visualização do agente e o mesmo [modo de permissão](#permission-mode-and-settings) que você obteria executando `claude` naquele diretório.49 Digite um prompt descrevendo uma tarefa e pressione `Enter`. Uma nova sessão em background é iniciada nessa tarefa e aparece como uma linha mostrando se está funcionando, aguardando você ou concluída. A nova sessão usa o modelo mostrado no cabeçalho da visualização do agente e o mesmo [modo de permissão](#permission-mode-model-and-effort) que você obteria executando `claude` naquele diretório.

50 50 

51 Cada prompt que você digita aqui inicia sua própria sessão nova. Digitar outro prompt e pressionar `Enter` inicia uma segunda sessão ao lado da primeira em vez de enviar um acompanhamento para ela. Você pode executar várias em paralelo desta forma.51 Cada prompt que você digita aqui inicia sua própria sessão nova. Digitar outro prompt e pressionar `Enter` inicia uma segunda sessão ao lado da primeira em vez de enviar um acompanhamento para ela. Você pode executar várias em paralelo desta forma.

52 52 


74 74 

75A lista mostra cada sessão em background que você iniciou, em todos os seus projetos. Uma sessão funcionando em um repositório e outra em um worktree diferente aparecem aqui, independentemente de qual diretório você abriu agent view. Sessões interativas que você tem abertas em outros terminais não aparecem até que você as [coloque em background](#from-inside-a-session). [Subagents](/pt/sub-agents) e [teammates](/pt/agent-teams) que uma sessão gera não são listados como linhas separadas.75A lista mostra cada sessão em background que você iniciou, em todos os seus projetos. Uma sessão funcionando em um repositório e outra em um worktree diferente aparecem aqui, independentemente de qual diretório você abriu agent view. Sessões interativas que você tem abertas em outros terminais não aparecem até que você as [coloque em background](#from-inside-a-session). [Subagents](/pt/sub-agents) e [teammates](/pt/agent-teams) que uma sessão gera não são listados como linhas separadas.

76 76 

77Para limitar a visualização a um projeto, inicie com `claude agents --cwd <path>`. Apenas sessões iniciadas sob esse diretório aparecem, incluindo qualquer uma em execução em um [worktree](/pt/worktrees) despachado a partir dele.

78 

77```text theme={null}79```text theme={null}

78Pinned80Pinned

79 ✽ clawd walk cycle Write assets/sprites/clawd-walk.png 3m81 ✽ clawd walk cycle Write assets/sprites/clawd-walk.png 3m


285 287 

286### Set the model288### Set the model

287 289 

288O nome do modelo mostrado no cabeçalho de agent view é o padrão de despacho. Novas sessões que você inicia a partir da entrada usam este modelo, que é a mesma configuração que [`/model`](/pt/model-config) controla em qualquer sessão.290O nome do modelo mostrado no cabeçalho de agent view é o padrão de despacho. Novas sessões que você inicia a partir da entrada usam este modelo, que é a mesma configuração que [`/model`](/pt/model-config) controla em qualquer sessão. Para substituir para toda a sessão de agent view, passe `--model` ao abrir agent view. Veja [Permission mode, model, and effort](#permission-mode-model-and-effort).

289 291 

290Cada sessão em background pode ser executada em um modelo diferente. Para substituir para uma sessão:292Cada sessão em background pode ser executada em um modelo diferente. Para substituir para uma sessão:

291 293 


293* Anexe a uma sessão em execução e execute `/model` lá. A alteração persiste se a sessão for reiniciada.295* Anexe a uma sessão em execução e execute `/model` lá. A alteração persiste se a sessão for reiniciada.

294* Despache um [subagent](/pt/sub-agents) cujo frontmatter define um campo `model`.296* Despache um [subagent](/pt/sub-agents) cujo frontmatter define um campo `model`.

295 297 

296### Permission mode and settings298### Permission mode, model, and effort

299 

300Uma sessão em background lê suas [settings](/pt/settings) do diretório em que é executada, da mesma forma que se você tivesse iniciado `claude` lá.

301 

302O [permission mode](/pt/permissions) depende de como você iniciou a sessão. Colocar em background uma sessão existente com `/bg` ou `←` mantém o permission mode atual, portanto uma sessão que você alterou para `acceptEdits` ou `auto` permanece naquele modo após desanexar. Despachar a partir da entrada de agent view ou executar `claude --bg` do seu shell usa o `defaultMode` das settings daquele diretório, ou o `permissionMode` do [frontmatter do subagent despachado](/pt/sub-agents#supported-frontmatter-fields).

303 

304Para definir padrões para cada sessão que você despacha a partir de agent view, passe qualquer um de `--permission-mode`, `--model` ou `--effort` ao abri-lo:

305 

306```bash theme={null}

307claude agents --permission-mode plan --model opus --effort high

308```

309 

310<Note>

311 Passar `--permission-mode`, `--model` ou `--effort` para `claude agents` requer Claude Code v2.1.142 ou posterior. Versões anteriores rejeitam essas flags com um erro de opção desconhecida.

312</Note>

297 313 

298Uma sessão despachada lê suas [settings](/pt/settings) e [permission mode](/pt/permissions) do diretório em que é executada, da mesma forma que se você tivesse iniciado `claude` lá. Despachar a partir da entrada de agent view não passa um permission mode, portanto a sessão usa o `defaultMode` das settings daquele diretório ou o `permissionMode` do [frontmatter do subagent](/pt/sub-agents#supported-frontmatter-fields) despachado.314Os padrões ativos aparecem no rodapé abaixo da entrada de despacho.

299 315 

300Para definir o modo a partir do shell, passe `--permission-mode` com `claude --bg`. Usar `bypassPermissions` ou `auto` desta forma é recusado até que você tenha aceitado esse modo executando `claude` com ele uma vez interativamente, já que esses modos permitem que uma sessão que você não está observando aja sem aprovação.316Sem essas flags, a sessão usa o `defaultMode` das settings daquele diretório ou o `permissionMode` do [frontmatter do subagent despachado](/pt/sub-agents#supported-frontmatter-fields), e o modelo mostrado no cabeçalho de agent view.

317 

318Usar `bypassPermissions` ou `auto` é recusado até que você tenha aceitado esse modo executando `claude` com ele uma vez interativamente, já que esses modos permitem que uma sessão que você não está observando aja sem aprovação. O mesmo se aplica se você passar o modo para `claude agents` ou para `claude --bg --permission-mode`.

319 

320### Settings, plugins, and MCP servers

321 

322Agent view aceita as mesmas flags de configuração que `claude` para carregar settings, plugins, servidores MCP e diretórios adicionais. Cada flag se aplica a agent view em si e é passada para cada sessão que você despacha a partir dele, portanto um plugin ou servidor MCP que você carrega desta forma está disponível nessas sessões também.

323 

324| Flag | Efeito |

325| :----------------------------------------------------------------------------------------------- | :-------------------------------------------------------------------------------- |

326| [`--settings <file-or-json>`](/pt/settings) | Substituir settings para agent view e sessões despachadas |

327| [`--add-dir <path>`](/pt/permissions#additional-directories-grant-file-access-not-configuration) | Conceder acesso a arquivo a um diretório adicional |

328| [`--plugin-dir <path>`](/pt/plugins) | Carregar um plugin de um diretório local |

329| [`--mcp-config <file-or-json>`](/pt/mcp) | Carregar servidores MCP de um arquivo de configuração ou string JSON |

330| `--strict-mcp-config` | Usar apenas os servidores MCP de `--mcp-config`, ignorando outra configuração MCP |

331 

332Repita `--add-dir`, `--plugin-dir` ou `--mcp-config` uma vez por valor. A forma separada por espaço, como `--add-dir a b c`, não é suportada com `claude agents`.

333 

334O exemplo a seguir abre agent view com uma substituição de settings e um diretório extra:

335 

336```bash theme={null}

337claude agents --settings ./ci-settings.json --add-dir ../shared-lib

338```

301 339 

302## Gerenciar sessões do shell340## Gerenciar sessões do shell

303 341 

304Cada sessão em background tem um ID curto que você pode usar do shell. O ID é impresso quando você inicia uma sessão com `claude --bg`, e o ID de cada sessão é seu nome de diretório em `~/.claude/jobs/`. Esses comandos são úteis para scripts ou quando você não quer abrir agent view.342Cada sessão em background tem um ID curto que você pode usar do shell. O ID é impresso quando você inicia uma sessão com `claude --bg`, e o ID de cada sessão é seu nome de diretório em `~/.claude/jobs/`. Esses comandos são úteis para scripts ou quando você não quer abrir agent view.

305 343 

306| Comando | Propósito |344| Comando | Propósito |

307| :--------------------- | :--------------------------------------------------------------------------------------- |345| :--------------------- | :-------------------------------------------------------------------------------------------- |

308| `claude agents` | Abrir agent view |346| `claude agents` | Abrir agent view. Passe `--cwd <path>` para listar apenas sessões iniciadas naquele diretório |

309| `claude attach <id>` | Anexar a uma sessão neste terminal |347| `claude attach <id>` | Anexar a uma sessão neste terminal |

310| `claude logs <id>` | Imprimir a saída recente da sessão |348| `claude logs <id>` | Imprimir a saída recente da sessão |

311| `claude stop <id>` | Interromper uma sessão. Também aceita `claude kill` |349| `claude stop <id>` | Interromper uma sessão. Também aceita `claude kill` |

Details

170 170 

171Claude Code suporta atualização automática de credenciais para AWS SSO e provedores de identidade corporativa. Adicione estas configurações ao seu arquivo de configurações do Claude Code (veja [Configurações](/pt/settings) para localizações de arquivo).171Claude Code suporta atualização automática de credenciais para AWS SSO e provedores de identidade corporativa. Adicione estas configurações ao seu arquivo de configurações do Claude Code (veja [Configurações](/pt/settings) para localizações de arquivo).

172 172 

173Quando Claude Code detecta que suas credenciais AWS expiraram (localmente com base em seu timestamp ou quando Bedrock retorna um erro de credencial), ele executará automaticamente seus comandos `awsAuthRefresh` e/ou `awsCredentialExport` configurados para obter novas credenciais antes de tentar novamente a solicitação.173Estas duas configurações têm diferentes condições de acionamento:

174 

175* **`awsAuthRefresh`**: executa apenas quando Claude Code detecta que suas credenciais AWS expiraram, localmente com base em seu timestamp ou quando Bedrock retorna um erro de credencial, depois tenta novamente a solicitação com credenciais atualizadas.

176* **`awsCredentialExport`**: executa no início da sessão e em cada recarga de credencial, mesmo quando as credenciais em sua cadeia de provedor de credenciais padrão AWS ainda são válidas. Use isso quando sua conta Bedrock requer credenciais entre contas que diferem das que a cadeia de provedor padrão resolveria.

174 177 

175##### Exemplo de configuração178##### Exemplo de configuração

176 179 


187 190 

188**`awsAuthRefresh`**: Use isso para comandos que modificam o diretório `.aws`, como atualizar credenciais, cache SSO ou arquivos de configuração. A saída do comando é exibida ao usuário, mas entrada interativa não é suportada. Isso funciona bem para fluxos SSO baseados em navegador onde a CLI exibe uma URL ou código e você completa a autenticação no navegador.191**`awsAuthRefresh`**: Use isso para comandos que modificam o diretório `.aws`, como atualizar credenciais, cache SSO ou arquivos de configuração. A saída do comando é exibida ao usuário, mas entrada interativa não é suportada. Isso funciona bem para fluxos SSO baseados em navegador onde a CLI exibe uma URL ou código e você completa a autenticação no navegador.

189 192 

190**`awsCredentialExport`**: Use apenas se você não puder modificar `.aws` e deve retornar credenciais diretamente. A saída é capturada silenciosamente e não é mostrada ao usuário. O comando deve gerar JSON neste formato:193**`awsCredentialExport`**: Use apenas se você não puder modificar `.aws` e deve retornar credenciais diretamente. Este comando é executado sempre que as credenciais precisam ser atualizadas, não apenas quando as credenciais expiram. A saída é capturada silenciosamente e não é mostrada ao usuário. O comando deve gerar JSON neste formato:

191 194 

192```json theme={null}195```json theme={null}

193{196{

best-practices.md +18 −24

Details

52 Separe pesquisa e planejamento da implementação para evitar resolver o problema errado.52 Separe pesquisa e planejamento da implementação para evitar resolver o problema errado.

53</Tip>53</Tip>

54 54 

55Deixar Claude pular direto para codificação pode produzir código que resolve o problema errado. Use [Plan Mode](/pt/common-workflows#use-plan-mode-for-safe-code-analysis) para separar exploração de execução.55Deixar Claude pular direto para codificação pode produzir código que resolve o problema errado. Use [Plan Mode](/pt/permission-modes#analyze-before-you-edit-with-plan-mode) para separar exploração de execução.

56 56 

57O fluxo de trabalho recomendado tem quatro fases:57O fluxo de trabalho recomendado tem quatro fases:

58 58 


60 <Step title="Explore">60 <Step title="Explore">

61 Entre em Plan Mode. Claude lê arquivos e responde perguntas sem fazer alterações.61 Entre em Plan Mode. Claude lê arquivos e responde perguntas sem fazer alterações.

62 62 

63 ```txt claude (Plan Mode) theme={null}63 ```txt claude (plan mode) theme={null}

64 read /src/auth and understand how we handle sessions and login.64 read /src/auth and understand how we handle sessions and login.

65 also look at how we manage environment variables for secrets.65 also look at how we manage environment variables for secrets.

66 ```66 ```


69 <Step title="Plan">69 <Step title="Plan">

70 Peça ao Claude para criar um plano de implementação detalhado.70 Peça ao Claude para criar um plano de implementação detalhado.

71 71 

72 ```txt claude (Plan Mode) theme={null}72 ```txt claude (plan mode) theme={null}

73 I want to add Google OAuth. What files need to change?73 I want to add Google OAuth. What files need to change?

74 What's the session flow? Create a plan.74 What's the session flow? Create a plan.

75 ```75 ```


78 </Step>78 </Step>

79 79 

80 <Step title="Implement">80 <Step title="Implement">

81 Volte para Normal Mode e deixe Claude codificar, verificando contra seu plano.81 Saia de Plan Mode e deixe Claude codificar, verificando contra seu plano.

82 82 

83 ```txt claude (Normal Mode) theme={null}83 ```txt claude (default mode) theme={null}

84 implement the OAuth flow from your plan. write tests for the84 implement the OAuth flow from your plan. write tests for the

85 callback handler, run the test suite and fix any failures.85 callback handler, run the test suite and fix any failures.

86 ```86 ```


89 <Step title="Commit">89 <Step title="Commit">

90 Peça ao Claude para fazer commit com uma mensagem descritiva e criar um PR.90 Peça ao Claude para fazer commit com uma mensagem descritiva e criar um PR.

91 91 

92 ```txt claude (Normal Mode) theme={null}92 ```txt claude (default mode) theme={null}

93 commit with a descriptive message and open a PR93 commit with a descriptive message and open a PR

94 ```94 ```

95 </Step>95 </Step>


396* Use `/clear` frequentemente entre tarefas para redefinir a janela de contexto inteiramente396* Use `/clear` frequentemente entre tarefas para redefinir a janela de contexto inteiramente

397* Quando auto compaction dispara, Claude resume o que importa mais, incluindo padrões de código, estados de arquivo e decisões-chave397* Quando auto compaction dispara, Claude resume o que importa mais, incluindo padrões de código, estados de arquivo e decisões-chave

398* Para mais controle, execute `/compact <instructions>`, como `/compact Focus on the API changes`398* Para mais controle, execute `/compact <instructions>`, como `/compact Focus on the API changes`

399* Para compactar apenas parte da conversa, use `Esc + Esc` ou `/rewind`, selecione um checkpoint de mensagem e escolha **Summarize from here**. Isso condensa mensagens daquele ponto em diante enquanto mantém contexto anterior intacto.399* Para compactar apenas parte da conversa, use `Esc + Esc` ou `/rewind`, selecione um checkpoint de mensagem e escolha **Summarize from here** ou **Summarize up to here**. O primeiro condensa mensagens daquele ponto em diante enquanto mantém contexto anterior intacto; o segundo condensa mensagens anteriores enquanto mantém as recentes em cheio. Veja [Restore vs. summarize](/pt/checkpointing#restore-vs-summarize).

400* Customize comportamento de compaction em CLAUDE.md com instruções como `"When compacting, always preserve the full list of modified files and any test commands"` para garantir que contexto crítico sobreviva à sumarização400* Customize comportamento de compaction em CLAUDE.md com instruções como `"When compacting, always preserve the full list of modified files and any test commands"` para garantir que contexto crítico sobreviva à sumarização

401* Para perguntas rápidas que não precisam ficar em contexto, use [`/btw`](/pt/interactive-mode#side-questions-with-%2Fbtw). A resposta aparece em uma sobreposição dispensável e nunca entra no histórico de conversa, então você pode verificar um detalhe sem crescer contexto.401* Para perguntas rápidas que não precisam ficar em contexto, use [`/btw`](/pt/interactive-mode#side-questions-with-%2Fbtw). A resposta aparece em uma sobreposição dispensável e nunca entra no histórico de conversa, então você pode verificar um detalhe sem crescer contexto.

402 402 


424### Rewind com checkpoints424### Rewind com checkpoints

425 425 

426<Tip>426<Tip>

427 Cada ação que Claude faz cria um checkpoint. Você pode restaurar conversa, código ou ambos para qualquer checkpoint anterior.427 Cada prompt que você envia cria um checkpoint. Você pode restaurar conversa, código ou ambos para qualquer checkpoint anterior.

428</Tip>428</Tip>

429 429 

430Claude automaticamente faz checkpoint antes de mudanças. Pressione Escape duas vezes ou execute `/rewind` para abrir o menu de rewind. Você pode restaurar apenas conversa, restaurar apenas código, restaurar ambos ou resumir a partir de uma mensagem selecionada. Veja [Checkpointing](/pt/checkpointing) para detalhes.430Claude automaticamente faz snapshots de arquivos antes de cada mudança para que um checkpoint possa restaurá-los. Pressione Escape duas vezes ou execute `/rewind` para abrir o menu de rewind. Você pode restaurar apenas conversa, restaurar apenas código, restaurar ambos ou resumir a partir de uma mensagem selecionada. Veja [Checkpointing](/pt/checkpointing) para detalhes.

431 431 

432Em vez de planejar cuidadosamente cada movimento, você pode dizer ao Claude para tentar algo arriscado. Se não funcionar, rewind e tente uma abordagem diferente. Checkpoints persistem entre sessões, então você pode fechar seu terminal e ainda fazer rewind depois.432Em vez de planejar cuidadosamente cada movimento, você pode dizer ao Claude para tentar algo arriscado. Se não funcionar, rewind e tente uma abordagem diferente. Checkpoints persistem entre sessões, então você pode fechar seu terminal e ainda fazer rewind depois.

433 433 


438### Retome conversas438### Retome conversas

439 439 

440<Tip>440<Tip>

441 Execute `claude --continue` para continuar de onde parou, ou `--resume` para escolher entre sessões recentes.441 Nomeie sessões com `/rename` e trate-as como branches: cada fluxo de trabalho obtém seu próprio contexto persistente.

442</Tip>442</Tip>

443 443 

444Claude Code salva conversas localmente. Quando uma tarefa abrange múltiplas sessões, você não tem que re-explicar o contexto:444Claude Code salva conversas localmente, então quando uma tarefa abrange múltiplas sessões você não tem que re-explicar o contexto. Execute `claude --continue` para continuar a sessão mais recente, ou `claude --resume` para escolher de uma lista. Dê às sessões nomes descritivos como `oauth-migration` para que você possa encontrá-las depois. Veja [Manage sessions](/pt/sessions) para o conjunto completo de controles de resume, branch e nomeação.

445 

446```bash theme={null}

447claude --continue # Resume the most recent conversation

448claude --resume # Select from recent conversations

449```

450 

451Use `/rename` para dar às sessões nomes descritivos como `"oauth-migration"` ou `"debugging-memory-leak"` para que você possa encontrá-las depois. Trate sessões como branches: diferentes fluxos de trabalho podem ter contextos separados e persistentes.

452 445 

453***446***

454 447 


464 Use `claude -p "prompt"` em CI, pre-commit hooks ou scripts. Adicione `--output-format stream-json` para saída JSON em streaming.457 Use `claude -p "prompt"` em CI, pre-commit hooks ou scripts. Adicione `--output-format stream-json` para saída JSON em streaming.

465</Tip>458</Tip>

466 459 

467Com `claude -p "your prompt"`, você pode executar Claude não-interativamente, sem uma sessão. Modo não-interativo é como você integra Claude em pipelines CI, pre-commit hooks ou qualquer fluxo de trabalho automatizado. Os formatos de saída permitem você analisar resultados programaticamente: texto simples, JSON ou JSON em streaming.460Com `claude -p "your prompt"`, você pode executar Claude não-interativamente, sem uma sessão. [Modo não-interativo](/pt/headless) é como você integra Claude em pipelines CI, pre-commit hooks ou qualquer fluxo de trabalho automatizado. Os formatos de saída permitem que você analise resultados programaticamente: texto simples, JSON ou JSON em streaming.

468 461 

469```bash theme={null}462```bash theme={null}

470# One-off queries463# One-off queries


483 Execute múltiplas sessões Claude em paralelo para acelerar desenvolvimento, executar experimentos isolados ou iniciar fluxos de trabalho complexos.476 Execute múltiplas sessões Claude em paralelo para acelerar desenvolvimento, executar experimentos isolados ou iniciar fluxos de trabalho complexos.

484</Tip>477</Tip>

485 478 

486Existem três maneiras principais de executar sessões paralelas:479Escolha a abordagem paralela que se adequa a quanto de coordenação você quer fazer por conta própria:

487 480 

488* [Claude Code desktop app](/pt/desktop#work-in-parallel-with-sessions): Gerencie múltiplas sessões locais visualmente. Cada sessão obtém seu próprio worktree isolado.481* [Worktrees](/pt/worktrees): execute sessões CLI separadas em checkouts git isolados para que edições não colidam

489* [Claude Code on the web](/pt/claude-code-on-the-web): Execute na infraestrutura de nuvem segura da Anthropic em VMs isoladas.482* [Aplicativo desktop](/pt/desktop#work-in-parallel-with-sessions): gerencie múltiplas sessões locais visualmente, cada uma em seu próprio worktree

490* [Agent teams](/pt/agent-teams): Coordenação automatizada de múltiplas sessões com tarefas compartilhadas, mensagens e um team lead.483* [Claude Code na web](/pt/claude-code-on-the-web): execute sessões na infraestrutura de nuvem gerenciada pela Anthropic em VMs isoladas

484* [Equipes de agentes](/pt/agent-teams): coordenação automatizada de múltiplas sessões com tarefas compartilhadas, mensagens e um líder de equipe

491 485 

492Além de paralelizar trabalho, múltiplas sessões habilitam fluxos de trabalho focados em qualidade. Um contexto fresco melhora revisão de código já que Claude não será enviesado para código que acabou de escrever.486Além de paralelizar trabalho, múltiplas sessões habilitam fluxos de trabalho focados em qualidade. Um contexto fresco melhora revisão de código já que Claude não será enviesado para código que acabou de escrever.

493 487 


504### Fan out entre arquivos498### Fan out entre arquivos

505 499 

506<Tip>500<Tip>

507 Loop através de tarefas chamando `claude -p` para cada. Use `--allowedTools` para escopear permissões para operações em lote.501 Faça loop através de tarefas chamando `claude -p` para cada uma. Use `--allowedTools` para escopear permissões para operações em lote.

508</Tip>502</Tip>

509 503 

510Para grandes migrações ou análises, você pode distribuir trabalho entre muitas invocações Claude paralelas:504Para grandes migrações ou análises, você pode distribuir trabalho entre muitas invocações Claude paralelas:

checkpointing.md +11 −10

Details

28* **Restaurar conversa**: reverte para essa mensagem mantendo o código atual28* **Restaurar conversa**: reverte para essa mensagem mantendo o código atual

29* **Restaurar código**: reverte as alterações de arquivo mantendo a conversa29* **Restaurar código**: reverte as alterações de arquivo mantendo a conversa

30* **Resumir a partir daqui**: compacta a conversa a partir deste ponto em diante em um resumo, liberando espaço da context window30* **Resumir a partir daqui**: compacta a conversa a partir deste ponto em diante em um resumo, liberando espaço da context window

31* **Cancelar**: retorna à lista de mensagens sem fazer alterações31* **Resumir até aqui**: compacta a conversa antes deste ponto em um resumo, mantendo as mensagens posteriores intactas

32* **Nunca importa**: retorna à lista de mensagens sem fazer alterações

32 33 

33Após restaurar a conversa ou resumir, o prompt original da mensagem selecionada é restaurado no campo de entrada para que você possa reenviá-lo ou editá-lo.34Após restaurar a conversa ou escolher Resumir a partir daqui, o prompt original da mensagem selecionada é restaurado no campo de entrada para que você possa reenviá-lo ou editá-lo.

35 

36Escolher Resumir até aqui o deixa no final da conversa com a entrada vazia.

34 37 

35#### Restaurar vs. resumir38#### Restaurar vs. resumir

36 39 

37As três opções de restauração revertam o estado: elas desfazem alterações de código, histórico de conversa ou ambos. "Resumir a partir daqui" funciona de forma diferente:40As opções de restauração revertam o estado: elas desfazem alterações de código, histórico de conversa ou ambos. As opções de resumo compactam parte da conversa em um resumo gerado por IA sem alterar arquivos no disco:

38 41 

39* As mensagens antes da mensagem selecionada permanecem intactas42* **Resumir a partir daqui**: as mensagens antes da mensagem selecionada permanecem intactas. A mensagem selecionada e tudo depois dela são substituídos por um resumo. Use isso para descartar uma discussão lateral mantendo o contexto inicial em detalhes completos.

40* A mensagem selecionada e todas as mensagens subsequentes são substituídas por um resumo compacto gerado por IA43* **Resumir até aqui**: as mensagens antes da mensagem selecionada são substituídas por um resumo. A mensagem selecionada e tudo depois dela permanecem intactas, e você permanece no final da conversa. Use isso para compactar a discussão de configuração inicial mantendo o trabalho recente em detalhes completos.

41* Nenhum arquivo no disco é alterado

42* As mensagens originais são preservadas na transcrição da sessão, para que Claude possa fazer referência aos detalhes se necessário

43 44 

44Isso é semelhante ao `/compact`, mas direcionado: em vez de resumir toda a conversa, você mantém o contexto inicial em detalhes completos e apenas compacta as partes que estão usando espaço. Você pode digitar instruções opcionais para orientar o que o resumo se concentra.45Em ambos os casos, as mensagens originais são preservadas na transcrição da sessão, para que Claude possa fazer referência aos detalhes se necessário. Você pode digitar instruções opcionais para orientar o que o resumo se concentra. Isso é semelhante ao `/compact`, mas direcionado: em vez de resumir toda a conversa, você escolhe qual lado da mensagem selecionada compactar.

45 46 

46<Note>47<Note>

47 Resumir mantém você na mesma sessão e compacta o contexto. Se você quiser ramificar e tentar uma abordagem diferente enquanto preserva a sessão original intacta, use [fork](/pt/how-claude-code-works#resume-or-fork-sessions) em vez disso (`claude --continue --fork-session`).48 Resumir mantém você na mesma sessão e compacta o contexto. Se você quiser ramificar e tentar uma abordagem diferente enquanto preserva a sessão original intacta, use [fork](/pt/sessions#branch-a-session) em vez disso (`claude --continue --fork-session`).

48</Note>49</Note>

49 50 

50## Casos de uso comuns51## Casos de uso comuns


85## Veja também86## Veja também

86 87 

87* [Modo interativo](/pt/interactive-mode) - Atalhos de teclado e controles de sessão88* [Modo interativo](/pt/interactive-mode) - Atalhos de teclado e controles de sessão

88* [Comandos integrados](/pt/commands) - Acessando checkpoints usando `/rewind`89* [Comandos](/pt/commands) - Acessando checkpoints usando `/rewind`

89* [Referência CLI](/pt/cli-reference) - Opções de linha de comando90* [Referência CLI](/pt/cli-reference) - Opções de linha de comando

Details

782 782 

783### Remote Control session expired or access denied783### Remote Control session expired or access denied

784 784 

785`--teleport` se conecta através da mesma infraestrutura de sessão Remote Control que as sessões em nuvem usam, então erros de autenticação e expiração de sessão aparecem com wording de Remote Control. Você pode ver `Remote Control session has expired` ou `Access denied`. O token de conexão é de curta duração e limitado à sua conta.785`--teleport` se conecta através da mesma infraestrutura de sessão Remote Control que as sessões em nuvem usam, então erros de autenticação e expiração de sessão aparecem com wording de Remote Control. Você pode ver `Remote Control session expired` ou `Access denied`. O token de conexão é de curta duração e limitado à sua conta.

786 786 

787* Execute `/login` localmente para atualizar suas credenciais, depois reconecte787* Execute `/login` localmente para atualizar suas credenciais, depois reconecte

788* Confirme que você está conectado à mesma conta que possui a sessão788* Confirme que você está conectado à mesma conta que possui a sessão

Details

24| `claude auth login` | Faça login em sua conta Anthropic. Use `--email` para preencher previamente seu endereço de email, `--sso` para forçar autenticação SSO e `--console` para fazer login com Anthropic Console para faturamento de uso de API em vez de uma assinatura Claude | `claude auth login --console` |24| `claude auth login` | Faça login em sua conta Anthropic. Use `--email` para preencher previamente seu endereço de email, `--sso` para forçar autenticação SSO e `--console` para fazer login com Anthropic Console para faturamento de uso de API em vez de uma assinatura Claude | `claude auth login --console` |

25| `claude auth logout` | Fazer logout de sua conta Anthropic | `claude auth logout` |25| `claude auth logout` | Fazer logout de sua conta Anthropic | `claude auth logout` |

26| `claude auth status` | Mostrar status de autenticação como JSON. Use `--text` para saída legível por humanos. Sai com código 0 se conectado, 1 se não | `claude auth status` |26| `claude auth status` | Mostrar status de autenticação como JSON. Use `--text` para saída legível por humanos. Sai com código 0 se conectado, 1 se não | `claude auth status` |

27| `claude agents` | Abrir [visualização de agente](/pt/agent-view) para monitorar e despachar sessões de fundo paralelas. Quando a saída é canalizada, lista [subagentes](/pt/sub-agents) configurados em vez disso | `claude agents` |27| `claude agents` | Abrir [visualização de agente](/pt/agent-view) para monitorar e despachar sessões de fundo paralelas. Use `--cwd <path>` para mostrar apenas sessões iniciadas nesse diretório | `claude agents` |

28| `claude attach <id>` | Anexar a uma [sessão de fundo](/pt/agent-view#manage-sessions-from-the-shell) neste terminal | `claude attach 7c5dcf5d` |28| `claude attach <id>` | Anexar a uma [sessão de fundo](/pt/agent-view#manage-sessions-from-the-shell) neste terminal | `claude attach 7c5dcf5d` |

29| `claude auto-mode defaults` | Imprimir as regras do classificador [auto mode](/pt/permission-modes#eliminate-prompts-with-auto-mode) integradas como JSON. Use `claude auto-mode config` para ver sua configuração efetiva com as configurações aplicadas | `claude auto-mode defaults > rules.json` |29| `claude auto-mode defaults` | Imprimir as regras do classificador [auto mode](/pt/permission-modes#eliminate-prompts-with-auto-mode) integradas como JSON. Use `claude auto-mode config` para ver sua configuração efetiva com as configurações aplicadas | `claude auto-mode defaults > rules.json` |

30| `claude logs <id>` | Imprimir saída recente de uma [sessão de fundo](/pt/agent-view#manage-sessions-from-the-shell) | `claude logs 7c5dcf5d` |30| `claude logs <id>` | Imprimir saída recente de uma [sessão de fundo](/pt/agent-view#manage-sessions-from-the-shell) | `claude logs 7c5dcf5d` |

commands.md +1 −1

Details

26 26 

27**Entre sessões.** `/clear` começa do zero em uma nova tarefa enquanto mantém a memória do projeto. `/resume` e `/branch` permitem que você retorne ou bifurque uma conversa anterior. `/teleport` puxa uma sessão web para este terminal, e `/remote-control` permite que você continue esta sessão local de outro dispositivo.27**Entre sessões.** `/clear` começa do zero em uma nova tarefa enquanto mantém a memória do projeto. `/resume` e `/branch` permitem que você retorne ou bifurque uma conversa anterior. `/teleport` puxa uma sessão web para este terminal, e `/remote-control` permite que você continue esta sessão local de outro dispositivo.

28 28 

29**Quando algo está errado.** `/rewind` reverte o código e a conversa para um checkpoint. `/doctor` e `/debug` diagnosticam problemas de instalação e tempo de execução, e `/feedback` relata um bug com contexto de sessão anexado.29**Quando algo está errado.** `/rewind` reverte o código e a conversa para um checkpoint, ou resume parte da conversa. `/doctor` e `/debug` diagnosticam problemas de instalação e tempo de execução, e `/feedback` relata um bug com contexto de sessão anexado.

30 30 

31## Todos os comandos31## Todos os comandos

32 32 

desktop.md +5 −2

Details

148 148 

149### Executar comandos no terminal149### Executar comandos no terminal

150 150 

151O terminal integrado permite que você execute comandos ao lado de sua sessão sem alternar para outro aplicativo. Abra-o no menu **Views** ou pressione **Ctrl+\`** no macOS ou Windows. O terminal abre no diretório de trabalho de sua sessão e compartilha o mesmo ambiente que Claude, então comandos como `npm test` ou `git status` veem os mesmos arquivos que Claude está editando. O terminal está disponível apenas em sessões locais.151O terminal integrado permite que você execute comandos ao lado de sua sessão sem alternar para outro aplicativo. Abra-o no menu **Views** ou pressione **Ctrl+\`** no macOS ou Windows. O terminal abre no diretório de trabalho de sua sessão e compartilha o mesmo ambiente que Claude, então comandos como `npm test` ou `git status` veem os mesmos arquivos que Claude está editando. Para abrir uma segunda aba de terminal, clique em **+** no cabeçalho do painel de terminal ou clique com o botão direito em uma pasta no chat para escolher **Open in terminal**. O terminal está disponível apenas em sessões locais.

152 152 

153### Abrir e editar arquivos153### Abrir e editar arquivos

154 154 


296 296 

297Use os controles no topo da barra lateral para filtrar sessões por status, projeto ou ambiente, e para agrupar sessões por projeto. Para renomear uma sessão, clique no título da sessão na barra de ferramentas no topo da sessão ativa. Para verificar o uso de contexto, veja [Verificar uso](#check-usage). Quando o contexto se enche, Claude automaticamente resume a conversa e continua trabalhando. Você também pode digitar `/compact` para disparar a sumarização mais cedo e liberar espaço de contexto. Veja [a janela de contexto](/pt/how-claude-code-works#the-context-window) para detalhes sobre como a compactação funciona.297Use os controles no topo da barra lateral para filtrar sessões por status, projeto ou ambiente, e para agrupar sessões por projeto. Para renomear uma sessão, clique no título da sessão na barra de ferramentas no topo da sessão ativa. Para verificar o uso de contexto, veja [Verificar uso](#check-usage). Quando o contexto se enche, Claude automaticamente resume a conversa e continua trabalhando. Você também pode digitar `/compact` para disparar a sumarização mais cedo e liberar espaço de contexto. Veja [a janela de contexto](/pt/how-claude-code-works#the-context-window) para detalhes sobre como a compactação funciona.

298 298 

299O aplicativo desktop envia uma notificação do SO quando uma sessão de Code termina uma tarefa e você não está visualizando essa sessão no momento.

300 

299### Fazer uma pergunta lateral sem descarrilar a sessão301### Fazer uma pergunta lateral sem descarrilar a sessão

300 302 

301Um chat lateral permite que você faça a Claude uma pergunta que usa o contexto de sua sessão mas não adiciona nada de volta à conversa principal. Use-o quando você quer entender um pedaço de código, verificar uma suposição ou explorar uma ideia sem descarrilar a sessão.303Um chat lateral permite que você faça a Claude uma pergunta que usa o contexto de sua sessão mas não adiciona nada de volta à conversa principal. Use-o quando você quer entender um pedaço de código, verificar uma suposição ou explorar uma ideia sem descarrilar a sessão.


598Configurações gerenciadas sobrescrevem configurações de projeto e usuário e se aplicam quando Desktop gera sessões CLI. Você pode definir essas chaves no arquivo de [configurações gerenciadas](/pt/settings#settings-precedence) de sua organização ou enviá-las remotamente através do console de administração.600Configurações gerenciadas sobrescrevem configurações de projeto e usuário e se aplicam quando Desktop gera sessões CLI. Você pode definir essas chaves no arquivo de [configurações gerenciadas](/pt/settings#settings-precedence) de sua organização ou enviá-las remotamente através do console de administração.

599 601 

600| Chave | Descrição |602| Chave | Descrição |

601| ------------------------------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |603| ------------------------------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

602| `permissions.disableBypassPermissionsMode` | defina como `"disable"` para impedir usuários de ativar o modo Bypass permissions. |604| `permissions.disableBypassPermissionsMode` | defina como `"disable"` para impedir usuários de ativar o modo Bypass permissions. |

603| `disableAutoMode` | defina como `"disable"` para impedir usuários de ativar o modo [Auto](/pt/permission-modes#eliminate-prompts-with-auto-mode). Remove Auto do seletor de modo. Também aceito em `permissions`. |605| `disableAutoMode` | defina como `"disable"` para impedir usuários de ativar o modo [Auto](/pt/permission-modes#eliminate-prompts-with-auto-mode). Remove Auto do seletor de modo. Também aceito em `permissions`. |

604| `autoMode` | customize o que o classificador de modo auto confia e bloqueia em sua organização. Veja [Configurar o modo auto](/pt/auto-mode-config). |606| `autoMode` | customize o que o classificador de modo auto confia e bloqueia em sua organização. Veja [Configurar o modo auto](/pt/auto-mode-config). |

605| `sshConfigs` | pré-configure [conexões SSH](#pre-configure-ssh-connections-for-your-team) que aparecem no dropdown de ambiente. Usuários não podem editar ou excluir conexões gerenciadas. |607| `sshConfigs` | pré-configure [conexões SSH](#pre-configure-ssh-connections-for-your-team) que aparecem no dropdown de ambiente. Usuários não podem editar ou excluir conexões gerenciadas. |

606| `sshHostAllowlist` | restrinja [sessões SSH](#restrict-which-ssh-hosts-users-can-connect-to) a hosts cujo nome de host resolvido corresponde a um desses padrões. Uma matriz vazia desativa sessões SSH. Lido apenas de configurações gerenciadas. |608| `sshHostAllowlist` | restrinja [sessões SSH](#restrict-which-ssh-hosts-users-can-connect-to) a hosts cujo nome de host resolvido corresponde a um desses padrões. Uma matriz vazia desativa sessões SSH. Lido apenas de configurações gerenciadas. |

609| `managedMcpServers` | envie configurações de servidor MCP para todos os usuários em uma implantação de terceiros. Cada entrada especifica um transporte de `"http"`, `"sse"` ou `"stdio"`, detalhes de conexão e opcionalmente um mapa `toolPolicy` que restringe quais ferramentas nesse servidor os usuários podem invocar. Disponível apenas em implantações Desktop de terceiros (3P). |

607 610 

608Um arquivo de configurações gerenciadas implantado em disco em cada máquina se aplica a sessões Desktop. Configurações gerenciadas enviadas remotamente através do console de administração atualmente alcançam apenas sessões CLI e IDE, portanto, para implantações Desktop, distribua o arquivo via MDM ou use os [controles do console de administração](#admin-console-controls) acima.611Um arquivo de configurações gerenciadas implantado em disco em cada máquina se aplica a sessões Desktop. Configurações gerenciadas enviadas remotamente através do console de administração atualmente alcançam apenas sessões CLI e IDE, portanto, para implantações Desktop, distribua o arquivo via MDM ou use os [controles do console de administração](#admin-console-controls) acima.

609 612 

desktop-scheduled-tasks.md +106 −0 created

Details

1> ## Documentation Index

2> Fetch the complete documentation index at: https://code.claude.com/docs/llms.txt

3> Use this file to discover all available pages before exploring further.

4 

5# Agendar tarefas recorrentes no Claude Code Desktop

6 

7> Configure tarefas agendadas no Claude Code Desktop para executar Claude automaticamente em uma base recorrente para análises de código diárias, auditorias de dependências ou briefings matinais.

8 

9As tarefas agendadas iniciam uma nova sessão automaticamente em um horário e frequência que você escolhe. Use-as para trabalho recorrente como análises de código diárias, verificações de atualizações de dependências ou briefings matinais que extraem informações do seu calendário e caixa de entrada.

10 

11A página **Routines** do aplicativo Desktop permite criar tanto tarefas agendadas locais quanto [routines](/pt/routines) remotas. Uma tarefa local é executada em sua máquina com acesso direto aos seus arquivos e ferramentas, mas só funciona enquanto o aplicativo está aberto e seu computador está acordado. Uma routine remota é executada na infraestrutura em nuvem gerenciada pela Anthropic, mesmo quando seu computador está desligado, e também pode ser acionada por chamadas de API ou eventos do GitHub. Esta página aborda tarefas agendadas locais; para routines remotas e suas opções de acionamento, consulte [Routines](/pt/routines).

12 

13## Comparar opções de agendamento

14 

15Claude Code offers three ways to schedule recurring or one-off work:

16 

17| | [Cloud](/en/routines) | [Desktop](/en/desktop-scheduled-tasks) | [`/loop`](/en/scheduled-tasks) |

18| :------------------------- | :----------------------------- | :------------------------------------- | :---------------------------------- |

19| Runs on | Anthropic cloud | Your machine | Your machine |

20| Requires machine on | No | Yes | Yes |

21| Requires open session | No | No | Yes |

22| Persistent across restarts | Yes | Yes | Restored on `--resume` if unexpired |

23| Access to local files | No (fresh clone) | Yes | Yes |

24| MCP servers | Connectors configured per task | [Config files](/en/mcp) and connectors | Inherits from session |

25| Permission prompts | No (runs autonomously) | Configurable per task | Inherits from session |

26| Customizable schedule | Via `/schedule` in the CLI | Yes | Yes |

27| Minimum interval | 1 hour | 1 minute | 1 minute |

28 

29<Tip>

30 Use **cloud tasks** for work that should run reliably without your machine. Use **Desktop tasks** when you need access to local files and tools. Use **`/loop`** for quick polling during a session.

31</Tip>

32 

33<Note>

34 Por padrão, as tarefas agendadas são executadas contra qualquer estado em que seu diretório de trabalho esteja, incluindo alterações não confirmadas. Ative o toggle de worktree ao criar a tarefa para dar a cada execução seu próprio worktree Git isolado, da mesma forma que [sessões paralelas](/pt/desktop#work-in-parallel-with-sessions) funcionam.

35</Note>

36 

37## Criar uma tarefa agendada

38 

39Clique em **Routines** na barra lateral e, em seguida, clique em **New routine** e escolha **Local**. Configure estes campos:

40 

41| Campo | Descrição |

42| ------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

43| Name | Identificador da tarefa. Convertido para kebab-case em minúsculas e usado como nome da pasta no disco. Deve ser único entre suas tarefas. |

44| Description | Resumo breve mostrado na lista de tarefas. |

45| Instructions | O que Claude deve fazer quando a tarefa é executada. Escreva isso da mesma forma que você escreveria qualquer mensagem na caixa de prompt. A entrada de instruções inclui seletores para o modo de permissão e modelo, e abaixo você seleciona a pasta de trabalho e se deve executar em um worktree isolado. |

46| Schedule | Com que frequência a tarefa é executada. Consulte [opções de agendamento](#schedule-options) abaixo. |

47 

48Uma pasta é necessária antes de você poder salvar a tarefa. Se você ainda não confiou nessa pasta, o Desktop solicita que você confie nela antes de salvar.

49 

50Você também pode criar uma tarefa descrevendo o que deseja em qualquer sessão. Por exemplo, "configurar uma análise de código diária que é executada todos os dias de manhã às 9h" cria uma tarefa recorrente, e "me lembre às 15h amanhã para verificar o deploy" cria uma tarefa única que se desativa após ser executada.

51 

52## Opções de agendamento

53 

54Escolha um preset do controle Schedule:

55 

56* **Manual**: sem agendamento, só é executado quando você clica em **Run now**. Útil para salvar um prompt que você aciona sob demanda

57* **Hourly**: é executado a cada hora

58* **Daily**: mostra um seletor de hora, padrão 9:00 AM hora local

59* **Weekdays**: igual a Daily, mas pula sábado e domingo

60* **Weekly**: mostra um seletor de hora e um seletor de dia

61 

62Para intervalos que o seletor não oferece, como a cada 15 minutos, no primeiro de cada mês ou uma única execução em um horário futuro específico, peça ao Claude em qualquer sessão do Desktop para definir o agendamento. Use linguagem simples; por exemplo, "agende uma tarefa para executar todos os testes a cada 6 horas."

63 

64## Como as tarefas agendadas são executadas

65 

66As tarefas agendadas são executadas em sua máquina. O Desktop verifica o agendamento a cada minuto enquanto o aplicativo está aberto e inicia uma sessão nova quando uma tarefa está vencida, independentemente de qualquer sessão manual que você tenha aberta. Cada tarefa recebe um pequeno atraso de alguns minutos após o horário agendado para escalonar o tráfego de API. O atraso é determinístico: a mesma tarefa sempre inicia no mesmo deslocamento.

67 

68Quando uma tarefa é acionada, você recebe uma notificação da área de trabalho e uma nova sessão aparece em uma seção **Scheduled** na barra lateral. Abra-a para ver o que Claude fez, revisar alterações ou responder a prompts de permissão. A sessão funciona como qualquer outra: Claude pode editar arquivos, executar comandos, criar commits e abrir pull requests.

69 

70As tarefas só são executadas enquanto o aplicativo desktop está em execução e seu computador está acordado. Se seu computador dormir durante um horário agendado, a execução é ignorada. Para evitar suspensão por inatividade, ative **Keep computer awake** em Settings em **Desktop app → General**. Fechar a tampa do laptop ainda o coloca em suspensão. Para tarefas que precisam ser executadas mesmo quando seu computador está desligado, ou que devem ser acionadas por uma chamada de API ou evento do GitHub, crie uma [routine](/pt/routines) remota.

71 

72## Execuções perdidas

73 

74Quando o aplicativo inicia ou seu computador acorda, o Desktop verifica se cada tarefa perdeu alguma execução nos últimos sete dias. Se perdeu, o Desktop inicia exatamente uma execução de recuperação para o horário mais recentemente perdido e descarta qualquer coisa mais antiga. Uma tarefa diária que perdeu seis dias é executada uma vez ao acordar. O Desktop mostra uma notificação quando uma execução de recuperação inicia.

75 

76Tenha isso em mente ao escrever prompts. Uma tarefa agendada para 9h pode ser executada às 23h se seu computador esteve dormindo o dia todo. Se o tempo importa, adicione proteções ao próprio prompt, por exemplo: "Revise apenas os commits de hoje. Se for depois das 17h, pule a revisão e apenas poste um resumo do que foi perdido."

77 

78## Permissões para tarefas agendadas

79 

80Cada tarefa tem seu próprio modo de permissão, que você define ao criar ou editar a tarefa. As regras de permissão de `~/.claude/settings.json` também se aplicam a sessões de tarefas agendadas. Se uma tarefa é executada em modo Ask e precisa executar uma ferramenta para a qual não tem permissão, a execução fica travada até que você a aprove. A sessão permanece aberta na barra lateral para que você possa responder mais tarde.

81 

82Para evitar travamentos, clique em **Run now** após criar uma tarefa, observe prompts de permissão e selecione "always allow" para cada um. Execuções futuras dessa tarefa aprovam automaticamente as mesmas ferramentas sem solicitar. Você pode revisar e revogar essas aprovações na página de detalhes da tarefa.

83 

84## Gerenciar tarefas agendadas

85 

86Clique em uma tarefa na lista **Routines** para abrir sua página de detalhes. A partir daqui você pode:

87 

88* **Run now**: inicie a tarefa imediatamente sem esperar pelo próximo horário agendado

89* **Status**: alterne entre Active e Paused para pausar ou retomar execuções agendadas sem deletar a tarefa

90* **Edit**: altere as instruções, agendamento, pasta ou outras configurações

91* **Review history**: veja cada execução anterior, incluindo execuções ignoradas. Passe o mouse sobre uma entrada ignorada para ver por quê: seu computador estava dormindo, a execução anterior ainda estava em andamento ou outras tarefas agendadas já estavam em execução. Clique em **Show more** para carregar entradas mais antigas.

92* **Review allowed permissions**: veja e revogue aprovações de ferramentas salvas para esta tarefa no painel **Always allowed**

93* **Delete**: remova a tarefa e arquive todas as sessões que ela criou. Uma caixa de seleção **Also delete files on disk** aparece no diálogo de confirmação; marque-a para também remover o arquivo `SKILL.md` da tarefa e dados associados de `~/.claude/scheduled-tasks/`.

94 

95Você também pode listar, criar, editar e pausar tarefas pedindo ao Claude em qualquer sessão do Desktop. Por exemplo, "pause my dependency-audit task" ou "show me my scheduled tasks." Para deletar uma tarefa, use o botão **Delete** em sua página de detalhes.

96 

97Uma tarefa agendada também pode modificar seu próprio agendamento ou prompt dentro de uma sessão em execução usando a ferramenta MCP `update_scheduled_task`. Isso permite que uma tarefa se reagende com base no que encontra, por exemplo, reagendando uma análise de código para ser executada mais cedo quando detecta que um branch de release foi criado.

98 

99Para editar o prompt de uma tarefa no disco, abra `~/.claude/scheduled-tasks/<task-name>/SKILL.md` (ou em [`CLAUDE_CONFIG_DIR`](/pt/env-vars) se definido). O arquivo usa frontmatter YAML para `name` e `description`, com o prompt como corpo. As alterações entram em vigor na próxima execução. Schedule, pasta, modelo e estado habilitado não estão neste arquivo: altere-os através do formulário Edit ou peça ao Claude.

100 

101## Recursos relacionados

102 

103* [Routines](/pt/routines): execute tarefas na infraestrutura gerenciada pela Anthropic em um agendamento, via chamada de API ou em resposta a eventos do GitHub, mesmo quando seu computador está desligado

104* [Run prompts on a schedule](/pt/scheduled-tasks): agendamento com escopo de sessão com `/loop` na CLI

105* [Claude Code GitHub Actions](/pt/github-actions): execute Claude em um agendamento em CI em vez de em sua máquina

106* [Use Claude Code Desktop](/pt/desktop): o guia completo do aplicativo Desktop

env-vars.md +3 −1

Details

45| `ANTHROPIC_SMALL_FAST_MODEL_AWS_REGION` | Substitua a região AWS para o modelo da classe Haiku ao usar Bedrock ou Bedrock Mantle |45| `ANTHROPIC_SMALL_FAST_MODEL_AWS_REGION` | Substitua a região AWS para o modelo da classe Haiku ao usar Bedrock ou Bedrock Mantle |

46| `ANTHROPIC_VERTEX_BASE_URL` | Substitua a URL do endpoint Vertex AI. Use para endpoints Vertex personalizados ou ao rotear através de um [gateway LLM](/pt/llm-gateway). Veja [Google Vertex AI](/pt/google-vertex-ai) |46| `ANTHROPIC_VERTEX_BASE_URL` | Substitua a URL do endpoint Vertex AI. Use para endpoints Vertex personalizados ou ao rotear através de um [gateway LLM](/pt/llm-gateway). Veja [Google Vertex AI](/pt/google-vertex-ai) |

47| `ANTHROPIC_VERTEX_PROJECT_ID` | ID do projeto GCP para solicitações Vertex AI. Substituído por `GCLOUD_PROJECT`, `GOOGLE_CLOUD_PROJECT` ou o projeto no seu arquivo de credenciais `GOOGLE_APPLICATION_CREDENTIALS`. Veja [Google Vertex AI](/pt/google-vertex-ai) |47| `ANTHROPIC_VERTEX_PROJECT_ID` | ID do projeto GCP para solicitações Vertex AI. Substituído por `GCLOUD_PROJECT`, `GOOGLE_CLOUD_PROJECT` ou o projeto no seu arquivo de credenciais `GOOGLE_APPLICATION_CREDENTIALS`. Veja [Google Vertex AI](/pt/google-vertex-ai) |

48| `ANTHROPIC_WORKSPACE_ID` | ID do workspace para [federação de identidade de carga de trabalho](https://platform.claude.com/docs/en/manage-claude/workload-identity-federation). Defina isso quando sua regra de federação está no escopo de mais de um workspace para que a troca de token saiba qual workspace direcionar |

48| `API_TIMEOUT_MS` | Tempo limite para solicitações de API em milissegundos (padrão: 600000, ou 10 minutos; máximo: 2147483647). Aumente isso quando as solicitações expiram em redes lentas ou ao rotear através de um proxy. Valores acima do máximo causam overflow do temporizador subjacente e fazem com que as solicitações falhem imediatamente |49| `API_TIMEOUT_MS` | Tempo limite para solicitações de API em milissegundos (padrão: 600000, ou 10 minutos; máximo: 2147483647). Aumente isso quando as solicitações expiram em redes lentas ou ao rotear através de um proxy. Valores acima do máximo causam overflow do temporizador subjacente e fazem com que as solicitações falhem imediatamente |

49| `AWS_BEARER_TOKEN_BEDROCK` | Chave de API do Bedrock para autenticação (veja [Chaves de API do Bedrock](https://aws.amazon.com/blogs/machine-learning/accelerate-ai-development-with-amazon-bedrock-api-keys/)) |50| `AWS_BEARER_TOKEN_BEDROCK` | Chave de API do Bedrock para autenticação (veja [Chaves de API do Bedrock](https://aws.amazon.com/blogs/machine-learning/accelerate-ai-development-with-amazon-bedrock-api-keys/)) |

50| `BASH_DEFAULT_TIMEOUT_MS` | Tempo limite padrão para comandos bash de longa duração (padrão: 120000, ou 2 minutos) |51| `BASH_DEFAULT_TIMEOUT_MS` | Tempo limite padrão para comandos bash de longa duração (padrão: 120000, ou 2 minutos) |


138| `CLAUDE_CODE_PLUGIN_CACHE_DIR` | Substitua o diretório raiz de plugins. Apesar do nome, isso define o diretório pai, não o cache em si: marketplaces e o cache de plugin vivem em subdiretórios sob este caminho. Padrão é `~/.claude/plugins` |139| `CLAUDE_CODE_PLUGIN_CACHE_DIR` | Substitua o diretório raiz de plugins. Apesar do nome, isso define o diretório pai, não o cache em si: marketplaces e o cache de plugin vivem em subdiretórios sob este caminho. Padrão é `~/.claude/plugins` |

139| `CLAUDE_CODE_PLUGIN_GIT_TIMEOUT_MS` | Tempo limite em milissegundos para operações git ao instalar ou atualizar plugins (padrão: 120000). Aumente este valor para repositórios grandes ou conexões de rede lentas. Veja [Operações Git expiram](/pt/plugin-marketplaces#git-operations-time-out) |140| `CLAUDE_CODE_PLUGIN_GIT_TIMEOUT_MS` | Tempo limite em milissegundos para operações git ao instalar ou atualizar plugins (padrão: 120000). Aumente este valor para repositórios grandes ou conexões de rede lentas. Veja [Operações Git expiram](/pt/plugin-marketplaces#git-operations-time-out) |

140| `CLAUDE_CODE_PLUGIN_KEEP_MARKETPLACE_ON_FAILURE` | Defina como `1` para manter o cache de marketplace existente quando um `git pull` falha em vez de limpar e re-clonar. Útil em ambientes offline ou airgapped onde re-clonar falharia da mesma forma. Veja [Atualizações de marketplace falham em ambientes offline](/pt/plugin-marketplaces#marketplace-updates-fail-in-offline-environments) |141| `CLAUDE_CODE_PLUGIN_KEEP_MARKETPLACE_ON_FAILURE` | Defina como `1` para manter o cache de marketplace existente quando um `git pull` falha em vez de limpar e re-clonar. Útil em ambientes offline ou airgapped onde re-clonar falharia da mesma forma. Veja [Atualizações de marketplace falham em ambientes offline](/pt/plugin-marketplaces#marketplace-updates-fail-in-offline-environments) |

142| `CLAUDE_CODE_PLUGIN_PREFER_HTTPS` | Defina como `1` para clonar fontes de plugin GitHub `owner/repo` via HTTPS em vez de SSH. Útil em executores CI, contêineres ou qualquer ambiente sem uma chave SSH configurada para `github.com` |

141| `CLAUDE_CODE_PLUGIN_SEED_DIR` | Caminho para um ou mais diretórios de seed de plugin somente leitura, separados por `:` em Unix ou `;` no Windows. Use isso para agrupar um diretório de plugins pré-populado em uma imagem de contêiner. Claude Code registra marketplaces desses diretórios na inicialização e usa plugins pré-armazenados em cache sem re-clonar. Veja [Pré-popular plugins para contêineres](/pt/plugin-marketplaces#pre-populate-plugins-for-containers) |143| `CLAUDE_CODE_PLUGIN_SEED_DIR` | Caminho para um ou mais diretórios de seed de plugin somente leitura, separados por `:` em Unix ou `;` no Windows. Use isso para agrupar um diretório de plugins pré-populado em uma imagem de contêiner. Claude Code registra marketplaces desses diretórios na inicialização e usa plugins pré-armazenados em cache sem re-clonar. Veja [Pré-popular plugins para contêineres](/pt/plugin-marketplaces#pre-populate-plugins-for-containers) |

142| `CLAUDE_CODE_PROVIDER_MANAGED_BY_HOST` | Definido por plataformas host que incorporam Claude Code e gerenciam roteamento de provedor de modelo em seu nome. Quando definido, seleção de provedor, endpoint e variáveis de autenticação como `CLAUDE_CODE_USE_BEDROCK`, `ANTHROPIC_BASE_URL` e `ANTHROPIC_API_KEY` em arquivos de configuração são ignorados para que configurações de usuário não possam substituir o roteamento do host. O opt-out automático de telemetria para Bedrock, Vertex e Foundry também é ignorado, então a telemetria segue o opt-out padrão `DISABLE_TELEMETRY`. Veja [Comportamentos padrão por provedor de API](/pt/data-usage#default-behaviors-by-api-provider) |144| `CLAUDE_CODE_PROVIDER_MANAGED_BY_HOST` | Definido por plataformas host que incorporam Claude Code e gerenciam roteamento de provedor de modelo em seu nome. Quando definido, seleção de provedor, endpoint e variáveis de autenticação como `CLAUDE_CODE_USE_BEDROCK`, `ANTHROPIC_BASE_URL` e `ANTHROPIC_API_KEY` em arquivos de configuração são ignorados para que configurações de usuário não possam substituir o roteamento do host. O opt-out automático de telemetria para Bedrock, Vertex e Foundry também é ignorado, então a telemetria segue o opt-out padrão `DISABLE_TELEMETRY`. Veja [Comportamentos padrão por provedor de API](/pt/data-usage#default-behaviors-by-api-provider) |

143| `CLAUDE_CODE_PROXY_RESOLVES_HOSTS` | Defina como `1` para permitir que o proxy execute resolução DNS em vez do chamador. Opt-in para ambientes onde o proxy deve lidar com resolução de nome de host |145| `CLAUDE_CODE_PROXY_RESOLVES_HOSTS` | Defina como `1` para permitir que o proxy execute resolução DNS em vez do chamador. Opt-in para ambientes onde o proxy deve lidar com resolução de nome de host |


152| `CLAUDE_CODE_SHELL` | Substitua a detecção automática de shell. Útil quando seu shell de login difere do seu shell de trabalho preferido (por exemplo, `bash` vs `zsh`) |154| `CLAUDE_CODE_SHELL` | Substitua a detecção automática de shell. Útil quando seu shell de login difere do seu shell de trabalho preferido (por exemplo, `bash` vs `zsh`) |

153| `CLAUDE_CODE_SHELL_PREFIX` | Prefixo de comando que envolve comandos shell que Claude Code gera: chamadas de ferramenta Bash, comandos [hook](/pt/hooks) e comandos de inicialização de [servidor MCP](/pt/mcp) stdio. Útil para logging ou auditoria. Exemplo: definir `/path/to/logger.sh` executa cada comando como `/path/to/logger.sh <command>` |155| `CLAUDE_CODE_SHELL_PREFIX` | Prefixo de comando que envolve comandos shell que Claude Code gera: chamadas de ferramenta Bash, comandos [hook](/pt/hooks) e comandos de inicialização de [servidor MCP](/pt/mcp) stdio. Útil para logging ou auditoria. Exemplo: definir `/path/to/logger.sh` executa cada comando como `/path/to/logger.sh <command>` |

154| `CLAUDE_CODE_SIMPLE` | Defina como `1` para executar com um prompt do sistema mínimo e apenas as ferramentas Bash, leitura de arquivo e edição de arquivo. Ferramentas MCP de `--mcp-config` ainda estão disponíveis. Desabilita auto-descoberta de hooks, skills, plugins, servidores MCP, memória automática e CLAUDE.md. A flag CLI [`--bare`](/pt/headless#start-faster-with-bare-mode) define isso |156| `CLAUDE_CODE_SIMPLE` | Defina como `1` para executar com um prompt do sistema mínimo e apenas as ferramentas Bash, leitura de arquivo e edição de arquivo. Ferramentas MCP de `--mcp-config` ainda estão disponíveis. Desabilita auto-descoberta de hooks, skills, plugins, servidores MCP, memória automática e CLAUDE.md. A flag CLI [`--bare`](/pt/headless#start-faster-with-bare-mode) define isso |

155| `CLAUDE_CODE_SIMPLE_SYSTEM_PROMPT` | Defina como `1` para usar um prompt do sistema mais curto e descrições de ferramenta abreviadas em Opus 4.7. Não tem efeito em outros modelos. O conjunto de ferramentas completo, hooks, servidores MCP e descoberta de CLAUDE.md permanecem habilitados |157| `CLAUDE_CODE_SIMPLE_SYSTEM_PROMPT` | Defina como `1` para usar um prompt do sistema mais curto e descrições de ferramenta abreviadas em qualquer modelo. Defina como `0`, `false`, `no` ou `off` para optar por não participar mesmo em modelos onde o experimento ou configuração do servidor habilitaria de outra forma. O conjunto de ferramentas completo, hooks, servidores MCP e descoberta de CLAUDE.md permanecem habilitados |

156| `CLAUDE_CODE_SKIP_ANTHROPIC_AWS_AUTH` | Pule autenticação do lado do cliente para [Claude Platform on AWS](/pt/claude-platform-on-aws), para gateways que assinam solicitações por conta própria |158| `CLAUDE_CODE_SKIP_ANTHROPIC_AWS_AUTH` | Pule autenticação do lado do cliente para [Claude Platform on AWS](/pt/claude-platform-on-aws), para gateways que assinam solicitações por conta própria |

157| `CLAUDE_CODE_SKIP_BEDROCK_AUTH` | Pule autenticação AWS para Bedrock (por exemplo, ao usar um gateway LLM) |159| `CLAUDE_CODE_SKIP_BEDROCK_AUTH` | Pule autenticação AWS para Bedrock (por exemplo, ao usar um gateway LLM) |

158| `CLAUDE_CODE_SKIP_FOUNDRY_AUTH` | Pule autenticação Azure para Microsoft Foundry (por exemplo, ao usar um gateway LLM) |160| `CLAUDE_CODE_SKIP_FOUNDRY_AUTH` | Pule autenticação Azure para Microsoft Foundry (por exemplo, ao usar um gateway LLM) |

Details

156 156 

157### Usando skills157### Usando skills

158 158 

159A entrada `prompt` aceita uma invocação de [skill](/pt/skills) bem como texto simples:

160 

161* Para uma skill no diretório `.claude/skills/` do seu repositório, execute `actions/checkout` antes da etapa de ação e passe `/skill-name`.

162* Para uma skill empacotada em um plugin, instale o plugin com as entradas `plugin_marketplaces` e `plugins` e passe a `/plugin-name:skill-name` com namespace.

163 

164O fluxo de trabalho a seguir instala o plugin `code-review` e executa sua skill em cada pull request novo ou atualizado:

165 

159```yaml theme={null}166```yaml theme={null}

160name: Code Review167name: Code Review

161on:168on:


168 - uses: anthropics/claude-code-action@v1175 - uses: anthropics/claude-code-action@v1

169 with:176 with:

170 anthropic_api_key: ${{ secrets.ANTHROPIC_API_KEY }}177 anthropic_api_key: ${{ secrets.ANTHROPIC_API_KEY }}

171 prompt: "Review this pull request for code quality, correctness, and security. Analyze the diff, then post your findings as review comments."178 plugin_marketplaces: "https://github.com/anthropics/claude-code.git"

172 claude_args: "--max-turns 5"179 plugins: "code-review@claude-code-plugins"

180 prompt: "/code-review:code-review ${{ github.repository }}/pull/${{ github.event.pull_request.number }}"

173```181```

174 182 

175### Automação personalizada com prompts183### Automação personalizada com prompts


622A Claude Code Action v1 usa uma configuração simplificada:630A Claude Code Action v1 usa uma configuração simplificada:

623 631 

624| Parâmetro | Descrição | Necessário |632| Parâmetro | Descrição | Necessário |

625| ------------------- | ------------------------------------------------------------------------ | ---------- |633| --------------------- | -------------------------------------------------------------------------------------- | ---------- |

626| `prompt` | Instruções para Claude (texto simples ou um nome de [skill](/pt/skills)) | Não\* |634| `prompt` | Instruções para Claude (texto simples ou um nome de [skill](/pt/skills)) | Não\* |

627| `claude_args` | Argumentos de CLI passados para Claude Code | Não |635| `claude_args` | Argumentos de CLI passados para Claude Code | Não |

636| `plugin_marketplaces` | Lista separada por quebra de linha de URLs Git do marketplace de plugins | Não |

637| `plugins` | Lista separada por quebra de linha de nomes de plugins para instalar antes da execução | Não |

628| `anthropic_api_key` | Chave de API Claude | Sim\*\* |638| `anthropic_api_key` | Chave de API Claude | Sim\*\* |

629| `github_token` | Token do GitHub para acesso à API | Não |639| `github_token` | Token do GitHub para acesso à API | Não |

630| `trigger_phrase` | Frase de gatilho personalizada (padrão: "@claude") | Não |640| `trigger_phrase` | Frase de gatilho personalizada (padrão: "@claude") | Não |

glossary.md +1 −1

Details

70 70 

71### Checkpoint71### Checkpoint

72 72 

73Um snapshot automático do seu código capturado antes de cada edição que Claude faz. Pressione `Esc` duas vezes ou execute `/rewind` para restaurar código, conversa ou ambos para um ponto anterior. Checkpoints são locais à sessão, separados do git, e não rastreiam alterações feitas através da tool Bash.73Um ponto de restauração criado a cada prompt que você envia. Claude Code captura snapshots de arquivos antes de cada edição para que um checkpoint possa revertê-los. Pressione `Esc` duas vezes ou execute `/rewind` para restaurar código, conversa ou ambos para um ponto anterior, ou para resumir parte da conversa a partir de uma mensagem selecionada. Checkpoints são locais à sessão, separados do git, e não rastreiam alterações feitas através da tool Bash.

74 74 

75Saiba mais: [Checkpointing](/pt/checkpointing)75Saiba mais: [Checkpointing](/pt/checkpointing)

76 76 

goal.md +1 −1

Details

108 108 

109### Executar de forma não interativa109### Executar de forma não interativa

110 110 

111`/goal` funciona em [modo não interativo](/pt/headless) e através de [Remote Control](/pt/remote-control). Definir um objetivo com `-p` executa o loop até a conclusão em uma única invocação:111`/goal` funciona em [modo não interativo](/pt/headless), no [aplicativo desktop](/pt/desktop) e através de [Remote Control](/pt/remote-control). Definir um objetivo com `-p` executa o loop até a conclusão em uma única invocação:

112 112 

113```bash theme={null}113```bash theme={null}

114claude -p "/goal CHANGELOG.md has an entry for every PR merged this week"114claude -p "/goal CHANGELOG.md has an entry for every PR merged this week"

hooks.md +46 −6

Details

297| :-------------- | :---------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |297| :-------------- | :---------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |

298| `type` | sim | `"command"`, `"http"`, `"mcp_tool"`, `"prompt"` ou `"agent"` |298| `type` | sim | `"command"`, `"http"`, `"mcp_tool"`, `"prompt"` ou `"agent"` |

299| `if` | não | Sintaxe de regra de permissão para filtrar quando este hook executa, como `"Bash(git *)"` ou `"Edit(*.ts)"`. O hook apenas é gerado se a chamada de ferramenta corresponde ao padrão, ou se um comando Bash é muito complexo para analisar. Apenas avaliado em eventos de ferramenta: `PreToolUse`, `PostToolUse`, `PostToolUseFailure`, `PermissionRequest` e `PermissionDenied`. Em outros eventos, um hook com `if` definido nunca executa. Usa a mesma sintaxe que [regras de permissão](/pt/permissions) |299| `if` | não | Sintaxe de regra de permissão para filtrar quando este hook executa, como `"Bash(git *)"` ou `"Edit(*.ts)"`. O hook apenas é gerado se a chamada de ferramenta corresponde ao padrão, ou se um comando Bash é muito complexo para analisar. Apenas avaliado em eventos de ferramenta: `PreToolUse`, `PostToolUse`, `PostToolUseFailure`, `PermissionRequest` e `PermissionDenied`. Em outros eventos, um hook com `if` definido nunca executa. Usa a mesma sintaxe que [regras de permissão](/pt/permissions) |

300| `timeout` | não | Segundos antes de cancelar. Padrões: 600 para comando, 30 para prompt, 60 para agente |300| `timeout` | não | Segundos antes de cancelar. Padrões: 600 para `command`, `http` e `mcp_tool`; 30 para `prompt`; 60 para `agent`. [`UserPromptSubmit`](#userpromptsubmit) reduz o padrão de `command`, `http` e `mcp_tool` para 30 |

301| `statusMessage` | não | Mensagem de spinner personalizada exibida enquanto o hook executa |301| `statusMessage` | não | Mensagem de spinner personalizada exibida enquanto o hook executa |

302| `once` | não | Se `true`, executa apenas uma vez por sessão e depois é removido. Apenas honrado para hooks declarados em [frontmatter de skill](#hooks-in-skills-and-agents); ignorado em arquivos de configurações e frontmatter de agente |302| `once` | não | Se `true`, executa apenas uma vez por sessão e depois é removido. Apenas honrado para hooks declarados em [frontmatter de skill](#hooks-in-skills-and-agents); ignorado em arquivos de configurações e frontmatter de agente |

303 303 


558 558 

559Hooks de comando recebem dados JSON via stdin e comunicam resultados através de códigos de saída, stdout e stderr. Hooks HTTP recebem o mesmo JSON como corpo da solicitação POST e comunicam resultados através do corpo da resposta HTTP. Esta seção cobre campos e comportamento comuns a todos os eventos. Cada seção de evento sob [Eventos de hook](#hook-events) inclui seu esquema de entrada específico e opções de controle de decisão.559Hooks de comando recebem dados JSON via stdin e comunicam resultados através de códigos de saída, stdout e stderr. Hooks HTTP recebem o mesmo JSON como corpo da solicitação POST e comunicam resultados através do corpo da resposta HTTP. Esta seção cobre campos e comportamento comuns a todos os eventos. Cada seção de evento sob [Eventos de hook](#hook-events) inclui seu esquema de entrada específico e opções de controle de decisão.

560 560 

561No macOS e Linux, hooks de comando executam em sua própria sessão sem um terminal controlador a partir de v2.1.139. O processo de hook e qualquer processo filho não podem abrir `/dev/tty` ou enviar sequências de escape diretamente para a interface do Claude Code. Windows não tem `/dev/tty`. Para exibir uma mensagem ao usuário em qualquer plataforma, retorne [`systemMessage`](#json-output) na saída JSON. Para disparar uma notificação de desktop, definir um título de janela ou tocar o sino, retorne [`terminalSequence`](#emit-terminal-notifications) em vez disso.

562 

561### Campos de entrada comuns563### Campos de entrada comuns

562 564 

563Eventos de hook recebem esses campos como JSON, além de campos específicos do evento documentados em cada seção [evento de hook](#hook-events). Para hooks de comando, este JSON chega via stdin. Para hooks HTTP, chega como corpo da solicitação POST.565Eventos de hook recebem esses campos como JSON, além de campos específicos do evento documentados em cada seção [evento de hook](#hook-events). Para hooks de comando, este JSON chega via stdin. Para hooks HTTP, chega como corpo da solicitação POST.


694* **`hookSpecificOutput`** é um objeto aninhado para eventos que precisam de controle mais rico. Requer um campo `hookEventName` definido para o nome do evento.696* **`hookSpecificOutput`** é um objeto aninhado para eventos que precisam de controle mais rico. Requer um campo `hookEventName` definido para o nome do evento.

695 697 

696| Campo | Padrão | Descrição |698| Campo | Padrão | Descrição |

697| :--------------- | :------ | :------------------------------------------------------------------------------------------------------------------------------------------- |699| :----------------- | :------ | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

698| `continue` | `true` | Se `false`, Claude para de processar inteiramente após o hook executar. Tem precedência sobre qualquer campo de decisão específico do evento |700| `continue` | `true` | Se `false`, Claude para de processar inteiramente após o hook executar. Tem precedência sobre qualquer campo de decisão específico do evento |

699| `stopReason` | nenhum | Mensagem mostrada ao usuário quando `continue` é `false`. Não mostrada ao Claude |701| `stopReason` | nenhum | Mensagem mostrada ao usuário quando `continue` é `false`. Não mostrada ao Claude |

700| `suppressOutput` | `false` | Se `true`, oculta stdout do log de debug |702| `suppressOutput` | `false` | Se `true`, oculta stdout do log de debug |

701| `systemMessage` | nenhum | Mensagem de aviso mostrada ao usuário |703| `systemMessage` | nenhum | Mensagem de aviso mostrada ao usuário |

704| `terminalSequence` | nenhum | Uma sequência de escape de terminal para Claude Code emitir em seu nome, como uma notificação de desktop, título de janela ou sino. Restrito a OSC `0`/`1`/`2`/`9`/`99`/`777` e BEL. Se o valor contiver algo fora da lista de permissões, o campo é ignorado. Use isso em vez de escrever para `/dev/tty`, que não está disponível para hooks |

702 705 

703Para parar Claude inteiramente independentemente do tipo de evento:706Para parar Claude inteiramente independentemente do tipo de evento:

704 707 


706{ "continue": false, "stopReason": "Build failed, fix errors before continuing" }709{ "continue": false, "stopReason": "Build failed, fix errors before continuing" }

707```710```

708 711 

712#### Emitir notificações de terminal

713 

714O campo `terminalSequence` requer Claude Code v2.1.141 ou posterior.

715 

716Hooks executam sem um terminal controlador, então escrever sequências de escape diretamente para `/dev/tty` falha. Em vez disso, retorne a sequência de escape no campo `terminalSequence` e Claude Code a emite para você através de seu próprio caminho de escrita de terminal. Isso é livre de corrida, funciona dentro de tmux e GNU screen, e funciona no Windows onde não há `/dev/tty`.

717 

718O campo aceita uma string de uma ou mais sequências de escape na lista de permissões:

719 

720* OSC `0`, `1`, `2`: títulos de janela e ícone

721* OSC `9`: notificações iTerm2, ConEmu, Windows Terminal e WezTerm, incluindo progresso de barra de tarefas `9;4`

722* OSC `99`: notificações Kitty

723* OSC `777`: notificações urxvt, Ghostty e Warp

724* BEL simples

725 

726Sequências podem ser terminadas com BEL ou com ST. Qualquer coisa fora da lista de permissões, incluindo sequências de cursor e cor CSI, sequências de paleta OSC, hiperlinks OSC 8, escritas de área de transferência OSC 52 e OSC 1337, é rejeitada e o campo é ignorado.

727 

728O exemplo abaixo dispara uma notificação de desktop de um hook `Notification`. A sequência de escape é construída com `printf` escapes octais para que os bytes de controle nunca apareçam na linha de comando do shell, e `jq -n --arg` constrói a saída JSON para que aspas, barras invertidas e quebras de linha na mensagem de notificação sejam escapadas corretamente:

729 

730```bash theme={null}

731#!/bin/bash

732# Hook de notificação: ping no desktop quando Claude Code precisa de atenção.

733input=$(cat)

734title="Claude Code'

735body=$(jq -r '.message // "Needs your attention"' <<<"$input")

736seq=$(printf '\033]777;notify;%s;%s\007' "$title" "$body")

737jq -nc --arg seq "$seq" '{terminalSequence: $seq}'

738```

739 

740A forma `{ "terminalSequence": "..." }` é a mesma de qualquer shell ou linguagem. No Windows, construa a string de escape em PowerShell ou um script e emita o mesmo objeto JSON.

741 

742<Note>

743 `terminalSequence` é a substituição suportada para hooks que anteriormente escreviam sequências de escape diretamente para `/dev/tty`. A lista de permissões é restrita a sequências que não podem mover o cursor ou alterar cores, para que um hook nunca possa corromper um prompt na tela.

744</Note>

745 

709#### Adicionar contexto para Claude746#### Adicionar contexto para Claude

710 747 

711O campo `additionalContext` passa uma string do seu hook para a janela de contexto do Claude. O Claude Code envolve a string em um lembrete do sistema e a insere na conversa no ponto onde o hook disparou. Claude lê o lembrete na próxima solicitação de modelo, mas não aparece como uma mensagem de chat na interface.748O campo `additionalContext` passa uma string do seu hook para a janela de contexto do Claude. O Claude Code envolve a string em um lembrete do sistema e a insere na conversa no ponto onde o hook disparou. Claude lê o lembrete na próxima solicitação de modelo, mas não aparece como uma mensagem de chat na interface.


989 1026 

990Executa quando o usuário submete um prompt, antes do Claude processá-lo. Isso permite que você adicione contexto adicional baseado no prompt/conversa, valide prompts ou bloqueie certos tipos de prompts.1027Executa quando o usuário submete um prompt, antes do Claude processá-lo. Isso permite que você adicione contexto adicional baseado no prompt/conversa, valide prompts ou bloqueie certos tipos de prompts.

991 1028 

1029Hooks `UserPromptSubmit` têm um timeout padrão de 30 segundos para tipos `command`, `http` e `mcp_tool`, mais curto que o padrão de 600 segundos para esses tipos em outros eventos. Porque este hook executa antes de cada prompt e bloqueia processamento do modelo até que seja concluído, um hook travado paralisa a sessão. Se seu hook precisa de mais tempo, defina o campo `timeout` na entrada do hook.

1030 

992#### Entrada de UserPromptSubmit1031#### Entrada de UserPromptSubmit

993 1032 

994Além dos [campos de entrada comuns](#common-input-fields), hooks UserPromptSubmit recebem o campo `prompt` contendo o texto que o usuário submeteu.1033Além dos [campos de entrada comuns](#common-input-fields), hooks UserPromptSubmit recebem o campo `prompt` contendo o texto que o usuário submeteu.


2598 2637 

2599Quando um hook assíncrono dispara, Claude Code inicia o processo do hook e imediatamente continua sem esperar que termine. O hook recebe a mesma entrada JSON via stdin que um hook síncrono.2638Quando um hook assíncrono dispara, Claude Code inicia o processo do hook e imediatamente continua sem esperar que termine. O hook recebe a mesma entrada JSON via stdin que um hook síncrono.

2600 2639 

2601Após o processo em background sair, se o hook produziu uma resposta JSON com um campo `systemMessage` ou `additionalContext`, esse conteúdo é entregue ao Claude como contexto no próximo turno de conversa.2640Após o processo em background sair, se o hook produziu uma resposta JSON com um campo `additionalContext`, esse conteúdo é entregue ao Claude como contexto no próximo turno de conversa. Um campo `systemMessage` é mostrado para você, não para Claude.

2602 2641 

2603Notificações de conclusão de hook assíncrono são suprimidas por padrão. Para vê-las, ative modo verbose com `Ctrl+O` ou inicie Claude Code com `--verbose`.2642Notificações de conclusão de hook assíncrono são suprimidas por padrão. Para vê-las, ative modo verbose com `Ctrl+O` ou inicie Claude Code com `--verbose`.

2604 2643 


2619 exit 02658 exit 0

2620fi2659fi

2621 2660 

2622# Execute testes e relate resultados via systemMessage2661# Execute testes e relate resultados ao Claude via additionalContext

2623RESULT=$(npm test 2>&1)2662RESULT=$(npm test 2>&1)

2624EXIT_CODE=$?2663EXIT_CODE=$?

2625 2664 

2626if [ $EXIT_CODE -eq 0 ]; then2665if [ $EXIT_CODE -eq 0 ]; then

2627 echo "{\"systemMessage\": \"Tests passed after editing $FILE_PATH\"}"2666 MSG="Tests passed after editing $FILE_PATH"

2628else2667else

2629 echo "{\"systemMessage\": \"Tests failed after editing $FILE_PATH: $RESULT\"}"2668 MSG="Tests failed after editing $FILE_PATH: $RESULT"

2630fi2669fi

2670jq -nc --arg msg "$MSG" '{hookSpecificOutput: {hookEventName: "PostToolUse", additionalContext: $msg}}'

2631```2671```

2632 2672 

2633Então adicione esta configuração a `.claude/settings.json` na raiz do seu projeto. A flag `async: true` permite que Claude continue trabalhando enquanto testes executam:2673Então adicione esta configuração a `.claude/settings.json` na raiz do seu projeto. A flag `async: true` permite que Claude continue trabalhando enquanto testes executam:

hooks-guide.md +4 −1

Details

865### Limitações865### Limitações

866 866 

867* Hooks de comando se comunicam apenas através de stdout, stderr e códigos de saída. Eles não podem disparar comandos `/` ou chamadas de ferramenta. Texto retornado via `additionalContext` é injetado como um lembrete do sistema que Claude lê como texto simples. HTTP hooks se comunicam através do corpo da resposta em vez disso.867* Hooks de comando se comunicam apenas através de stdout, stderr e códigos de saída. Eles não podem disparar comandos `/` ou chamadas de ferramenta. Texto retornado via `additionalContext` é injetado como um lembrete do sistema que Claude lê como texto simples. HTTP hooks se comunicam através do corpo da resposta em vez disso.

868* O timeout do hook é 10 minutos por padrão, configurável por hook com o campo `timeout` (em segundos).868* Os timeouts do hook variam por tipo. Substitua por hook com o campo `timeout` em segundos.

869 * `command`, `http`, `mcp_tool`: 10 minutos. `UserPromptSubmit` reduz estes para 30 segundos.

870 * `prompt`: 30 segundos.

871 * `agent`: 60 segundos.

869* Hooks `PostToolUse` não podem desfazer ações já que a ferramenta já foi executada.872* Hooks `PostToolUse` não podem desfazer ações já que a ferramenta já foi executada.

870* Hooks `PermissionRequest` não disparam em [modo não-interativo](/pt/headless) (`-p`). Use hooks `PreToolUse` para decisões de permissão automatizadas.873* Hooks `PermissionRequest` não disparam em [modo não-interativo](/pt/headless) (`-p`). Use hooks `PreToolUse` para decisões de permissão automatizadas.

871* Hooks `Stop` disparam sempre que Claude termina de responder, não apenas na conclusão de tarefas. Eles não disparam em interrupções do usuário. Erros de API disparam [StopFailure](/pt/hooks#stopfailure) em vez disso.874* Hooks `Stop` disparam sempre que Claude termina de responder, não apenas na conclusão de tarefas. Eles não disparam em interrupções do usuário. Erros de API disparam [StopFailure](/pt/hooks#stopfailure) em vez disso.

mcp.md +1 −1

Details

458 458 

459Muitos servidores MCP baseados em nuvem exigem autenticação. Claude Code suporta OAuth 2.0 para conexões seguras.459Muitos servidores MCP baseados em nuvem exigem autenticação. Claude Code suporta OAuth 2.0 para conexões seguras.

460 460 

461Claude Code marca um servidor remoto como necessitando autenticação quando o servidor responde com `401 Unauthorized` e um cabeçalho `WWW-Authenticate` apontando para seu servidor de autorização. Qualquer servidor personalizado que retorna essa resposta obtém o mesmo fluxo de autenticação `/mcp` que qualquer outro servidor remoto.461Claude Code marca um servidor remoto como necessitando autenticação quando o servidor responde com `401 Unauthorized` ou `403 Forbidden`. Qualquer código de status sinaliza o servidor em `/mcp` para que você possa completar o fluxo OAuth. Um servidor personalizado que retorna um cabeçalho `WWW-Authenticate` apontando para seu servidor de autorização obtém a mesma descoberta automática que qualquer outro servidor remoto.

462 462 

463<Steps>463<Steps>

464 <Step title="Adicione o servidor que requer autenticação">464 <Step title="Adicione o servidor que requer autenticação">

Details

51 Sinalizadores disponíveis:51 Sinalizadores disponíveis:

52 52 

53 | Sinalizador | Descrição |53 | Sinalizador | Descrição |

54 | ----------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |54 | ----------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

55 | `--name "My Project"` | Define um título de sessão personalizado visível na lista de sessões em claude.ai/code. |55 | `--name "My Project"` | Define um título de sessão personalizado visível na lista de sessões em claude.ai/code. |

56 | `--remote-control-session-name-prefix <prefix>` | Prefixo para nomes de sessão gerados automaticamente quando nenhum nome explícito é definido. O padrão é o nome do host da sua máquina, produzindo nomes como `myhost-graceful-unicorn`. Defina `CLAUDE_REMOTE_CONTROL_SESSION_NAME_PREFIX` para o mesmo efeito. |56 | `--remote-control-session-name-prefix <prefix>` | Prefixo para nomes de sessão gerados automaticamente quando nenhum nome explícito é definido. O padrão é o nome do host da sua máquina, produzindo nomes como `myhost-graceful-unicorn`. Defina `CLAUDE_REMOTE_CONTROL_SESSION_NAME_PREFIX` para o mesmo efeito. |

57 | `--spawn <mode>` | Como o servidor cria sessões.<br />• `same-dir` (padrão): todas as sessões compartilham o diretório de trabalho atual, portanto podem entrar em conflito se editarem os mesmos arquivos.<br />• `worktree`: cada sessão sob demanda obtém seu próprio [git worktree](/pt/common-workflows#run-parallel-claude-code-sessions-with-git-worktrees). Requer um repositório git.<br />• `session`: modo de sessão única. Serve exatamente uma sessão e rejeita conexões adicionais. Definido apenas na inicialização.<br />Pressione `w` em tempo de execução para alternar entre `same-dir` e `worktree`. |57 | `--spawn <mode>` | Como o servidor cria sessões.<br />• `same-dir` (padrão): todas as sessões compartilham o diretório de trabalho atual, portanto podem entrar em conflito se editarem os mesmos arquivos.<br />• `worktree`: cada sessão sob demanda obtém seu próprio [git worktree](/pt/worktrees). Requer um repositório git.<br />• `session`: modo de sessão única. Serve exatamente uma sessão e rejeita conexões adicionais. Definido apenas na inicialização.<br />Pressione `w` em tempo de execução para alternar entre `same-dir` e `worktree`. |

58 | `--capacity <N>` | Número máximo de sessões simultâneas. O padrão é 32. Não pode ser usado com `--spawn=session`. |58 | `--capacity <N>` | Número máximo de sessões simultâneas. O padrão é 32. Não pode ser usado com `--spawn=session`. |

59 | `--verbose` | Mostra logs detalhados de conexão e sessão. |59 | `--verbose` | Mostra logs detalhados de conexão e sessão. |

60 | `--sandbox` / `--no-sandbox` | Ativa ou desativa [sandboxing](/pt/sandboxing) para isolamento de sistema de arquivos e rede. Desativado por padrão. |60 | `--sandbox` / `--no-sandbox` | Ativa ou desativa [sandboxing](/pt/sandboxing) para isolamento de sistema de arquivos e rede. Desativado por padrão. |


113 113 

114* **Abra a URL da sessão** em qualquer navegador para ir diretamente para a sessão em [claude.ai/code](https://claude.ai/code).114* **Abra a URL da sessão** em qualquer navegador para ir diretamente para a sessão em [claude.ai/code](https://claude.ai/code).

115* **Escaneie o código QR** mostrado ao lado da URL da sessão para abri-lo diretamente no aplicativo Claude. Com `claude remote-control`, pressione a barra de espaço para alternar a exibição do código QR.115* **Escaneie o código QR** mostrado ao lado da URL da sessão para abri-lo diretamente no aplicativo Claude. Com `claude remote-control`, pressione a barra de espaço para alternar a exibição do código QR.

116* **Abra [claude.ai/code](https://claude.ai/code) ou o aplicativo Claude** e encontre a sessão pelo nome na lista de sessões. As sessões de Remote Control mostram um ícone de computador com um ponto de status verde quando online.116* **Abra [claude.ai/code](https://claude.ai/code) ou o aplicativo Claude** e encontre a sessão pelo nome na lista de sessões. No aplicativo móvel Claude, toque em **Code** na navegação para acessar a lista de sessões. As sessões de Remote Control mostram um ícone de computador com um ponto de status verde quando online.

117 117 

118O título da sessão remota é escolhido nesta ordem:118O título da sessão remota é escolhido nesta ordem:

119 119 


130 130 

131### Ativar Remote Control para todas as sessões131### Ativar Remote Control para todas as sessões

132 132 

133Por padrão, Remote Control só é ativado quando você executa explicitamente `claude remote-control`, `claude --remote-control` ou `/remote-control`. Para ativá-lo automaticamente para cada sessão interativa, execute `/config` dentro do Claude Code e defina **Enable Remote Control for all sessions** como `true`. Defina-o de volta para `false` para desativar.133Por padrão, Remote Control só é ativado quando você executa explicitamente `claude remote-control`, `claude --remote-control` ou `/remote-control`. Para ativá-lo automaticamente para cada sessão interativa, execute `/config` dentro do Claude Code e defina **Enable Remote Control for all sessions** como `true`. Defina-o de volta para `false` para desativar. No aplicativo Desktop, você também pode alternar isso em **Settings → Claude Code → Enable remote control by default**.

134 134 

135Com essa configuração ativada, cada processo interativo do Claude Code registra uma sessão remota. Se você executar várias instâncias, cada uma obtém seu próprio ambiente e sessão. Para executar várias sessões simultâneas a partir de um único processo, use o [modo servidor](#start-a-remote-control-session) em vez disso.135Com essa configuração ativada, cada processo interativo do Claude Code registra uma sessão remota. Se você executar várias instâncias, cada uma obtém seu próprio ambiente e sessão. Para executar várias sessões simultâneas a partir de um único processo, use o [modo servidor](#start-a-remote-control-session) em vez disso.

136 136 


215 215 

216### "Remote Control is disabled by your organization's policy"216### "Remote Control is disabled by your organization's policy"

217 217 

218Este erro tem três causas distintas. Execute `/status` primeiro para ver qual método de login e assinatura você está usando.218Este erro tem quatro causas distintas. Execute `/status` primeiro para ver qual método de login e assinatura você está usando.

219 219 

220* **Você está autenticado com uma chave de API ou conta Console**: Remote Control requer OAuth claude.ai. Execute `/login` e escolha a opção claude.ai. Se `ANTHROPIC_API_KEY` estiver definida em seu ambiente, desative-a.220* **Você está autenticado com uma chave de API ou conta Console**: Remote Control requer OAuth claude.ai. Execute `/login` e escolha a opção claude.ai. Se `ANTHROPIC_API_KEY` estiver definida em seu ambiente, desative-a.

221* **Seu administrador de Team ou Enterprise não ativou**: Remote Control fica desativado por padrão nesses planos. Um administrador pode ativá-lo em [claude.ai/admin-settings/claude-code](https://claude.ai/admin-settings/claude-code) ativando o toggle **Remote Control**. Esta é uma configuração de organização no lado do servidor, não uma chave de [configurações gerenciadas](/pt/permissions#managed-only-settings).221* **Seu administrador de Team ou Enterprise não ativou**: Remote Control fica desativado por padrão nesses planos. Um administrador pode ativá-lo em [claude.ai/admin-settings/claude-code](https://claude.ai/admin-settings/claude-code) ativando o toggle **Remote Control**. Este toggle é uma configuração de organização no lado do servidor.

222* **O toggle do administrador está acinzentado**: sua organização tem uma configuração de retenção de dados ou conformidade que é incompatível com Remote Control. Isso não pode ser alterado no painel de administração. Entre em contato com o suporte da Anthropic para discutir opções.222* **O toggle do administrador está acinzentado**: sua organização tem uma configuração de retenção de dados ou conformidade que é incompatível com Remote Control. Isso não pode ser alterado no painel de administração. Entre em contato com o suporte da Anthropic para discutir opções.

223* **O erro menciona `disableRemoteControl`**: seu administrador de TI desativou Remote Control neste dispositivo através de [configurações gerenciadas](/pt/settings#settings-files), independentemente do toggle em toda a organização.

223 224 

224### "Remote credentials fetch failed"225### "Remote credentials fetch failed"

225 226 

sub-agents.md +6 −4

Details

158 158 

159Esta é a forma recomendada de criar e gerenciar subagentes. Para criação manual ou automação, você também pode adicionar arquivos de subagente diretamente.159Esta é a forma recomendada de criar e gerenciar subagentes. Para criação manual ou automação, você também pode adicionar arquivos de subagente diretamente.

160 160 

161Para listar todos os subagentes configurados da linha de comando sem abrir a [visualização de agente](/pt/agent-view), redirecione a saída de `claude agents`. Por exemplo, `claude agents | cat` imprime agentes agrupados por fonte e indica quais são substituídos por definições de prioridade mais alta.

162 

163### Escolher o escopo do subagente161### Escolher o escopo do subagente

164 162 

165Subagentes são arquivos Markdown com frontmatter YAML. Armazene-os em locais diferentes dependendo do escopo. Quando múltiplos subagentes compartilham o mesmo nome, o local de prioridade mais alta vence.163Subagentes são arquivos Markdown com frontmatter YAML. Armazene-os em locais diferentes dependendo do escopo. Quando múltiplos subagentes compartilham o mesmo nome, o local de prioridade mais alta vence.


178 176 

179**Subagentes de usuário** (`~/.claude/agents/`) são subagentes pessoais disponíveis em todos os seus projetos.177**Subagentes de usuário** (`~/.claude/agents/`) são subagentes pessoais disponíveis em todos os seus projetos.

180 178 

179Claude Code verifica `.claude/agents/` e `~/.claude/agents/` recursivamente, para que você possa organizar definições em subpastas como `agents/review/` ou `agents/research/`. O caminho do subdiretório não afeta como um subagente é identificado ou invocado, porque a identidade vem apenas do campo `name` do frontmatter. Mantenha valores de `name` únicos em toda a árvore: se dois arquivos dentro de um escopo declaram o mesmo nome, Claude Code mantém um e descarta o outro sem aviso.

180 

181Diretórios `agents/` de plugin também são verificados recursivamente. Diferentemente dos escopos de projeto e usuário, uma subpasta dentro do diretório `agents/` de um plugin se torna parte do [identificador com escopo](#invoke-subagents-explicitly): um arquivo em `agents/review/security.md` no plugin `my-plugin` se registra como `my-plugin:review:security`.

182 

181**Subagentes definidos por CLI** são passados como JSON ao iniciar Claude Code. Eles existem apenas para essa sessão e não são salvos em disco, tornando-os úteis para testes rápidos ou scripts de automação. Você pode definir múltiplos subagentes em uma única chamada `--agents`:183**Subagentes definidos por CLI** são passados como JSON ao iniciar Claude Code. Eles existem apenas para essa sessão e não são salvos em disco, tornando-os úteis para testes rápidos ou scripts de automação. Você pode definir múltiplos subagentes em uma única chamada `--agents`:

182 184 

183<Tabs>185<Tabs>


638 640 

639Sua mensagem completa ainda vai para Claude, que escreve o prompt de tarefa do subagente baseado no que você pediu. O @-mention controla qual subagente Claude invoca, não qual prompt ele recebe.641Sua mensagem completa ainda vai para Claude, que escreve o prompt de tarefa do subagente baseado no que você pediu. O @-mention controla qual subagente Claude invoca, não qual prompt ele recebe.

640 642 

641Subagentes fornecidos por um [plugin](/pt/plugins) habilitado aparecem no typeahead como `<plugin-name>:<agent-name>`. Subagentes em background nomeados atualmente em execução na sessão também aparecem no typeahead, mostrando seu status ao lado do nome. Você também pode digitar a menção manualmente sem usar o picker: `@agent-<name>` para subagentes locais, ou `@agent-<plugin-name>:<agent-name>` para subagentes de plugin.643Subagentes fornecidos por um [plugin](/pt/plugins) habilitado aparecem no typeahead sob seu nome com escopo, como `my-plugin:code-reviewer` ou `my-plugin:review:security` quando o plugin [organiza agentes em subpastas](#choose-the-subagent-scope). Subagentes em background nomeados atualmente em execução na sessão também aparecem no typeahead, mostrando seu status ao lado do nome. Você também pode digitar a menção manualmente sem usar o picker: `@agent-<name>` para subagentes locais, ou `@agent-` seguido pelo nome com escopo para subagentes de plugin, por exemplo `@agent-my-plugin:code-reviewer`.

642 644 

643**Execute toda a sessão como um subagente.** Passe [`--agent <name>`](/pt/cli-reference) para iniciar uma sessão onde a thread principal em si assume o prompt de sistema, restrições de ferramentas e modelo do subagente:645**Execute toda a sessão como um subagente.** Passe [`--agent <name>`](/pt/cli-reference) para iniciar uma sessão onde a thread principal em si assume o prompt de sistema, restrições de ferramentas e modelo do subagente:

644 646 


650 652 

651Isso funciona com subagentes integrados e personalizados, e a escolha persiste quando você retoma a sessão.653Isso funciona com subagentes integrados e personalizados, e a escolha persiste quando você retoma a sessão.

652 654 

653Para um subagente fornecido por plugin, passe o nome com escopo: `claude --agent <plugin-name>:<agent-name>`.655Para um subagente fornecido por plugin, passe o nome com escopo: `claude --agent <plugin-name>:<agent-name>`. Se o plugin coloca o agente em uma subpasta de seu diretório `agents/`, inclua a subpasta no nome com escopo, por exemplo `claude --agent my-plugin:review:security`.

654 656 

655Para torná-lo o padrão para cada sessão em um projeto, defina `agent` em `.claude/settings.json`:657Para torná-lo o padrão para cada sessão em um projeto, defina `agent` em `.claude/settings.json`:

656 658 

Details

16 16 

17O ditado por voz transmite seu áudio gravado para os servidores da Anthropic para transcrição. O áudio não é processado localmente. O serviço de fala para texto está disponível apenas quando você se autentica com uma conta Claude.ai e não está disponível quando Claude Code está configurado para usar uma chave API da Anthropic diretamente, Amazon Bedrock, Google Vertex AI ou Microsoft Foundry. A transcrição não consome mensagens Claude ou tokens e não conta para os limites mostrados em `/usage`. Consulte [data usage](/pt/data-usage) para saber como a Anthropic lida com seus dados.17O ditado por voz transmite seu áudio gravado para os servidores da Anthropic para transcrição. O áudio não é processado localmente. O serviço de fala para texto está disponível apenas quando você se autentica com uma conta Claude.ai e não está disponível quando Claude Code está configurado para usar uma chave API da Anthropic diretamente, Amazon Bedrock, Google Vertex AI ou Microsoft Foundry. A transcrição não consome mensagens Claude ou tokens e não conta para os limites mostrados em `/usage`. Consulte [data usage](/pt/data-usage) para saber como a Anthropic lida com seus dados.

18 18 

19O ditado por voz também precisa de acesso local ao microfone, portanto não funciona em ambientes remotos como [Claude Code na web](/pt/claude-code-on-the-web) ou sessões SSH. No WSL, o ditado por voz requer WSLg para acesso de áudio, que está incluído no WSL2 no Windows 11. No Windows 10 ou WSL1, execute Claude Code no Windows nativo.19O ditado por voz também precisa de acesso local ao microfone, portanto não funciona em ambientes remotos como [Claude Code na web](/pt/claude-code-on-the-web) ou sessões SSH. No WSL, o ditado por voz requer WSLg para acesso de áudio. WSLg está incluído no WSL2 quando instalado na Microsoft Store no Windows 10 ou 11. Se WSLg não estiver disponível, por exemplo no WSL1, execute Claude Code no Windows nativo.

20 20 

21A gravação de áudio usa um módulo nativo integrado no macOS, Linux e Windows. No Linux, se o módulo nativo não conseguir carregar, Claude Code volta para `arecord` do ALSA utils ou `rec` do SoX. Se nenhum estiver disponível, `/voice` imprime um comando de instalação para seu gerenciador de pacotes.21A gravação de áudio usa um módulo nativo integrado no macOS, Linux e Windows. No Linux, se o módulo nativo não conseguir carregar, Claude Code volta para `arecord` do ALSA utils ou `rec` do SoX. Se nenhum estiver disponível, `/voice` imprime um comando de instalação para seu gerenciador de pacotes.

22 22 


51}51}

52```52```

53 53 

54Enquanto o ditado por voz está ativado, o rodapé de entrada mostra uma dica `hold Space to speak` quando o prompt está vazio. O texto da dica é o mesmo em ambos os modos e não aparece se você tiver um [status line personalizado](/pt/statusline) configurado.54Enquanto o ditado por voz está ativado, o rodapé de entrada mostra uma dica `hold Space to speak` quando o prompt está vazio. A dica reflete sua vinculação `voice:pushToTalk` atual e é atualizada se você [reassociar a tecla de ditado](#rebind-the-dictation-key). O texto da dica é o mesmo em ambos os modos e não aparece se você tiver um [status line personalizado](/pt/statusline) configurado.

55 55 

56A transcrição é ajustada para vocabulário de codificação em ambos os modos. Termos de desenvolvimento comuns como `regex`, `OAuth`, `JSON` e `localhost` são reconhecidos corretamente, e o nome do seu projeto atual e o nome da ramificação git são adicionados automaticamente como dicas de reconhecimento.56A transcrição é ajustada para vocabulário de codificação em ambos os modos. Termos de desenvolvimento comuns como `regex`, `OAuth`, `JSON` e `localhost` são reconhecidos corretamente, e o nome do seu projeto atual e o nome da ramificação git são adicionados automaticamente como dicas de reconhecimento.

57 57 


155* **`Voice mode requires a Claude.ai account`**: você está autenticado com uma chave API ou um provedor de terceiros. Execute `/login` para entrar com uma conta Claude.ai.155* **`Voice mode requires a Claude.ai account`**: você está autenticado com uma chave API ou um provedor de terceiros. Execute `/login` para entrar com uma conta Claude.ai.

156* **`Microphone access is denied`**: conceda permissão de microfone ao seu terminal nas configurações do sistema. No macOS, vá para Configurações do Sistema → Privacidade e Segurança → Microfone e ative seu aplicativo de terminal, depois execute `/voice` novamente. No Windows, vá para Configurações → Privacidade e segurança → Microfone e ative o acesso ao microfone para aplicativos de desktop, depois execute `/voice` novamente. Se seu terminal não estiver listado nas configurações de Microfone do macOS, consulte [Terminal not listed in macOS Microphone settings](#terminal-not-listed-in-macos-microphone-settings).156* **`Microphone access is denied`**: conceda permissão de microfone ao seu terminal nas configurações do sistema. No macOS, vá para Configurações do Sistema → Privacidade e Segurança → Microfone e ative seu aplicativo de terminal, depois execute `/voice` novamente. No Windows, vá para Configurações → Privacidade e segurança → Microfone e ative o acesso ao microfone para aplicativos de desktop, depois execute `/voice` novamente. Se seu terminal não estiver listado nas configurações de Microfone do macOS, consulte [Terminal not listed in macOS Microphone settings](#terminal-not-listed-in-macos-microphone-settings).

157* **`No audio recording tool found` no Linux**: o módulo de áudio nativo não conseguiu carregar e nenhum fallback está instalado. Instale SoX com o comando mostrado na mensagem de erro, por exemplo `sudo apt-get install sox`.157* **`No audio recording tool found` no Linux**: o módulo de áudio nativo não conseguiu carregar e nenhum fallback está instalado. Instale SoX com o comando mostrado na mensagem de erro, por exemplo `sudo apt-get install sox`.

158* **`Voice mode could not find a working audio recorder in WSL`**: WSLg roteia áudio através do PulseAudio em vez de um dispositivo ALSA, portanto SoX precisa que seu backend PulseAudio esteja instalado explicitamente. Execute `sudo apt install sox libsox-fmt-pulse`. Instalar apenas `sox` puxa o backend ALSA, que não consegue gravar no WSL porque não há nenhum dispositivo `/dev/snd`.

159* **`Voice input is failing repeatedly and has been paused`**: o ditado por voz atingiu várias falhas de inicialização seguidas e parou de tentar novas sessões até que uma tenha sucesso. Isso geralmente significa que o microfone ou a pilha de áudio neste host não consegue capturar áudio, por exemplo um servidor sem cabeça, um shell remoto sem passagem de áudio, ou uma permissão de microfone negada. Confirme um dispositivo de entrada funcionando, corrija a causa subjacente das entradas acima, depois dispare a voz novamente.

158* **Nada acontece ao manter `Space` pressionado no modo de manutenção**: observe a entrada do prompt enquanto você mantém. Se espaços continuarem se acumulando, o ditado por voz provavelmente está desativado; execute `/voice hold` para ativá-lo. Se apenas um ou dois espaços aparecerem e depois nada, o ditado por voz está ativado mas a detecção de manutenção não está sendo acionada. A detecção de manutenção requer que seu terminal envie eventos de repetição de tecla, portanto não pode detectar uma tecla mantida se a repetição de tecla estiver desativada no nível do SO. Mude para o modo de toque com `/voice tap` para evitar o requisito de repetição de tecla.160* **Nada acontece ao manter `Space` pressionado no modo de manutenção**: observe a entrada do prompt enquanto você mantém. Se espaços continuarem se acumulando, o ditado por voz provavelmente está desativado; execute `/voice hold` para ativá-lo. Se apenas um ou dois espaços aparecerem e depois nada, o ditado por voz está ativado mas a detecção de manutenção não está sendo acionada. A detecção de manutenção requer que seu terminal envie eventos de repetição de tecla, portanto não pode detectar uma tecla mantida se a repetição de tecla estiver desativada no nível do SO. Mude para o modo de toque com `/voice tap` para evitar o requisito de repetição de tecla.

159* **Tocar `Space` digita um espaço em vez de gravar no modo de toque**: o primeiro toque só começa a gravar quando a entrada do prompt está vazia. Limpe a entrada primeiro, ou verifique se você está no modo de toque executando `/voice tap`.161* **Tocar `Space` digita um espaço em vez de gravar no modo de toque**: o primeiro toque só começa a gravar quando a entrada do prompt está vazia. Limpe a entrada primeiro, ou verifique se você está no modo de toque executando `/voice tap`.

160* **`No audio detected from microphone`**: a gravação começou mas capturou silêncio. Confirme que o dispositivo de entrada correto está definido como padrão do sistema e que seu nível de entrada não está mudo ou próximo a zero. No Windows, abra Configurações → Sistema → Som → Entrada e selecione seu microfone. No macOS, abra Configurações do Sistema → Som → Entrada.162* **`No audio detected from microphone`**: a gravação começou mas capturou silêncio. Confirme que o dispositivo de entrada correto está definido como padrão do sistema e que seu nível de entrada não está mudo ou próximo a zero. No Windows, abra Configurações → Sistema → Som → Entrada e selecione seu microfone. No macOS, abra Configurações do Sistema → Som → Entrada.