Guide · Claude Code

Claude Code Mods: installieren, selbst schreiben, abschalten

Stand: KI-generiert

Ein Mod läuft ohne Sandbox mit deinen Rechten im Prozess von Claude Code und darf dort zeichnen, was Skills, Settings-Hooks und MCP-Server nicht dürfen. Vor der Installation zeigt `claude plugin validate`, welche Ereignisse er abfängt.

Kurz gesagt: Ein Mod ist ein Claude-Code-Plugin, dessen Code aus JavaScript- oder TypeScript-Funktionen besteht, die Claude Code bei Ereignissen aufruft: bei einem Tool-Aufruf, einem abgeschickten Prompt, beim Zeichnen der Oberfläche. Er läuft im Prozess von Claude Code und darf deshalb Dinge, die ein Skill, ein Settings-Hook oder ein MCP-Server nicht kann, etwa ein Panel neben den Verlauf zeichnen oder einen Tool-Aufruf anhalten. Du installierst einen Mod wie jedes andere Plugin aus einem Marketplace, oder du beschreibst ihn in einer Sitzung und lässt ihn von Claude schreiben.

Mod, Settings-Hook, Skill, MCP-Server

Die Doku nennt die Funktionen eines Mods Hooks. Die Shell-Befehle und HTTP-Aufrufe aus der Einstellungsdatei heißen dort ebenfalls Hooks, auf den Mod-Seiten aber Settings-Hooks. Was wofür taugt:

ModSettings-HookSkillMCP-Server
Was es istFunktionen in einem Plugin, die Claude Code im eigenen Prozess aufruftShell-Befehl, HTTP-Aufruf oder Prompt, den Claude Code bei einem Lebenszyklus-Ereignis ausführteine SKILL.md mit Anweisungen, die Claude liestein externer Prozess oder Dienst, der Claude Tools gibt
Was es ändern kannTool-Aufrufe, Prompts, Befehle, Züge und was die Oberfläche zeichnetob ein Tool-Aufruf oder Prompt durchgeht, Argumente und Ergebnis eines Tool-Aufrufs, Kontext für Claudewas Claude weiß und tutwelche Tools Claude hat
Zeichnen in der Oberflächejaneinneinnein
Was du schreibstJavaScript oder TypeScriptein Skript und einen Eintrag in settings.jsonMarkdowneinen Server in beliebiger Sprache

Ein Plugin kann alles davon zugleich enthalten. Ein Mod kann also im selben Paket stecken wie ein Skill und ein MCP-Server.

Voraussetzungen

Mods sind an, ohne dass du etwas einschaltest. Du brauchst nur eine aktuelle Version:

  • Terminal: Claude Code v2.1.287 oder neuer. In der Shell claude --version.
  • Desktop-App: Sie bringt ihre eigene Kopie von Claude Code mit, dort laufen Mods ab 2.1.286. In einer lokalen Sitzung im Code-Tab /status eingeben und die Zeile zu Claude Code lesen.

Ob Mods bei dir überhaupt laden dürfen, sagt dir ein Befehl in einem Verzeichnis, in dem kein Mod liegt:

claude plugin test
Meldung enthältBedeutung
no hooks module to loadMods dürfen laden, hier liegt nur keiner
hooks modules are turned off heredisableAllHooks in deinen Einstellungen oder eine Richtlinie deiner Organisation blockiert sie
the rollout switch served offAnthropic hat installierte Mods aus der Ferne abgeschaltet
the rollout switch was saved off by an earlier sessionDer Wert stammt aus einer früheren Sitzung und kann veraltet sein. Einmal claude starten, dann erneut prüfen

Hast du in der Early-Access-Zeit CLAUDE_CODE_ENABLE_FUNCTION_HOOKS gesetzt, nimm die Variable raus. Ab v2.1.287 ignoriert Claude Code sie; auf 0 gesetzt hält sie Mods nicht mehr fern.

Wo ein Mod läuft

Die Hooks laufen in jeder Sitzung, die das Plugin lädt. Gezeichnet wird nur an zwei Stellen:

Wo du Claude Code benutztHooksWas der Mod zeichnet
claude im Terminal, auch im Terminal einer IDE und im JetBrains-Pluginjaja
Code-Tab der Desktop-App, außer in einer WSL-Sitzungjaja, bis auf die Elemente, die nur im Terminal gehen
WSL-Sitzung in der Desktop-Appnein, dort gibt es keine Pluginsnein
Chat-Panel der VS-Code-Erweiterungjanein
claude -p und das Agent SDKjanein
Remote Control von claude.ai oder aus der Appja, in der Sitzung auf deinem Rechnerim Terminal auf deinem Rechner
Cloud-Sitzungja, für ein Plugin, das die Sitzung erreichtnein

Ein Mod kann abfragen, in welcher App er läuft, und dort, wo nichts gezeichnet wird, auf eine Zeile im Verlauf oder die Textantwort eines Befehls ausweichen.

Einen Mod installieren

Ein Mod kommt als Plugin aus einem Marketplace. Du gibst den Namen des Plugins, ein @ und den Namen des Marketplace an:

