[Go to site: main page, start]

Skip to main content
Claude Code a accès à un ensemble d’outils intégrés qui l’aident à comprendre et modifier votre base de code. Les noms d’outils sont les chaînes exactes que vous utilisez dans les règles de permission spécifiques aux outils, les listes d’outils subagent, et les correspondances de hook. Pour désactiver complètement un outil, ajoutez son nom au tableau deny dans vos paramètres de permission. Pour ajouter des outils personnalisés, connectez un serveur MCP. Pour étendre Claude avec des flux de travail réutilisables basés sur des invites, écrivez une skill, qui s’exécute via l’outil Skill existant plutôt que d’ajouter une nouvelle entrée d’outil. La colonne Permission requise indique si l’outil demande une permission en mode de permission par défaut pour les chemins à l’intérieur du répertoire de travail. Les outils d’accès aux fichiers marqués Non, y compris Read, Grep, et Glob, demandent toujours une permission pour les chemins en dehors du répertoire de travail et des répertoires supplémentaires. Bash est marqué Oui mais exécute un ensemble intégré de commandes en lecture seule sans demander de permission.

Configurer les outils avec les règles de permission et les hooks

Pour la plupart, Claude décide quand utiliser ces outils et vous n’avez pas besoin de les nommer vous-même lors de l’interaction avec Claude. Vous référencez les noms d’outils directement lors de la définition des permissions et d’autres configurations : Tous ces éléments acceptent le même format de règle, ToolName(specifier). Le spécificateur dépend de l’outil, et plusieurs outils partagent un format : Les outils non listés ici, tels que ExitPlanMode ou ShareOnboardingGuide, acceptent uniquement le nom d’outil nu sans spécificateur. Une règle d’autorisation Edit(...) accorde également l’accès en lecture au même chemin, donc vous n’avez pas besoin d’une règle Read(...) correspondante. Une règle de refus Read(...) bloque également l’outil Edit sur le même chemin, y compris la création d’un nouveau fichier là-bas, car l’édition nécessite de relire le résultat. La vérification de refus Read sur les éditions nécessite Claude Code v2.1.208 ou ultérieur. Les champs matcher des hooks utilisent les noms d’outils nus, pas le format entre parenthèses. Voir motifs de correspondance pour les règles de correspondance. Pour les noms de champs que chaque outil transmet à tool_input dans les hooks, voir la référence d’entrée PreToolUse.

Comportement de l’outil Agent

L’outil Agent crée un subagent dans une fenêtre de contexte séparée. Le subagent travaille sur sa tâche de manière autonome, puis retourne un seul résultat textuel à la conversation parent. Le parent ne voit pas les appels d’outils intermédiaires ou les sorties du subagent, seulement ce résultat final. Pour limiter le nombre de tours qu’un subagent exécute, définissez maxTurns dans la définition du subagent. Le même outil Agent lance également les subagents forked quand le mode fork est activé. Un fork hérite de la conversation parent complète au lieu de commencer à zéro, s’exécute toujours en arrière-plan, et affiche toujours les invites de permission dans votre terminal. Le reste de cette section décrit les subagents nommés. Les outils qu’un subagent nommé peut utiliser dépendent des champs tools et disallowedTools dans la définition du subagent:
  • Aucun champ défini : le subagent hérite de chaque outil disponible pour le parent.
  • tools uniquement : le subagent obtient uniquement les outils listés.
  • disallowedTools uniquement : le subagent obtient chaque outil parent sauf ceux listés.
  • Les deux définis : disallowedTools a la priorité. Un outil listé dans les deux est supprimé.
Quand la liste tools d’un subagent ne résout à aucun outil du tout, par exemple parce que chaque entrée est mal orthographiée ou nomme un outil qui n’est pas disponible pour les subagents, l’outil Agent retourne une erreur listant ces entrées au lieu de lancer le subagent. Avant la v2.1.208, le subagent était lancé sans outils et pouvait retourner un résultat vide ou confus. Lancer le subagent ne demande pas lui-même la permission. Claude Code vérifie les appels d’outils du subagent par rapport à vos règles de permission au fur et à mesure qu’il s’exécute. À partir de la v2.1.198, les subagents s’exécutent en arrière-plan par défaut ; Claude en exécute un au premier plan quand il a besoin du résultat avant de continuer.
  • Les subagents au premier plan affichent les mêmes invites de permission que vous verriez dans la conversation principale, au moment où chaque appel d’outil se produit.
  • Les subagents en arrière-plan affichent les invites de permission dans votre session principale à partir de la v2.1.186. L’invite indique quel subagent demande, et appuyer sur Échap refuse cet appel d’outil unique sans arrêter le subagent. Avant la v2.1.186, les subagents en arrière-plan refusaient automatiquement tout appel d’outil qui demanderait autrement une permission et continuaient sans cet outil.
