> ## Documentation Index
> Fetch the complete documentation index at: https://docs.flexinference.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Claude Code

> Aponte o Claude Code para o FlexInference com uma chave de agente que contém o prazo.

O Claude Code se comunica com a API Anthropic Messages. Executamos essa API em `POST /v1/messages`, então uma URL base e uma chave são toda a integração.

O Claude Code não oferece um local para definir `start_within`, então o prazo é incluído na chave. Crie uma primeiro (consulte [chaves de agente](/pt/agent-keys)).

Uma duração compete com o nível mais barato do Claude em chaves gerenciadas, sem streaming, dentro de uma janela de três a dez minutos. Uma sessão interativa faz streaming, então escolha um nível aqui. Uma duração de chave ainda funciona de qualquer forma, pois ela retorna a um nível em vez de falhar. Consulte [Durações do Claude precisam de uma janela mais longa](/pt/deadline-routing).

Sua organização precisa ser capaz de executar o Anthropic antes de começar. Em suas próprias chaves, isso significa uma chave de provedor Anthropic na guia **Chaves de provedor**, porque não revendemos inferência. Em [Chaves Gerenciadas](/pt/billing), significa Anthropic ativado e financiado.

## Configure isso com um agente

Abra o bloco abaixo e copie-o para qualquer agente de codificação. O prompt nunca pede sua chave de API: o agente configura todo o resto e, em seguida, imprime a linha de exportação para você executar.

<Accordion title="Copiar prompt de configuração do agente">
  ```text theme={null}
  Configure Claude Code to send its requests to FlexInference, which serves the Anthropic Messages API.

  You will never see or handle my API key. Claude Code reads it from the `ANTHROPIC_AUTH_TOKEN` environment variable, and I export that myself. Do not ask me for the key, do not write it into any file, and do not read it from my environment.

  Ask me whether to configure this globally or for one project, then edit `~/.claude/settings.json` or `.claude/settings.json` accordingly. Create the file if it does not exist, and preserve every setting already in it.

  Add this `env` block, merging into any existing `env` rather than replacing it. Note that it carries no credential:

  {
    "env": {
      "ANTHROPIC_BASE_URL": "https://api.flexinference.com",
      "ANTHROPIC_MODEL": "claude-opus-5",
      "ANTHROPIC_SMALL_FAST_MODEL": "claude-haiku-4-5",
      "CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS": "1"
    }
  }

  Then print this line for me to run in the shell I start Claude Code from. Do not run it and do not ask for the value:

  export ANTHROPIC_AUTH_TOKEN=<paste your key here>

  Rules that matter, do not deviate:
  - `ANTHROPIC_BASE_URL` must NOT end in `/v1`. Claude Code appends `/v1/messages` itself.
  - The credential must arrive as `ANTHROPIC_AUTH_TOKEN`, never `ANTHROPIC_API_KEY`. The first sends `Authorization: Bearer`, which FlexInference requires. The second sends `x-api-key`, which it refuses with `401 missing_api_key`.
  - Both model variables must be `claude-*` slugs. Claude Code sends Anthropic-native fields such as `output_config` on every request, and FlexInference refuses to mistranslate them onto a non-Claude model.
  - `CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS` must be `"1"`. Without it Claude Code sends experimental beta fields such as `context_management`, FlexInference does not forward the `anthropic-beta` headers they need, and every request fails with `400 context_management: Extra inputs are not permitted`.
  - Do not add a retry setting. Claude Code retries on its own and my key may carry its own policy.

  Finally, tell me that Anthropic must be servable on my FlexInference organization. On BYOK that means an Anthropic provider key on the API, then Provider keys tab. On Managed Keys it means Anthropic enabled and funded. Then start a new Claude Code session and report what you changed.
  ```
</Accordion>

## Configurar o Claude Code

1. Crie ou abra `~/.claude/settings.json`. Um arquivo por projeto em `.claude/settings.json` funciona da mesma forma.
2. Adicione um bloco `env` nomeando o roteador, sua chave e ambos os modelos.

```json theme={null}
{
  "env": {
    "ANTHROPIC_BASE_URL": "https://api.flexinference.com",
    "ANTHROPIC_AUTH_TOKEN": "flex_live_...",
    "ANTHROPIC_MODEL": "claude-opus-5",
    "ANTHROPIC_SMALL_FAST_MODEL": "claude-haiku-4-5",
    "CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS": "1"
  }
}
```

3. Inicie o Claude Code.

```bash theme={null}
claude
```

Exporte as mesmas variáveis em seu shell, em vez disso, para manter o segredo fora de um arquivo.

```bash theme={null}
export ANTHROPIC_BASE_URL=https://api.flexinference.com
export ANTHROPIC_AUTH_TOKEN=flex_live_...
export CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1
```

Quatro regras fazem isso funcionar.

**Omita o sufixo `/v1`.** O Claude Code anexa `/v1/messages` à URL base por conta própria.

**Use `ANTHROPIC_AUTH_TOKEN`, nunca `ANTHROPIC_API_KEY`.** O primeiro envia `Authorization: Bearer`, que exigimos. O segundo envia `x-api-key`, que recusamos.

**Defina `CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS` como `1`.** Caso contrário, o Claude Code envia campos beta experimentais como `context_management`. Não encaminhamos os cabeçalhos `anthropic-beta` que esses campos precisam, então todas as solicitações falham.

**Defina ambas as variáveis de modelo.** O Claude Code executa um modelo grande de loop principal e um modelo pequeno de segundo plano com uma única chave. Ambos devem ser slugs `claude-*`.

## Confirmar a chave aplicada

Toda resposta vem com `x-flexinference-defaults-applied`. O Claude Code não mostra os cabeçalhos de resposta, então leia a solicitação no painel em **Logs**.

## Solução de problemas

**`400 context_management: Extra inputs are not permitted`.** O Claude Code enviou um campo beta experimental, e não encaminhamos o cabeçalho `anthropic-beta` que ele precisa. Defina `CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1` e inicie uma nova sessão. A mesma flag limpa qualquer outra recusa de `Extra inputs are not permitted` que nomeie um campo beta.

**[`401 missing_api_key`](/pt/errors#missing_api_key).** Você definiu `ANTHROPIC_API_KEY`, então o cliente enviou `x-api-key`, que não lemos. Defina `ANTHROPIC_AUTH_TOKEN` em vez disso e desdefina `ANTHROPIC_API_KEY`.

**[`400 unsupported_parameter`](/pt/errors#unsupported_parameter) nomeando `output_config`.** Uma variável de modelo aponta para um slug que não é do Claude, e o Claude Code envia campos nativos do Anthropic que nos recusamos a traduzir incorretamente. Defina ambas as variáveis de modelo para slugs `claude-*`.

**[`404 unknown_url`](/pt/errors#unknown_url) nomeando `/v1/messages/count_tokens`.** Não roteamos esse caminho. Uma execução `claude -p` nunca o chama, embora uma sessão interativa possa.

**Cada solicitação gasta um orçamento completo de nova tentativa.** O Claude Code tenta novamente por conta própria, e uma política de `retry` da chave se acumula com isso. Deixe `retry` indefinido em uma chave que este cliente usa.

Consulte [erros](/pt/errors) para cada recusa que retornamos, e [chaves de agente](/pt/agent-keys) para aquelas que não são específicas do Claude Code.
