options que vous transmettez au démarrage. Cette page montre comment composer l’objet options et quels fichiers de paramètres et variables d’environnement le contrôlent.
Pour chaque type d’option et sa valeur par défaut, consultez les références Options (TypeScript) et ClaudeAgentOptions (Python).
Transmettre les options à une session
Chaque appelquery() accepte un objet options : Options en TypeScript, ClaudeAgentOptions en Python. Chaque champ est facultatif, et une session démarrée sans options s’exécute avec les valeurs par défaut du SDK. L’exemple ci-dessous configure une session en lecture seule qui résume les TODOs ouverts d’un projet. Les paires se lisent comme TypeScript / Python où les orthographes diffèrent :
model: choisit le modèleallowedTools/allowed_tools: pré-approuve une liste d’outils en lecture seulemaxTurns/max_turns: limite le nombre de tourscwd: définit le répertoire de travail
cwd vers l’un de vos propres projets et exécutez l’exemple. Le résumé des TODOs ouverts de ce projet s’affiche à l’arrivée du message de résultat.
allowedTools (TypeScript) ou allowed_tools (Python) pré-approuve les outils listés, de sorte que les appels à ces outils s’exécutent sans attendre d’approbation. Les outils en dehors de la liste restent disponibles. Lorsque Claude appelle un outil non listé, le mode de permission décide si l’appel s’exécute. Pour plus d’informations, consultez Règles d’autorisation et de refus.
Charger les fichiers de paramètres
Les fichiers de paramètres fournissent une configuration au-delà de l’objet options. Deux options contrôlent la façon dont ils se chargent :settingSources/setting_sources: contrôle quelles sources du système de fichiers se chargent : utilisateur, projet et local. Les fichiers de paramètres et les fichiers CLAUDE.md arrivent par ces sources.settings: charge un chemin de fichier de paramètres ou une chaîne JSON en ligne dans l’une ou l’autre langue, et TypeScript accepte également un objet de paramètres. Quelle que soit la forme que vous transmettez, elle remplace les paramètres du système de fichiers utilisateur, projet et local ; seuls les paramètres de politique gérée ont un rang plus élevé. Les références documentent l’ordre de précédence complet sous Précédence des paramètres pour TypeScript et Précédence des paramètres pour Python.
[] pour désactiver les paramètres utilisateur, projet et local. Pour plus d’informations, consultez Utiliser les fonctionnalités de Claude Code dans le SDK.
Choisir un modèle
À moins que l’optionmodel, vos paramètres ou votre environnement ne sélectionnent un modèle, une nouvelle session démarre sur le modèle par défaut de Claude Code. Pour l’ordre de ces sources, consultez Définir votre modèle. Définissez model pour épingler un modèle spécifique, ou pour en choisir un plus petit pour des agents plus rapides et moins chers. La valeur prend un alias de modèle ou un nom de modèle complet ; les alias et les versions qu’ils résolvent sont listés sous Alias de modèles.
Définissez fallbackModel (TypeScript) ou fallback_model (Python) pour nommer un modèle de secours. Lorsque le modèle principal est surchargé ou indisponible, la session bascule vers le modèle de secours. Le modèle principal est réessayé au début de chaque tour utilisateur, de sorte que la session y revient une fois la panne résolue.
Dans l’une ou l’autre langue, l’option accepte un seul modèle ou une liste de secours séparée par des virgules. Pour l’ordre et la limite de chaîne, consultez Chaînes de modèles de secours. En TypeScript, un modèle de secours égal à model lève une erreur au démarrage.
Les exemples ci-dessous montrent une liste de secours en TypeScript et un seul modèle de secours en Python :
Les paramètres de requête de l’API Messages
temperature, top_p et max_tokens n’ont pas de champs sur l’objet options dans l’une ou l’autre langue. Définissez plutôt le niveau d’effort ou un plafond de dépenses, ou appelez l’API Messages lorsque vous avez besoin de ces paramètres directement.Définir les variables d’environnement
L’optionenv définit les variables d’environnement pour le processus Claude Code qui exécute votre session. Le fait que vos valeurs remplacent l’environnement hérité ou le fusionnent diffère selon la langue :
- TypeScript :
envremplace l’environnement du sous-processus - Python : le SDK fusionne vos valeurs sur l’environnement hérité, et vos valeurs remplacent les valeurs héritées
process.env dans env pour conserver les variables héritées telles que PATH, HOME et ANTHROPIC_API_KEY. Lorsque vous laissez env non défini, le sous-processus hérite de votre environnement dans les deux langues.
L’exemple achemine le trafic API via une passerelle en définissant ANTHROPIC_BASE_URL.
Définir le répertoire de travail
Définissezcwd pour exécuter la session dans un répertoire spécifique. Lorsque vous laissez cwd non défini, la session s’exécute dans le répertoire de travail de votre processus. Aucun SDK n’a de setter pour cwd. Pour exécuter dans un répertoire différent, démarrez une autre session avec ce cwd.
Claude Code lit le répertoire de travail pour déterminer :
- Paramètres et hooks du projet : quels paramètres et hooks du projet se chargent
- Compétences : où les compétences de session sont découvertes
- Stockage de session : à quel projet une session stockée appartient
additionalDirectories (TypeScript) ou add_dirs (Python). Pour la portée de cette autorisation, consultez Les répertoires supplémentaires accordent l’accès aux fichiers, pas la configuration.
Limiter les tours et les dépenses
Limitez les tours et les dépenses avecmaxTurns / max_turns et maxBudgetUsd / max_budget_usd. Les deux limites sont désactivées lorsqu’elles ne sont pas définies. Lorsqu’une session atteint une limite, l’exécution se termine par un message de résultat dont le sous-type nomme la limite, error_max_turns ou error_max_budget_usd. Ce qui se passe ensuite diffère selon le mode d’entrée :
query()en un seul coup : le SDK produit le résultat de la limite, puis lève une exception, donc enveloppez la boucle dans un bloc try pour continuer au-delà de l’erreur- Entrée en streaming : la session reste active au-delà d’un résultat de limite, et le nombre de tours maximum recommence pour chaque message en file d’attente. Le total du budget s’accumule sur les messages, et une fois que les dépenses atteignent la limite, les messages ultérieurs dans la même conversation se terminent par le même résultat de budget. Un
/clearrecommence le budget
0 différemment :
maxTurns/max_turns:0exécute la session sans limite de tours, comme laisser l’option non définiemaxBudgetUsd/max_budget_usd: l’interface de ligne de commande rejette0comme un montant invalide au démarrage, et la session ne s’exécute jamais
Modifier la configuration en cours de session
Lorsque vous démarrez une session avec entrée en streaming, vous pouvez basculer son modèle et son mode de permission pendant qu’elle s’exécute. L’endroit où vous appelez les setters diffère selon la langue :- TypeScript : méthodes sur l’objet que
query()retourne - Python : méthodes sur
ClaudeSDKClient, puisquequery()retourne un itérateur simple sans méthodes de contrôle
setModel()/set_model(): bascule le modèle. Appelez-le sans modèle pour basculer vers le modèle par défaut de Claude Code plutôt que lemodelque vous avez transmis dans les options.setPermissionMode()/set_permission_mode(): bascule le mode de permission
applyFlagSettings() et updateSettings() :
applyFlagSettings(): applique les paramètres à l’exécution, comme dansawait session.applyFlagSettings({ effortLevel: "high" }). La méthode prend les clés du fichier de paramètres plutôt que les champs d’options, donc consultez la référenceapplyFlagSettings()pour le schéma et pour savoir quelles clés prennent effet en cours de session.updateSettings(): écrit un ensemble de clés autorisées dans le fichier de paramètres locaux du projet, comme dansawait session.updateSettings("localSettings", { outputStyle: "Explanatory" }). Les clés écrites prennent effet à la prochaine requête de la session et persistent pour les sessions ultérieures qui chargent les paramètreslocal. La ligne de la méthode dans le tableau des méthodes nomme les clés autorisées et le plancher de version.
First turn model: claude-sonnet-5, puis Second turn model: claude-opus-5 après le basculement.
Chaque modèle a son propre cache de prompt, donc après un basculement en cours de session, la prochaine requête recalcule la conversation complète sans cache aux tarifs du nouveau modèle. Pour plus d’informations, consultez Basculer les modèles.
Configurer des fonctionnalités spécifiques
Le tableau ci-dessous mappe chaque option à la fonctionnalité qu’elle configure. Pour les options que cette page ne couvre pas, consultez les références TypeScript et Python. Si vous connaissez votre objectif mais pas quelle option le sert, commencez par Choisir la bonne fonctionnalité.Étapes suivantes
Pour voir la configuration composée dans des agents fonctionnels :- Démarrage rapide : construisez et exécutez un premier agent de bout en bout
- Exemples : trouvez un projet complet et exécutable ou une recette guidée Claude Cookbook qui correspond à ce que vous voulez construire
- Isolation multi-locataire : isolez les paramètres et la mémoire de chaque locataire avec
settingSources/setting_sources,envetcwd