Installation
Fonctions
query()
La fonction principale pour interagir avec Claude Code. Crée un générateur asynchrone qui diffuse les messages au fur et à mesure de leur arrivée.
Paramètres
| Paramètre | Type | Description |
|---|---|---|
prompt | string | AsyncIterable<SDKUserMessage> | L’invite d’entrée sous forme de chaîne ou d’itérable asynchrone pour le mode de diffusion |
options | Options | Objet de configuration optionnel (voir le type Options ci-dessous) |
Retours
Retourne un objetQuery qui étend AsyncGenerator<SDKMessage, void> avec des méthodes supplémentaires.
tool()
Crée une définition d’outil MCP type-safe pour une utilisation avec les serveurs MCP du SDK.
Paramètres
| Paramètre | Type | Description |
|---|---|---|
name | string | Le nom de l’outil |
description | string | Une description de ce que fait l’outil |
inputSchema | Schema extends ZodRawShape | Schéma Zod définissant les paramètres d’entrée de l’outil |
handler | (args, extra) => Promise<CallToolResult> | Fonction asynchrone qui exécute la logique de l’outil |
createSdkMcpServer()
Crée une instance de serveur MCP qui s’exécute dans le même processus que votre application.
Paramètres
| Paramètre | Type | Description |
|---|---|---|
options.name | string | Le nom du serveur MCP |
options.version | string | Chaîne de version optionnelle |
options.tools | Array<SdkMcpToolDefinition> | Tableau de définitions d’outils créées avec tool() |
Types
Options
Objet de configuration pour la fonction query().
| Propriété | Type | Défaut | Description |
|---|---|---|---|
abortController | AbortController | new AbortController() | Contrôleur pour annuler les opérations |
additionalDirectories | string[] | [] | Répertoires supplémentaires auxquels Claude peut accéder |
agents | Record<string, [AgentDefinition](#agentdefinition)> | undefined | Définir programmatiquement les sous-agents |
allowedTools | string[] | Tous les outils | Liste des noms d’outils autorisés |
canUseTool | CanUseTool | undefined | Fonction de permission personnalisée pour l’utilisation des outils |
continue | boolean | false | Continuer la conversation la plus récente |
cwd | string | process.cwd() | Répertoire de travail actuel |
disallowedTools | string[] | [] | Liste des noms d’outils non autorisés |
env | Dict<string> | process.env | Variables d’environnement |
executable | 'bun' | 'deno' | 'node' | Détection automatique | Runtime JavaScript à utiliser |
executableArgs | string[] | [] | Arguments à passer à l’exécutable |
extraArgs | Record<string, string | null> | {} | Arguments supplémentaires |
fallbackModel | string | undefined | Modèle à utiliser si le modèle principal échoue |
forkSession | boolean | false | Lors de la reprise avec resume, créer une nouvelle session au lieu de continuer la session d’origine |
hooks | Partial<Record<HookEvent, HookCallbackMatcher[]>> | {} | Rappels de crochet pour les événements |
includePartialMessages | boolean | false | Inclure les événements de message partiel |
maxThinkingTokens | number | undefined | Nombre maximum de jetons pour le processus de réflexion |
maxTurns | number | undefined | Nombre maximum de tours de conversation |
mcpServers | Record<string, [McpServerConfig](#mcpserverconfig)> | {} | Configurations des serveurs MCP |
model | string | Défaut de la CLI | Modèle Claude à utiliser |
pathToClaudeCodeExecutable | string | Détection automatique | Chemin vers l’exécutable Claude Code |
permissionMode | PermissionMode | 'default' | Mode de permission pour la session |
permissionPromptToolName | string | undefined | Nom de l’outil MCP pour les invites de permission |
plugins | SdkPluginConfig[] | [] | Charger des plugins personnalisés à partir de chemins locaux. Voir Plugins pour plus de détails |
resume | string | undefined | ID de session à reprendre |
settingSources | SettingSource[] | [] (pas de paramètres) | Contrôler quels paramètres du système de fichiers charger. Lorsqu’omis, aucun paramètre n’est chargé. Remarque : Doit inclure 'project' pour charger les fichiers CLAUDE.md |
stderr | (data: string) => void | undefined | Rappel pour la sortie stderr |
strictMcpConfig | boolean | false | Appliquer une validation MCP stricte |
systemPrompt | string | { type: 'preset'; preset: 'claude_code'; append?: string } | undefined (invite vide) | Configuration de l’invite système. Passez une chaîne pour une invite personnalisée, ou { type: 'preset', preset: 'claude_code' } pour utiliser l’invite système de Claude Code. Lors de l’utilisation de la forme d’objet preset, ajoutez append pour étendre l’invite système avec des instructions supplémentaires |
Query
Interface retournée par la fonction query().
Méthodes
| Méthode | Description |
|---|---|
interrupt() | Interrompt la requête (disponible uniquement en mode d’entrée de diffusion) |
setPermissionMode() | Change le mode de permission (disponible uniquement en mode d’entrée de diffusion) |
AgentDefinition
Configuration pour un sous-agent défini programmatiquement.
| Champ | Requis | Description |
|---|---|---|
description | Oui | Description en langage naturel de quand utiliser cet agent |
tools | Non | Tableau des noms d’outils autorisés. S’il est omis, hérite de tous les outils |
prompt | Oui | L’invite système de l’agent |
model | Non | Remplacement du modèle pour cet agent. S’il est omis, utilise le modèle principal |
SettingSource
Contrôle quelles sources de configuration basées sur le système de fichiers le SDK charge les paramètres.
| Valeur | Description | Emplacement |
|---|---|---|
'user' | Paramètres utilisateur globaux | ~/.claude/settings.json |
'project' | Paramètres de projet partagés (contrôle de version) | .claude/settings.json |
'local' | Paramètres de projet locaux (gitignorés) | .claude/settings.local.json |
Comportement par défaut
LorsquesettingSources est omis ou undefined, le SDK ne charge pas les paramètres du système de fichiers. Cela fournit l’isolation pour les applications SDK.
Pourquoi utiliser settingSources ?
Charger tous les paramètres du système de fichiers (comportement hérité) :Précédence des paramètres
Lorsque plusieurs sources sont chargées, les paramètres sont fusionnés avec cette précédence (la plus élevée à la plus basse) :- Paramètres locaux (
.claude/settings.local.json) - Paramètres de projet (
.claude/settings.json) - Paramètres utilisateur (
~/.claude/settings.json)
agents, allowedTools) remplacent toujours les paramètres du système de fichiers.
PermissionMode
CanUseTool
Type de fonction de permission personnalisée pour contrôler l’utilisation des outils.
PermissionResult
Résultat d’une vérification de permission.
McpServerConfig
Configuration pour les serveurs MCP.
McpStdioServerConfig
McpSSEServerConfig
McpHttpServerConfig
McpSdkServerConfigWithInstance
SdkPluginConfig
Configuration pour charger des plugins dans le SDK.
| Champ | Type | Description |
|---|---|---|
type | 'local' | Doit être 'local' (seuls les plugins locaux sont actuellement supportés) |
path | string | Chemin absolu ou relatif vers le répertoire du plugin |
Types de messages
SDKMessage
Type union de tous les messages possibles retournés par la requête.
SDKAssistantMessage
Message de réponse de l’assistant.
SDKUserMessage
Message d’entrée utilisateur.
SDKUserMessageReplay
Message utilisateur rejoué avec UUID requis.
SDKResultMessage
Message de résultat final.
SDKSystemMessage
Message d’initialisation du système.
SDKPartialAssistantMessage
Message partiel de diffusion (uniquement lorsque includePartialMessages est true).
SDKCompactBoundaryMessage
Message indiquant une limite de compaction de conversation.
SDKPermissionDenial
Informations sur une utilisation d’outil refusée.
Types de crochet
HookEvent
Événements de crochet disponibles.
HookCallback
Type de fonction de rappel de crochet.
HookCallbackMatcher
Configuration de crochet avec correspondant optionnel.
HookInput
Type union de tous les types d’entrée de crochet.
BaseHookInput
Interface de base que tous les types d’entrée de crochet étendent.
PreToolUseHookInput
PostToolUseHookInput
NotificationHookInput
UserPromptSubmitHookInput
SessionStartHookInput
SessionEndHookInput
StopHookInput
SubagentStopHookInput
PreCompactHookInput
HookJSONOutput
Valeur de retour du crochet.
AsyncHookJSONOutput
SyncHookJSONOutput
Types d’entrée d’outil
Documentation des schémas d’entrée pour tous les outils Claude Code intégrés. Ces types sont exportés depuis@anthropic-ai/claude-agent-sdk et peuvent être utilisés pour les interactions d’outils type-safe.
ToolInput
Remarque : Ceci est un type de documentation uniquement pour la clarté. Il représente l’union de tous les types d’entrée d’outil.
Task
Nom de l’outil :Task
Bash
Nom de l’outil :Bash
BashOutput
Nom de l’outil :BashOutput
Edit
Nom de l’outil :Edit
Read
Nom de l’outil :Read
Write
Nom de l’outil :Write
Glob
Nom de l’outil :Glob
Grep
Nom de l’outil :Grep
KillBash
Nom de l’outil :KillBash
NotebookEdit
Nom de l’outil :NotebookEdit
WebFetch
Nom de l’outil :WebFetch
WebSearch
Nom de l’outil :WebSearch
TodoWrite
Nom de l’outil :TodoWrite
ExitPlanMode
Nom de l’outil :ExitPlanMode
ListMcpResources
Nom de l’outil :ListMcpResources
ReadMcpResource
Nom de l’outil :ReadMcpResource
Types de sortie d’outil
Documentation des schémas de sortie pour tous les outils Claude Code intégrés. Ces types représentent les données de réponse réelles retournées par chaque outil.ToolOutput
Remarque : Ceci est un type de documentation uniquement pour la clarté. Il représente l’union de tous les types de sortie d’outil.
Task
Nom de l’outil :Task
Bash
Nom de l’outil :Bash
BashOutput
Nom de l’outil :BashOutput
Edit
Nom de l’outil :Edit
Read
Nom de l’outil :Read
Write
Nom de l’outil :Write
Glob
Nom de l’outil :Glob
Grep
Nom de l’outil :Grep
KillBash
Nom de l’outil :KillBash
NotebookEdit
Nom de l’outil :NotebookEdit
WebFetch
Nom de l’outil :WebFetch
WebSearch
Nom de l’outil :WebSearch
TodoWrite
Nom de l’outil :TodoWrite
ExitPlanMode
Nom de l’outil :ExitPlanMode
ListMcpResources
Nom de l’outil :ListMcpResources
ReadMcpResource
Nom de l’outil :ReadMcpResource
Types de permission
PermissionUpdate
Opérations pour mettre à jour les permissions.
PermissionBehavior
PermissionUpdateDestination
PermissionRuleValue
Autres types
ApiKeySource
ConfigScope
NonNullableUsage
Une version de Usage avec tous les champs nullables rendus non-nullables.
Usage
Statistiques d’utilisation des jetons (depuis @anthropic-ai/sdk).
CallToolResult
Type de résultat d’outil MCP (depuis @modelcontextprotocol/sdk/types.js).
AbortError
Classe d’erreur personnalisée pour les opérations d’abandon.
Voir aussi
- Aperçu du SDK - Concepts généraux du SDK
- Référence du SDK Python - Documentation du SDK Python
- Référence CLI - Interface de ligne de commande
- Flux de travail courants - Guides étape par étape