Pour limiter ce qu’un subagent peut atteindre en premier lieu, réduisez son champ tools, laissez Bash en dehors de la liste, ou définissez des règles de refus dans vos paramètres, comme décrit dans Contrôler les capacités du subagent. Pour plus d’informations sur le choix entre le premier plan et l’arrière-plan, voir Exécuter les subagents au premier plan ou en arrière-plan.

Comportement de l’outil Bash

L’outil Bash exécute chaque commande dans un processus séparé avec le comportement de persistance suivant :
  • Quand Claude exécute cd dans la session principale, le nouveau répertoire de travail persiste dans les commandes Bash ultérieures tant qu’il reste à l’intérieur du répertoire du projet ou d’un répertoire de travail supplémentaire que vous avez ajouté avec --add-dir, /add-dir, ou additionalDirectories dans les paramètres. Les sessions subagent ne reportent jamais les modifications de répertoire de travail.
    • Si cd aboutit en dehors de ces répertoires, Claude Code réinitialise au répertoire du projet et ajoute Shell cwd was reset to <dir> au résultat de l’outil.
    • Pour désactiver ce report afin que chaque commande Bash démarre dans le répertoire du projet, définissez CLAUDE_BASH_MAINTAIN_PROJECT_WORKING_DIR=1.
  • Les variables d’environnement ne persistent pas. Un export dans une commande ne sera pas disponible dans la suivante.
  • Les alias et les fonctions shell définis dans votre fichier de démarrage shell sont disponibles. Au démarrage de la session, Claude Code source ~/.zshrc, ~/.bashrc, ou ~/.profile selon votre shell, capture les alias, fonctions et options shell résultants, et les applique à chaque commande Bash.
Activez votre environnement virtualenv ou conda avant de lancer Claude Code. Pour que les variables d’environnement persistent entre les commandes Bash, définissez CLAUDE_ENV_FILE sur un script shell avant de lancer Claude Code, ou utilisez un hook SessionStart pour le remplir dynamiquement. Deux limites limitent chaque commande :
  • Délai d’expiration : deux minutes par défaut. Claude peut demander jusqu’à 10 minutes par commande avec le paramètre timeout. Remplacez la valeur par défaut et le plafond avec BASH_DEFAULT_TIMEOUT_MS et BASH_MAX_TIMEOUT_MS.
  • Longueur de sortie : 30 000 caractères par défaut. Quand une commande produit plus que cela, Claude Code enregistre la sortie complète dans un fichier du répertoire de session et donne à Claude le chemin du fichier plus un court aperçu du début. Claude lit ou recherche ce fichier quand il a besoin du reste. Augmentez la limite avec BASH_MAX_OUTPUT_LENGTH, jusqu’à un plafond dur de 150 000 caractères.
Pour les processus de longue durée tels que les serveurs de développement ou les builds de surveillance, Claude peut définir run_in_background: true pour démarrer la commande en tant que tâche en arrière-plan et continuer à travailler pendant qu’elle s’exécute. Listez et arrêtez les tâches en arrière-plan avec /tasks. En mode non interactif avec l’indicateur -p, les tâches en arrière-plan se terminent peu de temps après le résultat final de l’exécution.

Comportement de l’outil Edit