# in einer Claude-Code-Sitzung
/plugin install token-chart@your-org

# in der Shell
claude plugin install token-chart@your-org

Installierst oder aktualisierst du aus der Shell, während eine Sitzung offen ist, lädt /reload-plugins den Mod dort nachträglich. Sonst kommt er beim nächsten Start von Claude Code.

Vorher nachsehen, was er darf

Ein Mod ist Code, der mit deinen Rechten läuft, und er steckt in keiner Sandbox. Einmal geladen, kann er Dateien lesen und schreiben, wo dein Benutzerkonto das darf, Programme starten und Netzwerkanfragen stellen. Er kann Umgebungsvariablen und Einstellungsdateien samt einem API-Key darin lesen, jeden Prompt und jeden Tool-Aufruf sehen, einen Prompt oder Tool-Aufruf umschreiben, einen Tool-Aufruf genehmigen, bevor du gefragt wirst, und Modelle auf deinem Kontingent aufrufen. Schaltest du Sandboxing ein, umfasst es die Bash-Befehle von Claude; ein Prozess, den ein Mod startet, läuft daneben.

Installiere also nur aus Quellen, denen du traust. Welche Ereignisse ein Mod abfängt und was er von Claude Code anfordert, listet dir ein Befehl, ohne den Code auszuführen. Hol dir vorher die Dateien des Plugins, zum Beispiel per git clone:

claude plugin validate ./some-mod

Die Zeilen hooks: und calls: in der Ausgabe sind die Antwort.

Eines kann ein Mod nicht: den Berechtigungs-Dialog verändern. Was dort steht, steht dort. Und genehmigt ein Mod einen Aufruf, den eine deny-Regel verbietet, bleibt der Aufruf verboten; die eingebaute Wache schreibt dann tried to lift a deny rule in your settings.

Claude einen Mod schreiben lassen

Beschreib in einer interaktiven Sitzung, was du willst, etwa: mach einen Mod, der den aktuellen Git-Branch über der Eingabe zeigt. Claude arbeitet dabei mit dem eingebauten Skill plugin-authoring, den du auch selbst laden kannst, mit /plugin-authoring.

  1. Beschreiben. Claude legt den Mod in einem eigenen Verzeichnis unter ~/.claude/dev-mods/<Sitzungs-ID>/<name>/ ab. In den Berechtigungsmodi default und acceptEdits fragt Claude Code vor jeder einzelnen Datei, weil ~/.claude ein geschützter Pfad ist.
  2. Zustimmen. Bei der ersten Datei fragt Claude Code, ob Hot Reloading für diese Sitzung an soll. Mit Enable for this session laden die Mods am Ende des Zugs und danach nach jeder Änderung neu; die Antwort gilt für die ganze Sitzung, auch nachdem du sie fortgesetzt hast. Mit Not now bleiben die Dateien liegen und laden erst beim nächsten Start dieser Sitzung.
  3. Prüfen. /plugin eingeben und mit Tab zum Tab Installed wechseln. Dort steht der Mod, und dort schaltest du ihn auch aus.
  4. Behalten. Ein so geschriebener Mod lädt nur in der Sitzung, die ihn gemacht hat, und deren Mods-Ordner löscht Claude Code, sobald er älter ist als cleanupPeriodDays. Kopier das Verzeichnis woandershin, etwa nach ~/mods/git-branch, und lade es von dort mit claude --plugin-dir ~/mods/git-branch. Für andere Leute: in einen Marketplace legen.

Nicht laden kann ein so geschriebener Mod, wenn niemand zustimmen kann (claude -p, Modus dontAsk), wenn du das Verzeichnis nicht als vertrauenswürdig bestätigt hast, oder wenn Mods abgeschaltet sind.

Mods zum Ausprobieren

Anthropic legt Beispiel-Mods im Verzeichnis claude-code/mods des Repositorys claude-code-playground ab. Jeder ist ein vollständiges Plugin, das README sagt, wie er gebaut wurde. Support gibt es dafür nicht.

  • token-weather zeichnet über der Eingabe eine Vorhersage für dein Kontextfenster.
  • blast-radius hält einen riskanten Shell-Befehl auf, etwa rm -rf oder einen Force-Push, zeigt, was er ändern würde, und gibt dir zwei Knöpfe.
  • replay-theater bringt einen Befehl /replay, der die Datei-Änderungen des letzten Zugs durchblättert.

Auch ein Beispiel-Mod läuft mit deinen Rechten. Klone das Repository, sieh dir mit claude plugin validate an, was drinsteckt, und lade das Verzeichnis dann für eine Sitzung:

claude --plugin-dir <pfad-zum-klon>/claude-code/mods/<name>

Soll einer bleiben, trägst du das Verzeichnis claude-code/mods deines Klons als Marketplace ein und installierst den Mod aus claude-code-playground-mods. Der Marketplace zeigt auf deinen Klon: verschiebst oder löschst du ihn, lädt der Mod nicht mehr.

Die eingebauten Mods

