Fonctionnement
Claude Code définit la variable d’environnementCLAUDECODE à 1 pour chaque commande qu’elle exécute via les outils Bash et PowerShell, et pour les commandes hook. À partir de la v2.1.172, elle définit également CLAUDE_CODE_CHILD_SESSION à 1 dans ces mêmes sous-processus. Lorsque votre CLI voit l’une de ces variables, elle écrit une balise auto-fermante <claude-code-hint /> sur stderr. Dans les commandes hook, la balise d’indice est supprimée et ignorée. Seule la sortie des outils Bash et PowerShell déclenche l’invite d’installation.
Lorsque Claude Code reçoit la sortie de la commande, elle :
- Analyse les lignes d’indice et les supprime avant que la sortie n’atteigne le modèle
- Vérifie que l’indice cible un plugin dans une marketplace officielle d’Anthropic
- Vérifie que le plugin n’est pas déjà installé et n’a pas été proposé auparavant
- Affiche à l’utilisateur une invite d’installation qui nomme la commande qui a émis l’indice
Émettre l’indice
Les invites d’indice ne s’activent que pour les plugins listés dans la marketplace officielle d’Anthropic. Consultez Faire entrer votre plugin dans la marketplace officielle avant de déployer l’intégration. Conditionnez l’émission sur une variable d’environnement afin que le marqueur n’apparaisse pas lorsqu’un utilisateur humain exécute directement votre CLI, puis écrivez la balise sur stderr sur sa propre ligne. Choisissez la variable à vérifier :CLAUDECODE: définie sur chaque version de Claude Code, elle atteint donc le plus de sessions. Elle est également définie dans les sessions tmux et les sous-processus du serveur MCP stdio que Claude Code démarre. Les extensions IDE la définissent également dans leurs terminaux intégrés, où un utilisateur humain peut exécuter directement votre CLI.CLAUDE_CODE_CHILD_SESSION: définie uniquement dans les sous-processus que Claude Code lui-même génère, tels que les appels d’outils, les commandes hook et les commandes de ligne d’état, de sorte que la balise n’atteint normalement pas un terminal humain. Un processus de longue durée qui a été démarré à l’intérieur d’une session, tel qu’un serveur tmux, capture la variable, de sorte que les shells lancés ultérieurement à partir de ce processus affichent toujours la balise brute. Nécessite Claude Code v2.1.172 ou version ultérieure, de sorte que les sessions sur les versions antérieures manquent l’indice.
CLAUDECODE pour une portée maximale et émettent un indice pour un plugin nommé example-cli dans la marketplace officielle :
example-cli par le nom de votre plugin dans la marketplace officielle.
Choisir où émettre
Vous contrôlez les chemins de code qui émettent l’indice. Claude Code déduplique par plugin, donc émettre à chaque invocation n’a aucun inconvénient. Les points de contact qui fonctionnent bien incluent :Ce que voit l’utilisateur
Lorsque l’indice passe tous les contrôles, Claude Code affiche une invite comme la suivante :- Une fois par plugin : après l’affichage de l’invite, Claude Code enregistre le plugin et ne le propose jamais plus, quel que soit la réponse de l’utilisateur.
- Une fois par session : sur tous les CLIs de la machine, au maximum une invite d’indice apparaît par session Claude Code.
Format de l’indice
L’indice est une balise auto-fermante avec trois attributs requis.
Les valeurs d’attribut peuvent être entre guillemets doubles ou sans guillemets. Les valeurs sans guillemets ne peuvent pas contenir d’espaces. Les séquences d’échappement ne sont pas prises en charge.
Exigences
Claude Code applique deux conditions avant d’agir sur un indice. Les indices qui échouent à l’un des contrôles sont supprimés :- Ligne propre : la balise doit occuper sa propre ligne. Une balise intégrée au milieu d’une ligne, par exemple à l’intérieur d’une instruction de journal, est ignorée. Les espaces blancs de début et de fin sur la ligne sont autorisés.
- Marketplace officielle : la
valuedoit référencer un plugin dans une marketplace contrôlée par Anthropic, telle queclaude-plugins-official. Les indices pointant vers d’autres marketplaces sont silencieusement supprimés.
- Écrire sur stderr : stderr garde la balise hors des pipelines shell tels que
example-cli deploy | jq. Claude Code analyse les deux flux, donc stdout fonctionne aussi. - Conditionner sur une variable d’environnement : n’émettez que lorsque
CLAUDECODEouCLAUDE_CODE_CHILD_SESSIONest défini. Consultez Émettre l’indice pour savoir comment les deux variables diffèrent.
Obtenir votre plugin dans la marketplace officielle
Le protocole d’indice ne prend effet que pour les plugins répertoriés dans la marketplace officielle d’Anthropic,claude-plugins-official. Anthropic gère cette marketplace à sa discrétion, et les formulaires de soumission intégrés à l’application ajoutent des plugins à la marketplace communautaire à la place, que le protocole d’indice ne vérifie pas. Si vous travaillez avec un contact partenaire d’Anthropic, contactez-le pour coordonner une inscription à la marketplace officielle.
Voir aussi
- Créer des plugins : créez le plugin que votre CLI recommande
- Créer et distribuer une marketplace de plugins : hébergez des plugins en dehors de la marketplace officielle
- Variables d’environnement : référence complète pour
CLAUDECODEet les variables associées