L’outil Edit effectue un remplacement de chaîne exact. Il prend un old_string et un new_string et remplace le premier par le second. Il n’utilise pas regex ou la correspondance floue. Trois vérifications doivent réussir pour qu’une modification s’applique. Avant chacune d’elles, un chemin correspondant à une règle de refus Read est refusé, y compris la création d’un nouveau fichier à cet endroit. Le refus nécessite Claude Code v2.1.208 ou ultérieur.
  • Lecture avant modification : Claude lit le fichier dans la conversation actuelle avant de le modifier, et une lecture interrompue avec un avis PARTIAL view ne compte pas. Claude Opus 4.6, Claude Haiku 4.5 et les modèles plus anciens nécessitent toujours la lecture. Les modèles plus récents peuvent modifier un fichier non lu quand la lecture ne nécessiterait pas une demande de permission et que l’outil Read est disponible.
  • Correspondance : old_string doit apparaître dans le fichier exactement comme écrit. Une seule différence de caractère d’espace ou d’indentation est suffisante pour manquer.
  • Unicité : old_string doit apparaître exactement une fois. Quand il apparaît plus d’une fois, Claude fournit soit une chaîne plus longue avec suffisamment de contexte environnant pour épingler une occurrence, soit définit replace_all: true pour les remplacer tous.
Un fichier qui a changé sur le disque après que Claude l’ait lu pour la dernière fois peut toujours être modifié quand old_string correspond exactement au contenu actuel et sans ambiguïté et que Claude Code peut lire le fichier sans demander. La correspondance avec le contenu actuel du fichier maintient cela sûr, et le résultat note que le fichier porte d’autres modifications afin que Claude le relise avant les modifications qui dépendent du contenu environnant. Dans tout autre cas, comme un old_string obsolète ou un qui correspond plus d’une fois sans replace_all, Claude lit le fichier à nouveau avant de le modifier. La gestion assouplie des fichiers non lus et modifiés nécessite Claude Code v2.1.208 ou ultérieur ; avant cela, Claude Code refusait toute modification d’un fichier qu’il n’avait pas lu dans la conversation ou qui avait changé sur le disque après la lecture. Afficher un fichier avec Bash satisfait également l’exigence de lecture avant modification quand la commande est cat, head, tail, sed -n 'X,Yp', grep, egrep, ou fgrep sur un seul fichier sans pipes ou redirections. La sortie piped et d’autres commandes Bash ne comptent pas vers la vérification de lecture avant modification. Cela affecte uniquement l’éligibilité à la modification, pas les permissions. Les règles de refus Read et Edit s’appliquent également aux commandes de fichiers que Claude Code reconnaît dans Bash, telles que cat, head, tail, sed, et grep, mais pas aux sous-processus arbitraires qui lisent ou écrivent des fichiers indirectement, comme un script Python ou Node qui ouvre des fichiers lui-même. L’ensemble des commandes reconnues pour les règles de refus n’est pas le même que la liste de lecture avant modification ci-dessus : par exemple, egrep et fgrep comptent pour la lecture avant modification mais ne sont pas vérifiés par rapport aux règles de refus Read. Pour l’application au niveau du système d’exploitation qui couvre chaque processus, activez le sandbox.

Comportement de l’outil Glob

L’outil Glob trouve des fichiers par motif de nom. Il supporte la syntaxe glob standard incluant ** pour la correspondance de répertoire récursive :
  • **/*.js correspond à tous les fichiers .js à n’importe quelle profondeur
  • src/**/*.ts correspond à tous les fichiers .ts sous src/
  • *.{json,yaml} correspond aux fichiers .json et .yaml dans le répertoire actuel
Les résultats sont triés par heure de modification et limités à 100 fichiers. Si la limite est atteinte, Claude voit un drapeau de troncature dans le résultat et peut affiner le motif. Glob ne respecte pas .gitignore par défaut, donc il trouve les fichiers gitignorés aux côtés des fichiers suivis. Cela diffère de Grep, qui ignore les fichiers gitignorés. Pour faire respecter .gitignore à Glob, définissez CLAUDE_CODE_GLOB_NO_IGNORE=false avant de lancer Claude Code. Une valeur pattern ou path qui contient un octet nul retourne une erreur demandant à Claude de la supprimer.

Comportement de l’outil Grep

