> ## 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

> Dirigez Claude Code vers FlexInference avec une clé d'agent qui inclut la date limite.

Claude Code utilise l'API Anthropic Messages. Nous exécutons cette API sur `POST /v1/messages`, donc une URL de base et une clé constituent l'intégralité de l'intégration.

Claude Code ne vous permet pas de définir `start_within`, la date limite est donc associée à la clé. Créez-en une d'abord (voir [clés d'agent](/fr/agent-keys)).

Une durée rivalise avec le niveau moins cher de Claude sur les clés gérées, sans streaming, dans une fenêtre de trois à dix minutes. Une session interactive diffuse en continu, choisissez donc un niveau ici. Une durée de clé fonctionne toujours dans les deux cas, car elle se rabat sur un niveau plutôt que d'échouer. Voir [Les durées Claude nécessitent une fenêtre plus longue](/fr/deadline-routing).

Votre organisation doit être en mesure d'exécuter Anthropic avant de commencer. Sur vos propres clés, cela signifie une clé de fournisseur Anthropic dans l'onglet **Provider keys**, car nous ne revendons pas l'inférence. Sur les [Managed Keys](/fr/billing), cela signifie qu'Anthropic est activé et financé.

## Configurer cela avec un agent

Ouvrez le bloc ci-dessous et copiez-le dans n'importe quel agent de codage. L'invite ne vous demandera jamais votre clé API : l'agent configure tout le reste, puis affiche la ligne d'exportation unique que vous devrez exécuter vous-même.

<Accordion title="Copier l'invite de configuration de l'agent">
  ```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>

## Configurer Claude Code

1. Créez ou ouvrez `~/.claude/settings.json`. Un fichier par projet à `.claude/settings.json` fonctionne de la même manière.

2. Ajoutez un bloc `env` spécifiant le routeur, votre clé et les deux modèles.

   ```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. Démarrez Claude Code.

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

Exportez plutôt les mêmes variables dans votre shell pour éviter de stocker le secret dans un fichier.

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

Quatre règles régissent ce fonctionnement.

**Omettez le suffixe `/v1`.** Claude Code ajoute lui-même `/v1/messages` à l'URL de base.

**Utilisez `ANTHROPIC_AUTH_TOKEN`, jamais `ANTHROPIC_API_KEY`.** Le premier envoie `Authorization: Bearer`, ce que nous exigeons. Le second envoie `x-api-key`, ce que nous refusons.

**Définissez `CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS` sur `1`.** Sans cela, Claude Code envoie des champs bêta expérimentaux tels que `context_management`. Nous ne transmettons pas les en-têtes `anthropic-beta` dont ces champs ont besoin, de sorte que chaque requête échoue.

**Définissez les deux variables de modèle.** Claude Code exécute un grand modèle de boucle principale et un petit modèle d'arrière-plan avec une seule clé. Les deux doivent être des slugs `claude-*`.

## Confirmer l'application de la clé

Chaque réponse est accompagnée de `x-flexinference-defaults-applied`. Claude Code n'affiche pas les en-têtes de réponse, lisez plutôt la requête dans le tableau de bord sous **Logs**.

## Dépannage

**`400 context_management: Extra inputs are not permitted`.** Claude Code a envoyé un champ bêta expérimental, et nous ne transmettons pas l'en-tête `anthropic-beta` dont il a besoin. Définissez `CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1` et démarrez une nouvelle session. Le même drapeau efface tout autre refus `Extra inputs are not permitted` nommant un champ bêta.

**[`401 missing_api_key`](/fr/errors#missing_api_key).** Vous avez défini `ANTHROPIC_API_KEY`, donc le client a envoyé `x-api-key`, que nous ne lisons pas. Définissez plutôt `ANTHROPIC_AUTH_TOKEN` et annulez la définition de `ANTHROPIC_API_KEY`.

**[`400 unsupported_parameter`](/fr/errors#unsupported_parameter) nommant `output_config`.** Une variable de modèle pointe vers un slug non-Claude, et Claude Code envoie des champs natifs d'Anthropic que nous refusons de mal traduire. Définissez les deux variables de modèle sur des slugs `claude-*`.

**[`404 unknown_url`](/fr/errors#unknown_url) nommant `/v1/messages/count_tokens`.** Nous ne routons pas ce chemin. Une exécution `claude -p` ne l'appelle jamais, bien qu'une session interactive puisse le faire.

**Chaque requête épuise un budget de nouvelle tentative complet.** Claude Code effectue ses propres nouvelles tentatives, et une politique `retry` de clé s'y ajoute. Laissez `retry` non défini sur une clé utilisée par ce client.

Consultez [erreurs](/fr/errors) pour chaque refus que nous renvoyons, et [clés d'agent](/fr/agent-keys) pour ceux qui ne sont pas spécifiques à Claude Code.
