Die vorhandenen Hooks von Claude Code werden auch bei Ereignissen ausgeführt, als Shell-Befehl, HTTP-Anfrage oder Eingabeaufforderung, die Sie in einer Einstellungsdatei konfigurieren. Die Handler eines Mods sind Funktionen, die stattdessen in Claude Code ausgeführt werden. Claude Code ruft beide Arten von Hooks auf: Auf diesen Seiten bedeutet „Hook” einen Handler eines Mods, und die Art aus der Einstellungsdatei ist ein „Settings-Hook”.
Was ein Mod kann
Settings-Hooks, Skills, Statuszeilen und MCP-Server funktionieren außerhalb von Claude Code: Jeder führt ein Skript aus oder gibt Claude Text oder Tools. Ein Mod wird in Claude Code ausgeführt, daher kann er Dinge tun, die sie nicht können:- Eine Benutzeroberfläche zeichnen, die Sie verwenden können: ein Bereich neben dem Transkript oder ein Band über der Eingabeaufforderung mit Registerkarten, Schaltflächen und Textfeldern. Siehe In der Benutzeroberfläche zeichnen.
- Claude Codes eigene Benutzeroberfläche neu zeichnen: Ersetzen oder gestalten Sie Teile neu, die Claude Code selbst zeichnet, z. B. die Zeile eines Tool-Calls, den Spinner oder den Dialog, in dem Claude Fragen stellt. Siehe Ändern Sie, was Claude Code bereits zeichnet.
- In einen Tool-Call oder eine Anfrage einsteigen: Halten Sie beispielsweise einen Tool-Call an, während Sie den Benutzer eine Frage stellen, beantworten Sie ihn, ohne das Tool auszuführen, oder senden Sie eine Anfrage an ein anderes Modell. Siehe Einen Tool-Call schützen oder ändern und Einem Zug folgen.
- Ihren eigenen Code auf einem Befehl ausführen: ein
/command, der Ihre Funktion sofort ausführt, ohne Claude-Zug, auch während Claude arbeitet. Siehe Einen Befehl oder ein Tool hinzufügen. - Daten zwischen Hooks teilen: Die Hooks eines Mods teilen die Variablen in seiner Datei, daher kann ein anderer Hook zeigen, was ein Hook aufzeichnet. Beispielsweise kann ein Hook Tool-Calls zählen, während ein anderer die Anzahl neben dem Spinner anzeigt, oder einer kann die Token-Nutzung jeder Anfrage lesen, während ein anderer sie in einem Bereich darstellt. Siehe Auf Ereignisse reagieren.
claude -p und Cloud-Sitzungen. Wenn ein Settings-Hook, ein Skill oder ein MCP-Server bereits das tut, was Sie benötigen, vergleichen Sie sie, bevor Sie einen Mod schreiben. Um Mods für eine Organisation zu verwalten, siehe Mods für Ihre Organisation verwalten.
Einen Mod abrufen
Sie können auf eine von drei Arten mit einem Mod beginnen:- Verwenden Sie einen, den Sie bereits haben: Einige der eigenen Funktionen von Claude Code sind Mods, z. B.
/diff. Siehe In Claude Code integrierte Mods. - Erstellen Sie einen: Beschreiben Sie, was Sie in einer Claude Code-Sitzung möchten, und Claude schreibt den Mod. Siehe Claude um einen Mod bitten. Um zu erfahren, wie der Code eines Mods funktioniert, schreiben Sie selbst einen.
- Installieren Sie einen: siehe Einen Mod installieren oder aktualisieren
Einen Mod installieren oder aktualisieren
Ein Mod wird als Plugin von einem Marktplatz installiert. Geben Sie den Namen des Plugins, ein@ und den Namen des Marktplatzes an. Diese Beispiele installieren ein Plugin namens token-chart von einem Marktplatz namens your-org:
- Führen Sie in einer Claude Code-Sitzung
/plugin install token-chart@your-orgaus. - Führen Sie in Ihrer Shell
claude plugin install token-chart@your-orgaus.
/reload-plugins in dieser Sitzung aus, um ihn zu laden. Andernfalls wird er beim nächsten Start von Claude Code geladen.
Entscheiden Sie, ob Sie einem Mod vertrauen
Ein Mod ist Code, der mit Ihren Berechtigungen in Claude Code ausgeführt wird. Installieren Sie Mods nur von Autoren und Marktplätzen, denen Sie vertrauen.Was ein Mod erreichen kann
Ein Mod wird mit Ihren Berechtigungen ausgeführt, daher sollten Sie vor der Installation wissen, worauf er Zugriff hat. Nach dem Laden kann ein Mod:- Auf Ihrem Computer als Sie handeln: Dateien überall dort lesen und schreiben, wo Ihr Benutzerkonto kann, Programme starten und Netzwerkanfragen stellen
- Ihre Geheimnisse lesen: Umgebungsvariablen und Einstellungsdateien, einschließlich eines API-Schlüssels, den Sie in einem von beiden aufbewahren
- Ihre Sitzung sehen: Jede Eingabeaufforderung, die Sie senden, und jeden Tool-Call, den Claude macht
- Ihre Sitzung ändern: Schreiben Sie eine Eingabeaufforderung oder einen Tool-Call um, reichen Sie eine Eingabeaufforderung ein, als hätten Sie sie eingegeben, oder senden Sie eine Nachricht an eine andere Ihrer Sitzungen
- Ohne Sie zu fragen handeln: Genehmigen Sie einen Tool-Call, bevor Sie gefragt werden
- Ihre Nutzung ausgeben: Rufen Sie ein Modell in Ihrem Plan oder API-Schlüssel auf
ask-Regel Sie auffordert, oder den einer Ihrer eigenen PreToolUse-Hooks blockiert hat. Berechtigungen mit Hooks erweitern listet auf, was ein solcher Mod genehmigen kann, einschließlich wann er einen Anruf genehmigen kann, den eine deny-Regel ablehnt.
Ein Mod kann einen Großteil der Claude Code-Benutzeroberfläche umgestalten, aber nicht die Berechtigungsaufforderung. Es kann nicht ändern, was eine Eingabeaufforderung Ihnen zeigt.
Auflisten, was ein Mod tut, bevor Sie ihn installieren
Bevor Sie einen Mod installieren, können Sie auflisten, welche Ereignisse er verknüpft und was er Claude Code auffordert zu tun, z. B. eine Datei zu lesen oder eine Netzwerkanfrage zu stellen, ohne ihn auszuführen. Rufen Sie zuerst die Plugin-Dateien ab, z. B. durch Klonen des Repositorys. Führen Sie dann in Ihrer Shellclaude plugin validate im Verzeichnis des Plugins aus:
hooks: und calls: in der Ausgabe listen die Ereignisse auf, die der Mod verarbeitet, und was er Claude Code auffordert zu tun. Überprüfen Sie, was ein Mod tun kann zeigt die Ausgabe und welche Aufrufe zu suchen sind.
Mods aktivieren oder deaktivieren
Mods erfordern Claude Code v2.1.287 oder später, und sie sind standardmäßig aktiviert. Führen Sie in Ihrer Shellclaude --version aus, um dies zu überprüfen, und aktualisieren Sie Claude Code, wenn Ihre Version älter ist.
Um Mods zu deaktivieren, wählen Sie, wie viele Sie stoppen möchten, und für wie lange. Um sie wieder zu aktivieren, machen Sie die gleiche Änderung rückgängig:
- Ein Mod: deaktivieren oder deinstallieren Sie sein Plugin auf der Installed-Registerkarte in
/plugin - Alle installierten Mods, für eine Sitzung: starten Sie Claude Code mit
--safe-mode, was auch Ihre anderen Anpassungen ausschließt - Alle Mods, die Sie installiert haben, in jeder Sitzung: setzen Sie
"disableAllHooks": truein~/.claude/settings.json. Ihre Einstellungs-Hooks und benutzerdefinierte Statuszeile werden ebenfalls beendet. Das, was Ihre Organisation verwaltet, läuft weiter.
Wenn Sie
CLAUDE_CODE_ENABLE_FUNCTION_HOOKS während des Early Access gesetzt haben, entfernen Sie es. Claude Code v2.1.287 und später ignoriert es, daher hält das Setzen auf 0 Mods nicht aus.Sehen Sie, welche Mods eine Sitzung geladen hat
Um zu sehen, welche Mods eine Terminal-Sitzung geladen hat, führen Sie/plugin an der Claude Code-Eingabeaufforderung aus. Eine schwache Linie unter den Registerkarten gibt die Anzahl und die Namen an, z. B. 1 mod active · first-mod. Wenn ein Mod, das Sie installiert haben, dort nicht aufgeführt ist, siehe Find out why a mod does nothing.
Wie ein Mod funktioniert
Ein Mod ist ein Plugin, dessen Code Event-Handler registriert, sogenannte Hooks. Claude Code führt einen Hook aus, wenn sein Ereignis eintritt, z. B. wenn Claude ein Tool aufruft oder der Spinner gezeichnet wird. Ein kleiner Mod hat drei Dateien:plugin.json: das Manifest des Pluginshooks.json: verweist auf Ihre Code-Dateiregister.js: Ihr Code, genannt das Hooks-Modul. Es teilt Claude Code mit, auf welche Ereignisse Ihre Funktionen ausgeführt werden sollen.
register.js. Es zählt die Tool-Calls, die Claude macht, und zeigt die Anzahl neben dem Spinner an, während Claude arbeitet, wie in Thinking · tool calls: 3….
hooks/register.js
calls-Variable oben:
- Der
tool.call-Hook wird jedes Mal ausgeführt, wenn Claude ein Tool verwenden möchte. Er addiert eins zucalls, fordert Claude Code auf, die Benutzeroberfläche erneut zu zeichnen, und lässt das Tool wie gewohnt ausführen. - Der
ui.render-Hook wird jedes Mal ausgeführt, wenn Claude Code den Spinner zeichnet. Er behält Claude Codes eigenen Spinner und fügt die Anzahl nach dem Wort hinzu.
Thinking · tool calls: 1…, dann 2…, dann 3….
Was ein Hook mit einem Ereignis tun kann
Claude Code führt Ihren Hook aus, bevor er auf das Ereignis reagiert, daher entscheidet der Hook, was als Nächstes passiert. Er hat drei Möglichkeiten:- Beobachten: Notieren Sie, was passiert, und lassen Sie es unverändert fortfahren, wie der
tool.call-Hook im Beispiel - Umschreiben: Ändern Sie das Ereignis, bevor es fortfährt, wie der
ui.render-Hook, wenn er die Anzahl zum Spinner hinzufügt - Antworten: Verarbeiten Sie das Ereignis selbst, damit das übliche Verhalten nicht ausgeführt wird, z. B. einen Befehl ablehnen
Wo Mods ausgeführt werden
Die Hooks eines Mods werden in jeder Art von Sitzung ausgeführt, die das Plugin lädt. Das Zeichnen ist enger: Nur das Terminal und die Desktop-App zeigen die Bereiche, Bänder und ersetzten Zeilen eines Mods. Diese Tabelle listet jeden Ort auf, an dem Sie Claude Code ausführen könnten:
Ein Mod, der zeichnet, kann überprüfen, in welcher App er ausgeführt wird, und auf eine Zeile im Transkript oder eine Textantwort eines Befehls zurückgreifen, wo nichts gezeichnet wird.
Mods für Ihre Organisation steuern
Administratoren entscheiden, ob Mods ausgeführt werden und welche, durch verwaltete Einstellungen. Mods für Ihre Organisation verwalten behandelt, was standardmäßig passiert, wie man einen Mod überprüft, und wie man eine Richtlinie mit einem eigenen Mod durchsetzt.Vergleichen Sie Mods, Settings-Hooks, Skills und MCP-Server
Mods, Settings-Hooks, Skills und MCP-Server überlappen sich. Diese Tabelle zeigt, was jeder ist und wann man ihn wählt.
Jeder der anderen hat seine eigene Seite: Hooks, Skills und MCP. Ein Plugin kann alle vier enthalten, daher kann ein Mod in demselben Plugin wie ein Skill und ein MCP-Server versendet werden.
In Claude Code integrierte Mods
Einige der eigenen Funktionen von Claude Code sind Mods. Um die zu sehen, die Ihre Sitzung hat, führen Sie/plugin an der Claude Code-Eingabeaufforderung aus und gehen Sie zur Registerkarte Installed, die sie unter Built-in auflistet. Sie können einen integrierten Mod nicht aktualisieren oder deinstallieren, und die letzte Spalte der Tabelle sagt, wie Sie jeden ausschalten. Die mods active-Zeile lässt integrierte Mods aus.
Diese Tabelle listet jeden Eintrag nach dem Namen auf, den /plugin anzeigt:
Die Einstellungen und Flags, die installierte Mods stoppen, wie
disableAllHooks, --bare und --safe-mode, stoppen keine integrierten Mods.
Lesen Sie die Quelle integrierter Mods
Die Quelle von vier dieser Mods ist öffentlich immods-Verzeichnis des Claude Code-Repositorys. Jeder ist ein vollständiges Plugin mit seinem Hooks-Modul und Tests:
diff: der/diff-Bereich mit Schaltflächen, die an Tastaturaktionen gebunden sind, und das Scrollen, das der Mod selbst verarbeitetagents-md: lädtAGENTS.mdals Projektanweisungen mit eineruserConfig-Optionsec-default: der Guard, der in Wissen Sie, was standardmäßig passiert beschrieben wird, ein Modell für einen Mod, der Richtlinien durchsetzttelemetry: fügt Methoden hinzu, die andere Mods aufrufen können, und versendet ihre Typen
Nächste Schritte
- Erstellen Sie einen Mod: Erstellen Sie einen, der Tool-Calls zählt, die Anzahl neben dem Spinner anzeigt und einen Befehl hinzufügt, und lernen Sie die Bearbeitungs- und Neuladen-Schleife
- In der Benutzeroberfläche zeichnen: Bereiche, das Band über der Eingabeaufforderung, Schaltflächen, Textfelder und Status
- Auf Ereignisse reagieren: Tool-Calls, Eingabeaufforderungen, Züge und die Reihenfolge, in der Mods ausgeführt werden
- Verwenden Sie die Mods-API: Befehle, Tools, Modellaufrufe, Timer und Dateien
- Testen Sie einen Mod: automatisierte Tests, die ohne eine Sitzung ausgeführt werden
- Beheben Sie einen Mod: die Gründe, warum ein Mod nichts tut, und das Debug-Protokoll
- Mods für Ihre Organisation verwalten: Standardeinstellungen, verwaltete Einstellungen, Überprüfung eines Mods und Richtlinien-Mods
- Mods-Referenz: jedes Ereignis, jede Methode, jedes Element und jedes Limit