L’outil Grep recherche des motifs dans le contenu des fichiers. Où Glob trouve des fichiers par nom, Grep trouve des lignes à l’intérieur d’eux. Grep est construit sur ripgrep et utilise la syntaxe regex de ripgrep, pas grep POSIX. Les motifs qui incluent des métacaractères regex ont besoin d’échappement. Par exemple, trouver interface{} dans le code Go prend le motif interface\{\}. Un motif, un glob, ou un type de fichier que ripgrep rejette retourne une erreur qui inclut le diagnostic de ripgrep, afin que Claude puisse corriger l’entrée et rechercher à nouveau. Avant la v2.1.208, Claude Code signalait une entrée rejetée comme No files found au lieu d’une erreur, même lorsque le texte recherché existait dans les fichiers cibles. Trois modes de sortie contrôlent ce qui revient :
  • files_with_matches : chemins de fichiers uniquement, pas de contenu de ligne. C’est la valeur par défaut.
  • content : lignes correspondantes avec numéro de fichier et de ligne.
  • count : nombre de correspondances par fichier, suivi d’un total sur tous les fichiers correspondants. Le total couvre chaque correspondance même lorsque les paramètres head_limit ou offset de l’outil tronquent les entrées par fichier listées. Avant la v2.1.208, le total ne sommait que les entrées listées.
