Funktionsweise
Claude Code setzt dieCLAUDECODE Umgebungsvariable auf 1 für jeden Befehl, den es über die Bash- und PowerShell-Tools ausführt, und für hook-Befehle. Ab v2.1.172 setzt es auch CLAUDE_CODE_CHILD_SESSION auf 1 in denselben Subprozessen. Wenn Ihre CLI eine dieser Variablen sieht, schreibt sie ein selbstschließendes <claude-code-hint />-Tag auf stderr. Bei hook-Befehlen wird das Hinweis-Tag entfernt und ignoriert. Nur die Ausgabe von Bash- und PowerShell-Tools löst die Installationsaufforderung aus.
Wenn Claude Code die Befehlsausgabe empfängt, führt es folgende Schritte aus:
- Scannt nach Hinweiszeilen und entfernt sie, bevor die Ausgabe das Modell erreicht
- Überprüft, dass der Hinweis auf ein Plugin in einem offiziellen Anthropic-Marketplace abzielt
- Überprüft, dass das Plugin nicht bereits installiert ist und nicht zuvor aufgefordert wurde
- Zeigt dem Benutzer eine Installationsaufforderung an, die den Befehl benennt, der den Hinweis ausgegeben hat
Hint ausgeben
Hint-Prompts werden nur für Plugins ausgelöst, die im offiziellen Anthropic-Marketplace aufgelistet sind. Siehe Bringen Sie Ihr Plugin in den offiziellen Marketplace, bevor Sie die Integration bereitstellen. Geben Sie die Ausgabe basierend auf einer Umgebungsvariablen frei, damit die Markierung wahrscheinlich nicht angezeigt wird, wenn ein Mensch Ihre CLI direkt ausführt. Schreiben Sie dann das Tag auf stderr auf einer eigenen Zeile. Wählen Sie, welche Variable überprüft werden soll:CLAUDECODE: wird auf jeder Claude Code-Version gesetzt, daher erreicht es die meisten Sitzungen. Es wird auch in tmux-Sitzungen und stdio-MCP-Server-Subprozessen gesetzt, die Claude Code startet. IDE-Erweiterungen setzen es auch in ihren integrierten Terminals, wo ein Mensch Ihre CLI direkt ausführen kann.CLAUDE_CODE_CHILD_SESSION: wird nur in Subprozessen gesetzt, die Claude Code selbst startet, wie z. B. Tool-Aufrufe, Hook-Befehle und Statuszeilen-Befehle, daher erreicht das Tag normalerweise kein menschliches Terminal. Ein langlebiger Prozess, der innerhalb einer Sitzung gestartet wurde, wie z. B. ein tmux-Server, erfasst die Variable, daher zeigen Shells, die später von diesem Prozess aus gestartet werden, immer noch das rohe Tag.
CLAUDECODE für maximale Reichweite frei und geben einen Hint für ein Plugin namens example-cli im offiziellen Marketplace aus:
example-cli durch den Namen Ihres Plugins im offiziellen Marketplace.
Wählen Sie, wo Sie ausgeben
Sie kontrollieren, welche Code-Pfade den Hinweis ausgeben. Claude Code dedupliziert nach Plugin, daher hat die Ausgabe bei jeder Aufrufen keinen Nachteil. Berührungspunkte, die gut funktionieren, sind:Was der Benutzer sieht
Wenn der Hinweis alle Überprüfungen besteht, zeigt Claude Code eine Aufforderung wie die folgende an:- Einmal pro Plugin: Nachdem die Aufforderung angezeigt wurde, zeichnet Claude Code das Plugin auf und fordert es nie wieder auf, unabhängig von der Antwort des Benutzers.
- Einmal pro Sitzung: Auf allen CLIs auf dem Computer erscheint höchstens eine Hinweisaufforderung pro Claude Code-Sitzung.
- Nur in der Hauptinteraktiven Sitzung: Claude Code zeigt die Aufforderung nur in der Terminalsitzung an, in die der Benutzer tippt. Claude Code fordert nie für einen Befehl auf, den ein Subagent ausführt, und fordert nie auf, wenn der Benutzer Claude Code im nicht-interaktiven Modus mit dem Flag
-poder über das Agent SDK ausführt. Claude Code entfernt die Hinweiszeile trotzdem aus der Befehlsausgabe in allen diesen Fällen. - Telemetrie-Opt-outs: Sitzungen, in denen Analysen deaktiviert sind, zeigen nie Hinweisaufforderungen. Dies umfasst Sitzungen mit
DISABLE_TELEMETRYoderCLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFICgesetzt, und Sitzungen bei Drittanbietern wie Amazon Bedrock oder Google Cloud’s Agent Platform, wo das automatische Telemetrie-Opt-out gilt.
Hinweisformat
Der Hinweis ist ein selbstschließendes Tag mit drei erforderlichen Attributen.
Attributwerte können mit doppelten Anführungszeichen zitiert oder unzitiert gelassen werden. Unzitierte Werte können keine Leerzeichen enthalten. Escape-Sequenzen werden nicht unterstützt.
Anforderungen
Claude Code erzwingt zwei Bedingungen, bevor es auf einen Hinweis reagiert. Hinweise, die eine der beiden Überprüfungen nicht bestehen, werden verworfen:- Eigene Zeile: Das Tag muss auf seiner eigenen Zeile stehen. Ein Tag, das in der Mitte einer Zeile eingebettet ist, z. B. in einer Log-Anweisung, wird ignoriert. Führende und nachfolgende Leerzeichen auf der Zeile sind zulässig.
- Offizieller Marketplace: Der
valuemuss auf ein Plugin in einem von Anthropic kontrollierten Marketplace wieclaude-plugins-officialverweisen. Hinweise, die auf andere Marketplaces verweisen, werden stillschweigend verworfen.
- Schreiben Sie auf stderr: stderr hält das Tag aus Shell-Pipelines wie
example-cli deploy | jqheraus. Claude Code scannt beide Streams, daher funktioniert auch stdout. - Gate on an environment variable: Geben Sie nur aus, wenn
CLAUDECODEoderCLAUDE_CODE_CHILD_SESSIONgesetzt ist. Siehe Emit the hint, um zu erfahren, wie sich die beiden Variablen unterscheiden.
Bringen Sie Ihr Plugin in den offiziellen Marketplace
Das Hinweisprotokoll wird nur für Plugins wirksam, die im offiziellen Anthropic-Marketplace aufgelistet sind,claude-plugins-official. Anthropic kuratiert diesen Marketplace nach eigenem Ermessen, und die In-App-Einreichungsformulare fügen Plugins stattdessen zum Community-Marketplace hinzu, den das Hinweisprotokoll nicht überprüft. Wenn Sie mit einem Anthropic-Partner-Kontakt zusammenarbeiten, wenden Sie sich an ihn, um die Auflistung im offiziellen Marketplace zu koordinieren.
Siehe auch
- Erstellen Sie Plugins: Erstellen Sie das Plugin, das Ihre CLI empfiehlt
- Erstellen und verteilen Sie einen Plugin-Marketplace: Hosten Sie Plugins außerhalb des offiziellen Marketplace
- Umgebungsvariablen: Vollständige Referenz für
CLAUDECODEund verwandte Variablen