Anthropic hat Claude Code am 1. Oktober um einen Erweiterungsmechanismus namens Mods ergänzt. Laut offiziellem Blogbeitrag ist ein Mod eine kurze TypeScript-Funktion, die sich in Ereignisse von Claude Code einhängt und damit Prompts umschreiben, Oberflächenelemente hinzufügen, eingebaute Funktionen ersetzen oder schlicht eine neue Funktion ergänzen kann. Unterstützt werden CLI und Desktop-App, vorausgesetzt wird Claude Code 2.1.287 oder neuer.
Verteilt werden Mods über das bestehende Plugin-System: Installation aus dem Claude-Plugin-Marktplatz oder per /plugin-Befehl in der Sitzung. Wer einen eigenen Mod anderen zur Verfügung stellen will, packt ihn als Plugin und reicht ihn im Marktplatz ein.
Welche Bereiche sind betroffen
Jede Aktion in Claude Code – ein Werkzeugaufruf, eine Berechtigungsanfrage, das Zeichnen eines Bildschirmbereichs – löst ein Ereignis aus. Ein Mod kann vor oder nach diesem Ereignis laufen oder es komplett ersetzen. Laut offizieller Aufzählung gehört dazu:
- den an das Modell gesendeten Prompt umschreiben;
- Werkzeugaufrufe abfangen, umschreiben oder erneut ausführen;
- Berechtigungsanfragen genehmigen oder ablehnen;
- Teile der Werkzeugausgabe entfernen, bevor Claude sie liest;
- Schaltflächen und Eingabefelder zur Oberfläche hinzufügen.
Die Einführung im Entwickler-Blog stammt von Addy Osmani und geht genauer auf die Verarbeitungslogik ein. Jeder Hook ist ein Glied in einer Middleware-Kette und lässt sich auf drei Arten schreiben: Wird zuerst next(e) aufgerufen und erst danach das Ergebnis betrachtet, heißt das Beobachten; wird ein Ereignis mit veränderten Feldern weitergegeben, heißt das Umschreiben; wird next() gar nicht aufgerufen, sondern direkt {deny: "reason"} zurückgegeben, heißt das Antworten. Abgedeckt werden Werkzeugaufrufe, das Absenden von Prompts, Beginn und Ende einer Runde, Slash-Befehle und das Rendern der Oberfläche.
Das Beispiel im Tutorial ist ein rund 80 Zeilen langer Mod namens Token Weather. Er zeichnet über dem Eingabefeld eine Art „Kontext-Wetterbericht“: ein Wettersymbol je nach Auslastung des Kontextfensters, die aktuelle Token-Zahl samt Prozentwert, dazu eine Mini-Liniengrafik der letzten zwölf Runden und die Angabe, wie stark der Wert gegenüber der vorherigen Runde gestiegen ist. Für die Oberfläche kommt die Komponente AbovePrompt zum Einsatz.
Von Hooks zu Mods
Claude Code hatte schon vorher Settings-Hooks: Für jedes Ereignis wird ein Shell-Befehl gestartet, der JSON über stdin und stdout austauscht. Das ist einfach, hat aber seinen Preis – jedes Mal ein neuer Prozess, der sich an nichts aus dem vorherigen Durchlauf erinnert.
Mods werden beim Start einer Sitzung einmal geladen und bleiben danach dauerhaft im Speicher. Im Tutorial werden drei Unterschiede genannt: Zustand lässt sich speichern, die Oberfläche kann sich dynamisch verändern, und ein Mod kann Claude Codes eigene Funktionen aufrufen, etwa ein Panel öffnen oder einen Befehl registrieren. Dass Token Weather eine Liniengrafik über zwölf Runden zeichnen kann, beruht genau auf diesem dauerhaften Zustand; mit einem Shell-Hook müsste man die Daten selbst auf die Festplatte schreiben.
Zieht man die Linie weiter zurück, ist die Erweiterbarkeit von Claude Code Schicht für Schicht gewachsen: zuerst CLAUDE.md und Settings-Hooks, später der /plugin-Marktplatz, und erst vor wenigen Tagen wurde die Unterstützung für AGENTS.md ebenfalls über ein eingebautes Plugin umgesetzt. Mods machen aus einem Hook, der bisher ein externes Skript anstieß, Code, der direkt im Prozess läuft – und der mögliche Eingriffsbereich wächst dadurch erheblich.
Sicherheitsgrenzen
Mit größerem Spielraum wächst auch das Risiko. Der offizielle Blogbeitrag formuliert es unverblümt:
Mods run with the same access to your machine as Claude Code itself. They aren't sandboxed, and you should only install mods from sources you trust.
(Mods haben denselben Zugriff auf Ihren Rechner wie Claude Code selbst. Sie laufen nicht in einer Sandbox, und Sie sollten Mods nur aus Quellen installieren, denen Sie vertrauen.)
Das Tutorial beschreibt die Laufzeitumgebung an anderer Stelle so: Das Modul läuft in einer eigenen isolierten Umgebung, ohne DOM und ohne Node; jeder Zugriff nach außen muss über die Schnittstelle $ erfolgen. Betrachtet man beide Aussagen zusammen, wird klar: Isoliert ist die Laufzeit, nicht die Berechtigung. Sobald ein Mod ein Berechtigungsereignis erhält, kann er im Namen des Nutzers auf „Zustimmen“ klicken.
Team- und Enterprise-Pläne sowie Rechner mit verwalteten Einstellungen laden zuerst einen eingebauten Mod namens sec-default, der riskante Aktionen selbst installierter Mods blockiert, etwa das Überschreiben von Ablehnungsregeln bei Berechtigungen; Administratoren können im Enterprise-Dashboard zusätzlich festlegen, welche Marktplätze überhaupt installiert werden dürfen. Für Einzelkonten gibt es diese Absicherung standardmäßig nicht. Für Teams in China, wo der Zugang zu Konto und Netzwerk für Claude Code ohnehin hohe Hürden hat, sind Mods kurzfristig eher ein zusätzliches Werkzeug für Teams, die das Produkt schon nutzen; wie schnell ein Ökosystem externer Mods wachsen kann, hängt davon ab, wie locker die Marktplatz-Prüfung gehandhabt wird.
Quellen: Anthropic-Claude-Blog, Einführungstutorial im Claude-Entwickler-Blog, CocoLoop; das offizielle Tutorial wurde auf Versionsanforderungen, Ereignistypen und die Zeilenzahl der Beispielcodes hin geprüft.