Claude peut limiter les résultats par fichier avec le paramètre glob, tel que **/*.tsx, ou par langage avec le paramètre type, tel que py ou rust. Par défaut, les motifs correspondent dans une seule ligne. Claude peut définir multiline: true pour correspondre à travers les limites de ligne. Grep respecte .gitignore, donc les fichiers gitignorés sont ignorés. Pour rechercher un fichier gitignore, Claude transmet son chemin directement.

Comportement de l’outil LSP

L’outil LSP donne à Claude l’intelligence du code à partir d’un serveur de langage en cours d’exécution. Après chaque modification de fichier, il signale automatiquement les erreurs de type et les avertissements afin que Claude puisse corriger les problèmes sans une étape de compilation séparée. Claude peut également l’appeler directement pour naviguer dans le code :
  • Accéder à la définition d’un symbole
  • Trouver toutes les références à un symbole
  • Obtenir les informations de type à une position
  • Lister les symboles dans un fichier
  • Rechercher un symbole par nom dans l’espace de travail
  • Trouver les implémentations d’une interface
  • Tracer les hiérarchies d’appels
L’outil est inactif jusqu’à ce que vous installiez un plugin d’intelligence du code pour votre langage. Le plugin regroupe la configuration du serveur de langage, et vous installez le binaire du serveur séparément.

Outil Monitor

L’outil Monitor permet à Claude de surveiller quelque chose en arrière-plan et de réagir quand cela change, sans mettre en pause la conversation. Demandez à Claude de :
  • Suivre un fichier journal et signaler les erreurs au fur et à mesure qu’elles apparaissent
  • Interroger une PR ou un travail CI et signaler quand son statut change
  • Surveiller un répertoire pour les modifications de fichiers
  • Suivre la sortie de tout script de longue durée que vous lui pointez
  • Se connecter à un flux WebSocket et signaler chaque message à son arrivée
Pour la plupart des surveillances, Claude écrit un petit script, l’exécute en arrière-plan, et reçoit chaque ligne de sortie à son arrivée. Pour un serveur qui pousse déjà des événements, Claude peut ouvrir une connexion WebSocket au lieu d’exécuter un script. Vous continuez à travailler dans la même session et Claude intervient quand un événement arrive. Arrêtez une surveillance en demandant à Claude de l’annuler ou en terminant la session. Quand Monitor exécute une commande, il utilise les mêmes règles de permission que Bash, donc les motifs allow et deny que vous avez définis pour Bash s’appliquent ici aussi. La source WebSocket a sa propre invite d’approbation. L’outil n’est pas disponible sur Amazon Bedrock, Google Cloud’s Agent Platform, ou Microsoft Foundry. Il n’est également pas disponible quand DISABLE_TELEMETRY ou CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC est défini. Les plugins peuvent déclarer des moniteurs qui démarrent automatiquement quand le plugin est actif, au lieu de demander à Claude de les démarrer. Voir moniteurs de plugin.

Source WebSocket

La source WebSocket nécessite Claude Code v2.1.195 ou version ultérieure.
Quand un serveur pousse déjà des événements sur un WebSocket, Claude peut s’y connecter directement au lieu d’écrire un script d’interrogation. Chaque type d’activité de socket devient soit un événement, soit termine la surveillance :
  • Messages texte : chacun devient un événement, même quand le message s’étend sur plusieurs lignes.
  • Messages binaires : non transmis. Claude reçoit une ligne d’espace réservé telle que [binary frame, 512 bytes] à la place.
  • Messages plus grands que 1 MiB : la surveillance se termine, donc abonnez-vous à un flux filtré où il en existe un.
  • Fermeture de socket : la surveillance se termine et Claude reçoit le code de fermeture.
Une surveillance WebSocket prend une entrée ws à la place de command, et un seul appel Monitor ne peut pas combiner les deux. L’entrée ws a deux champs : Les entrées timeout_ms et persistent se comportent de la même manière que pour une commande : la surveillance se termine à l’échéance sauf si persistent est défini, et TaskStop l’annule plus tôt. L’ouverture d’un WebSocket demande une approbation, et l’invite n’offre pas d’option pour ignorer les futures invites pour le même hôte. Claude Code refuse les URL qui pointent vers une adresse privée, link-local, ou de métadonnées cloud, y compris les noms d’hôte qui se résolvent en une. Il refuse également les hôtes dans sandbox.network.deniedDomains, et quand allowManagedDomainsOnly est défini dans les paramètres gérés, tout hôte en dehors de la liste d’autorisation gérée.

Comportement de l’outil NotebookEdit

NotebookEdit modifie un notebook Jupyter une cellule à la fois, ciblant les cellules par leur cell_id. Il n’effectue pas de remplacement de chaîne à travers le notebook comme le fait Edit sur les fichiers simples. Trois modes de modification contrôlent ce qui arrive à la cellule cible :
  • replace : remplace la source de la cellule. C’est la valeur par défaut.
  • insert : ajoute une nouvelle cellule après la cible. Sans cell_id, la nouvelle cellule va au début du notebook. Nécessite que cell_type soit défini à code ou markdown.
  • delete : supprime la cellule cible.
Les règles de permission utilisent le format de chemin Edit(...). Une règle comme Edit(notebooks/**) couvre les appels NotebookEdit sur les fichiers dans ce répertoire.

Outil PowerShell

L’outil PowerShell permet à Claude d’exécuter des commandes PowerShell nativement. Sur Windows, cela signifie que les commandes s’exécutent dans PowerShell au lieu d’être acheminées via Git Bash. La disponibilité de l’outil dépend de votre plateforme :
  • Windows sans Git Bash : l’outil est activé automatiquement.
  • Windows avec Git Bash installé : l’outil est en déploiement progressif.
  • Linux, macOS et WSL : l’outil est opt-in.

Activer l’outil PowerShell

Définissez CLAUDE_CODE_USE_POWERSHELL_TOOL=1 dans votre environnement ou dans settings.json :
Sur Windows, définissez la variable à 0 pour refuser le déploiement. Sur Linux, macOS et WSL, l’outil nécessite PowerShell 7 ou version ultérieure : installez pwsh et assurez-vous qu’il est sur votre PATH. Sur Windows, Claude Code détecte automatiquement pwsh.exe pour PowerShell 7+ avec un repli sur powershell.exe pour PowerShell 5.1. Lorsque l’outil est activé, Claude traite PowerShell comme le shell principal. L’outil Bash reste disponible pour les scripts POSIX lorsque Git Bash est installé. Claude Code lance PowerShell avec -ExecutionPolicy Bypass au niveau du processus uniquement, de sorte que les scripts .ps1 et les importations de modules fonctionnent sur les installations Windows par défaut sans modifier la politique de la machine. Le contournement au niveau du processus ne remplace pas la politique de groupe MachinePolicy ou UserPolicy, de sorte que les verrouillages d’entreprise s’appliquent toujours. Pour respecter la politique d’exécution effective de la machine à la place, définissez CLAUDE_CODE_POWERSHELL_RESPECT_EXECUTION_POLICY=1.

Sélection du shell dans les paramètres, les hooks et les skills

Trois paramètres supplémentaires contrôlent où PowerShell est utilisé :
  • "defaultShell": "powershell" dans settings.json : achemine les commandes interactives ! via PowerShell. Nécessite que l’outil PowerShell soit activé.
  • "shell": "powershell" sur les hooks de commande individuels : exécute ce hook dans PowerShell. Les hooks lancent PowerShell directement, donc cela fonctionne indépendamment de CLAUDE_CODE_USE_POWERSHELL_TOOL.
  • shell: powershell dans le frontmatter de skill : exécute les blocs !`command` dans PowerShell. Nécessite que l’outil PowerShell soit activé.
Le même comportement de réinitialisation du répertoire de travail de la session principale décrit dans la section de l’outil Bash s’applique aux commandes PowerShell, y compris la variable d’environnement CLAUDE_BASH_MAINTAIN_PROJECT_WORKING_DIR. À partir de la v2.1.196, l’outil PowerShell correspond à la gestion des codes de sortie de recherche et de diff de l’outil Bash. Le code de sortie 1 de grep, egrep, fgrep et git grep signifie aucune correspondance, et le code de sortie 1 de git diff signifie que des différences existent, de sorte que ces résultats ne sont pas signalés à Claude comme des échecs de commande.

Limitations de l’aperçu

L’outil PowerShell a les limitations connues suivantes pendant l’aperçu :
  • Les profils PowerShell ne sont pas chargés
  • Sur Windows, le sandboxing n’est pas pris en charge

Comportement de l’outil Read

L’outil Read prend un chemin de fichier et retourne le contenu avec les numéros de ligne. Claude est instruit de toujours transmettre les chemins absolus. Par défaut, Read retourne le fichier depuis le début. Lorsqu’une lecture de fichier complet dépasse la limite de jetons, Read retourne la première page avec un avis PARTIAL view qui indique à Claude quelle quantité du fichier il a reçue et comment lire plus avec offset et limit. Une lecture qui transmet un offset ou limit explicite et dépasse toujours la limite de jetons retourne une erreur. Une lecture avec un limit explicite s’arrête dès que les lignes sélectionnées dépassent ce que la limite de jetons pourrait jamais contenir et retourne une erreur sans charger le reste de la plage. L’erreur indique à Claude d’utiliser un limit plus petit, ou de rechercher du contenu spécifique avec Grep à la place lorsqu’une seule ligne est aussi grande. Avant la v2.1.208, Claude Code chargeait toute la plage en mémoire avant de la rejeter, donc un fichier avec une seule ligne extrêmement longue pouvait épuiser la mémoire. La lecture d’un fichier vide retourne un avis indiquant que le fichier existe mais que son contenu est vide, et un offset au-delà de la dernière ligne retourne un avis donnant le nombre de lignes du fichier. Avant la v2.1.208, la lecture d’un fichier vide retournait l’avis de fin de fichier à la place. Read gère plusieurs types de fichiers au-delà du texte simple :
  • Images : PNG, JPG et autres formats d’image sont retournés en tant que contenu visuel que Claude peut voir, pas en tant que bytes bruts. Claude Code redimensionne et récompresse les grandes images pour s’adapter aux limites de taille d’image du modèle avant de les envoyer, donc Claude peut voir une version réduite d’une grande capture d’écran. À partir de la v2.1.196, une image qui est toujours plus grande que 500 KB après ce redimensionnement est réencodée en JPEG à qualité réduite avec ses dimensions de pixels inchangées. Si Claude manque les détails au niveau des pixels fins dans une grande image, demandez-lui de recadrer d’abord la région d’intérêt, par exemple avec ImageMagick via Bash.
  • PDFs : Claude lit les fichiers .pdf courts en entier. Pour les PDFs plus longs que 10 pages, il lit par plages avec un paramètre pages, tel que "1-5", jusqu’à 20 pages à la fois.
  • Notebooks Jupyter : les fichiers .ipynb retournent toutes les cellules avec leurs sorties, y compris le code, le markdown et les visualisations.
Read ne lit que les fichiers, pas les répertoires. Claude utilise ls via l’outil Bash pour lister le contenu des répertoires.

Comportement de l’outil WebFetch

WebFetch prend une URL et une invite décrivant ce qu’il faut extraire. Il récupère la page, convertit la réponse en Markdown quand le serveur retourne du HTML, et exécute l’invite contre le contenu en utilisant un petit modèle rapide. Pour la plupart des récupérations, Claude reçoit la réponse de ce modèle, pas la page brute. L’étape de conversion n’est pas configurable. Cela rend WebFetch lossy par conception. L’invite d’extraction détermine ce qui atteint Claude, donc un résultat qui dit qu’une page ne mentionne pas quelque chose peut seulement signifier que l’invite ne l’a pas demandé. Demandez à Claude de récupérer à nouveau avec une invite plus spécifique, ou utilisez curl via Bash pour la page non traitée. Quelques comportements façonnent la réponse que Claude reçoit :
  • Les URLs HTTP sont automatiquement mises à niveau vers HTTPS.
  • Les grandes pages sont tronquées à une limite de caractères fixe avant le traitement.
  • Les réponses sont mises en cache pendant 15 minutes, donc les récupérations répétées de la même URL retournent rapidement.
  • Quand une URL redirige vers un hôte différent, WebFetch retourne un résultat textuel qui nomme l’URL d’origine et la cible de redirection au lieu de la suivre. Claude récupère ensuite la nouvelle URL avec un deuxième appel WebFetch.
Dans les modes de permission par défaut et acceptEdits, WebFetch demande la première fois qu’il atteint un nouveau domaine, sauf pour un ensemble intégré de domaines de documentation préapprouvés qui récupèrent sans demande. Pour autoriser un autre domaine à l’avance sans demande, ajoutez une règle de permission comme WebFetch(domain:example.com). Les modes de permission auto et bypassPermissions permission modes ignorent complètement la demande. Une règle explicite WebFetch(domain:...) en mode deny, ask ou allow prend la priorité sur l’ensemble préapprouvé, donc vous pouvez bloquer un domaine préapprouvé ou exiger une demande pour celui-ci. WebFetch définit un en-tête User-Agent commençant par Claude-User, et un en-tête Accept qui préfère Markdown à HTML afin que les serveurs qui supportent la négociation de contenu puissent retourner Markdown directement. Vous configurez les règles de réseau sandbox séparément, donc un domaine que vous voulez qu’un processus sandboxé atteigne a toujours besoin d’une règle de permission sandbox explicite.

Comportement de l’outil WebSearch

WebSearch exécute une requête contre le backend de recherche web d’Anthropic et retourne les titres et URLs des résultats. Il ne récupère pas les pages de résultats. Pour lire une page que Claude trouve dans les résultats de recherche, il suit avec WebFetch. L’outil peut émettre jusqu’à huit recherches backend par appel, affinage de la recherche en interne avant de retourner les résultats. Claude peut limiter les résultats avec allowed_domains pour inclure uniquement certains hôtes, ou blocked_domains pour les exclure. Les deux listes ne peuvent pas être combinées dans un seul appel. Le backend de recherche n’est pas configurable. Pour rechercher avec un fournisseur différent, ajoutez un serveur MCP qui expose un outil de recherche. Les règles de permission WebSearch ne prennent pas de spécificateur. Une entrée WebSearch nu dans allow ou deny est la seule forme.
WebSearch est disponible sur l’API Claude, Claude Platform on AWS, et Microsoft Foundry. Sur Google Cloud’s Agent Platform, il fonctionne avec les modèles Claude 4 et versions ultérieures, y compris Opus, Sonnet et Haiku. Amazon Bedrock n’expose pas l’outil de recherche web côté serveur.

Comportement de l’outil Write

L’outil Write crée un nouveau fichier ou remplace un fichier existant avec le contenu complet fourni. Il n’ajoute pas ou ne fusionne pas. Si le chemin cible existe déjà, Claude doit avoir lu ce fichier au moins une fois dans la conversation actuelle avant de le remplacer. Une Write vers un fichier existant non lu échoue avec une erreur. Cette contrainte ne s’applique pas aux nouveaux fichiers. Afficher le fichier avec Bash satisfait également cette exigence selon les mêmes règles décrites dans comportement de l’outil Edit. Pour les modifications partielles d’un fichier existant, Claude utilise Edit au lieu de Write.

Vérifier quels outils sont disponibles

Votre ensemble d’outils exact dépend de votre fournisseur, de votre plateforme et de vos paramètres. Pour vérifier ce qui est chargé dans une session en cours d’exécution, demandez directement à Claude :
Claude donne un résumé conversationnel. Pour les noms d’outils MCP exacts, exécutez /mcp.
L’outil advisor est un outil serveur que l’API exécute, plutôt qu’un outil que Claude Code implémente. Il n’a pas de nom que vous pouvez référencer dans les règles de permission ou les correspondances de hook.

Voir aussi

  • Serveurs MCP : ajouter des outils personnalisés en connectant des serveurs externes
  • Permissions : système de permission, syntaxe des règles, et motifs spécifiques aux outils
  • Subagents : configurer l’accès aux outils pour les subagents
  • Hooks : exécuter des commandes personnalisées avant ou après l’exécution des outils