Ein Teil von Claude Code ist selbst als Mod gebaut, zum Beispiel /diff. /plugin listet diese Stücke im Tab Installed unter Built-in. Aktualisieren oder deinstallieren kannst du sie nicht, und in der Zeile mods active tauchen sie nicht auf.

Name in /pluginWas er tutAusschalten
cc-plugin-agents-mdlädt AGENTS.md als Projektanweisungin /plugin deaktivieren, oder festlegen, welche Anweisungsdateien laden
cc-plugin-diffübernimmt /diff und zeichnet dessen Panelin /plugin deaktivieren. /diff bleibt, dann antwortet die eingebaute Variante des Befehls
cc-plugin-plugin-authoringgibt Claude den Skill plugin-authoring zum Schreiben von Mods; enthält selbst keinen Mod-Codein /plugin deaktivieren
cc-plugin-sec-defaultschützt das, was deine Organisation verwaltet, vor selbst installierten Modsnicht möglich; die Reihenfolge setzt ein Admin in den verwalteten Einstellungen
cc-plugin-telemetryschickt die Analytics-Daten von Claude Code und seinen eingebauten Modsin /plugin deaktivieren, oder Analytics aus, etwa mit DISABLE_TELEMETRY
cc-plugin-you-should-knowlässt einen Nebenagenten mitlaufen und meldet über der Eingabe, was dir bei längeren Aufgaben entgehen könntein /plugin deaktivieren. Standardmäßig aus, einschalten mit /plugin enable cc-plugin-you-should-know@builtin

Der Quellcode einiger dieser Mods liegt offen im Verzeichnis mods des Claude-Code-Repositorys, jeder mit Hooks-Modul und Tests. diff, agents-md, sec-default und telemetry sind die lesbarsten Vorlagen für einen eigenen Mod.

Welche Mods geladen sind, und warum einer nichts tut

/plugin am Claude-Code-Prompt zeigt unter den Tabs eine blasse Zeile mit Anzahl und Namen, etwa 1 mod active · first-mod. Fehlt dein Mod dort, hat sein Hooks-Modul nicht geladen.

Scheitert ein Modul oder ein Hook, überspringt Claude Code es und die Sitzung läuft weiter. Ein kaputter Mod sieht deshalb aus wie einer, der nichts tut. Zwei Schritte:

  1. In der Shell claude plugin validate ./first-mod. Das findet ein falsch geschriebenes Ereignis, ein kaputtes Manifest und ein Modul, das Claude Code nicht lesen kann, ohne dass du eine Sitzung startest.
  2. Die Zeile lesen, die Claude Code schreibt, wenn es etwas überspringt. Wo sie landet, hängt von der Sitzung ab: in einer Sitzung mit Hot Reloading als blasse Zeile im Verlauf, in jeder anderen interaktiven Sitzung nur im Debug-Log (claude --debug), bei claude -p mit --plugin-dir auf stderr.

Die Zeile beginnt mit hooks module, dem Namen des Mods und not loaded:. Dahinter steht der Grund, etwa another plugin of that name loads first: ein anderes aktives Plugin trägt denselben Namen und hält ihn. Steht hooks module did not load: samt Datei und Zeile, liegt der Fehler in deinem Code.

Mods abschalten

  • Einen Mod: sein Plugin im Tab Installed in /plugin deaktivieren oder deinstallieren.
  • Alle, für eine Sitzung: claude --safe-mode. Das schaltet deine übrigen Anpassungen mit ab.
  • Alle selbst installierten, in jeder Sitzung: "disableAllHooks": true in ~/.claude/settings.json. Deine Settings-Hooks und deine eigene Statuszeile sind damit auch aus. Was deine Organisation verwaltet, läuft weiter.

disableAllHooks und das allowManagedModsOnly deiner Organisation stoppen den Mod und lassen den Rest des Plugins in Ruhe: Es bleibt installiert, und seine Skills, Befehle, Agenten und MCP-Server laden weiter. Die eingebauten Mods hält keine dieser Einstellungen auf, auch --bare und --safe-mode nicht.

Grenzen

  • Gezeichnet wird nur im Terminal und im Code-Tab der Desktop-App. Im Chat-Panel der VS-Code-Erweiterung, bei claude -p, im Agent SDK und in einer Cloud-Sitzung laufen die Hooks, sichtbar wird davon nichts.
  • In einer WSL-Sitzung der Desktop-App gibt es keine Plugins, also auch keinen Mod.
  • Keine Sandbox, und keinen Weg, den Berechtigungs-Dialog zu verändern.
  • Eine Datei eines Hooks-Moduls darf Scopes, also Funktionen, Blöcke und Schleifen, nicht tiefer als 2.000 verschachteln, sonst lädt das Modul nicht.
  • Deine Organisation kann mit allowManagedModsOnly nur ihre eigenen Mods zulassen. claude plugin test meldet das nicht; du merkst es erst, wenn Claude Code einen installierten Mod ablehnt.

Änderungen

  • 2026-10-13: Erste Fassung, Satz für Satz gegen die Doku vom 13.10.2026 geprüft.

Quellen