SpyBara
Go Premium

plugins/mods/reference.md 2026-10-01 23:59 UTC to 2026-10-02 15:01 UTC

This page contains 326 additions and 0 deletions.

2026
Fri 2 16:01

Mods-Referenz

Vollständige Referenz für Claude Code-Mods: Aufbau des Hooks-Moduls, Events, Methoden der Mods-API, Render-Stellen, Elemente nach Oberfläche, Limits und Einstellungen.

Schlagen Sie jedes Event nach, das ein Mod verarbeiten kann, jede Methode der Mods-API, die er aufrufen kann, oder jede Render-Stelle, an der er zeichnen kann – für die Claude Code CLI und die Desktop-App ab v2.1.287. Jeder Eintrag nennt den Namen und eine einzeilige Beschreibung und verlinkt, sofern vorhanden, auf den Abschnitt des Leitfadens, der ihn erklärt.

Dateien

Ein Mod ist ein Plugin-Verzeichnis mit diesen Dateien:

Datei Erforderlich Inhalt
.claude-plugin/plugin.json Ja Das Manifest des Plugins. Mods fügen keine Pflichtfelder hinzu.
hooks/hooks.json Ja modules: ein Array mit einem Pfad zum Hooks-Modul, relativ zu dieser Datei, wie in "modules": ["./register.js"]. Kann unter hooks auch Einstellungs-Hooks enthalten.
Das Hooks-Modul, etwa hooks/register.js Ja Der Einstiegspunkt des Mods. Exportiert register(on, options). Benannt mit .js, .mjs, .cjs, .jsx, .ts, .mts, .cts oder .tsx. Ein ES-Modul.
types/index.d.ts, benannt durch types im Manifest Wenn der Mod $.state verwendet oder der Mods-API einen Namespace hinzufügt Deklariert PluginState-Werte und jeden Namespace, den der Mod hinzufügt
Dateien, deren Namen auf .test.ts oder .test.tsx enden Nein Tests, die claude plugin test ausführt

register erhält on und options. options enthält die Werte der userConfig-Felder, die das Manifest deklariert, mit eingesetzten Standardwerten.

Die Hook-Funktion

Ein Mod registriert jeden seiner Hooks, also Event-Handler, indem er innerhalb von register die Funktion on aufruft. on nimmt den Namen des Events, einen optionalen Matcher, also einen Filter auf die Felder des Events, und den Hook entgegen, wie in on('tool.call', { tool: 'Bash' }, async ($, e, next) => next(e)). on gibt eine Registrierung mit einer Methode zurück, .catch(handler), die den Fehler-Handler des Hooks festlegt.

Argument Was es ist
$ Die Mods-API: jede Methode aus Methoden der Mods-API. Schreiben Sie jeden Aufruf vollständig aus, zuerst den Namespace, dann die Methode, wie in $.fs.read('notes.md').
e Die Eingabe des Events als tief eingefrorene einfache Daten. Um sie zu ändern, übergeben Sie eine Kopie an next.
next(e) Der nächste Handler, wie bei Middleware. Führt die Hooks nach diesem aus, dann das Verhalten von Claude Code. Wird zum Ergebnis des Events aufgelöst.
next.signal Ein AbortSignal, das abbricht, wenn das Event aufgegeben wird
next.origin { plugin, tier } desjenigen, der das Event ausgelöst hat. Claude Code selbst ist { plugin: 'engine', tier: 'core' }. Der tier eines Mods ist seine Prioritätsgruppe in der Reihenfolge, in der Mods ausgeführt werden: prepend, user, append oder builtin.
next.budget Das Zeitlimit des Hooks in Millisekunden: next.budget.ms ist das gesamte Limit, und next.budget.remainingMs ist die aktuell verbleibende Zeit
next.to(e, tier) Springt zu einer späteren Stufe, nämlich append, builtin oder core. next.to(e, 'append') überspringt die Mods, die ein Benutzer installiert hat. Nur ein Mod in prependPlugins oder appendPlugins kann dies aufrufen.
next.error, next.called Nur in einem .catch-Handler. next.error.kind ist throw oder timeout, next.error.message ist der Text des Fehlers, und next.called ist true, wenn der fehlgeschlagene Hook next aufgerufen hatte.

Events

Die Events sind danach gruppiert, was sie betreffen, jeweils mit dem Zeitpunkt, zu dem sie ausgelöst werden, und dem, was ein Hook darauf zurückgeben kann. Hooks auf turn.step und process.spawn sind asynchrone Generatoren, andere Hooks sind asynchrone Funktionen.

Die letzte Spalte jeder Tabelle verwendet eine Kurzschreibweise. next(e) gibt das Event unverändert weiter. next({ ...e, text }) gibt eine Kopie weiter, in der das genannte Feld geändert ist, wie in next({ ...e, text: e.text.trim() }). Ein Objekt beantwortet das Event, ohne next aufzurufen, und ein Wort wie reason steht für einen String, den Sie schreiben, wie in { deny: 'Use the file tools.' }.

Tools

Tool-Events werden rund um jeden Tool-Aufruf ausgelöst, den Claude macht, von der Beschreibung, die Claude liest, bis zur Entscheidung, ob der Aufruf ausgeführt wird:

Event Wird ausgelöst, wenn Ein Hook kann zurückgeben
tool.call Ein Tool gleich ausgeführt wird next(e), { deny: reason } oder { result }
tool.check Claude Code nach den Hooks tool.call und PreToolUse entscheidet, ob ein Tool-Aufruf ausgeführt werden darf. next(e) wird zu der Entscheidung aufgelöst, zu der die Regeln, der Berechtigungsmodus und diese Hooks gelangt sind. { decision }, also allow, ask oder deny
tool.describe Einmal pro Tool, wenn seine Beschreibung zum ersten Mal an Claude gesendet wird { description }

Prompts und was Claude liest

Prompt-Events betreffen den Text, den der Benutzer eingibt, und den Text, den Claude Code von sich aus an Claude sendet, etwa den System-Prompt und Erinnerungen:

Event Wird ausgelöst, wenn Ein Hook kann zurückgeben
prompt.submit Ein Prompt abgeschickt wird next({ ...e, text }), next({ ...e, context }) oder { drop: reason }
prompt.fill, prompt.suggest Text gleich als Entwurf oder als abgeblendeter Vorschlag in das Eingabefeld eingefügt wird next(e) mit geändertem Text
prompt.edit Der Benutzer das Eingabefeld bearbeitet next(e)
prompt.compose Claude Code einen System-Prompt rendert { sections }, eine Liste von { id, text, scope } in der Reihenfolge, in der sie gesendet werden
prompt.section Einmal für jeden benannten Abschnitt des System-Prompts. e.name ist die id des Abschnitts in prompt.compose. { text } oder { text: null }, um den Abschnitt wegzulassen
prompt.context Einmal pro Konversation, für den Kontext, der mit der ersten Nachricht gesendet wird { blocks }
prompt.attachment Claude Code eine eigene Nachricht für Claude hinzufügt, etwa eine Erinnerung. e.type benennt die Art, und für die Arten, die die Typen deklarieren, enthält e.detail die Fakten, aus denen der Text geschrieben wurde. { text } oder { text: null }, um sie wegzulassen
skill.prompt Der Text eines Skills für Claude expandiert wird { text }
attribution.text Claude Code einen Attributionstext für einen Commit oder Pull Request verfasst { text }

Befehle und Konfiguration

Befehls- und Konfigurations-Events werden ausgelöst, wenn ein Befehl ausgeführt oder aufgelistet wird und wenn eine /config-Zeile angezeigt oder geändert wird:

Event Wird ausgelöst, wenn Ein Hook kann zurückgeben
command.run Ein Befehl gleich ausgeführt wird { text }, {} oder next(e)
command.describe Einmal pro Befehl, für die Befehlsliste { description, argumentHint, isHidden }
config.set Eine /config-Zeile sich gleich ändert next({ ...e, value }) oder { deny: reason }
config.describe Einmal pro /config-Zeile { label, description, isHidden }

Turns

Turn-Events begleiten eine Antwort vom Anfang bis zum Ende, einschließlich jeder Anfrage an das Modell darin:

Event Wird ausgelöst, wenn Ein Hook kann zurückgeben
turn.start Ein Turn beginnt next(e)
turn.step Eine Anfrage gleich an das Modell geht yield* next(e) oder next({ ...e, model }), next({ ...e, effort })
turn.complete Ein Turn beendet wurde next(e) oder { text }, um eine Zeile unter der Antwort anzuzeigen

Sitzung

Sitzungs-Events markieren den Start, das Ende und die Komprimierung der Sitzung sowie den Austausch von Nachrichten mit anderen Sitzungen:

Event Wird ausgelöst, wenn Ein Hook kann zurückgeben
session.start Einmal für jeden geladenen Mod vor dem ersten Prompt und erneut nach einem Neuladen dieses Mods. Nicht nach /clear, /resume oder /branch. next(e)
session.end Die Sitzung endet oder /clear, /resume oder /branch ausgeführt wird. e.reason ist clear, resume, logout, prompt_input_exit oder other. /branch meldet resume. next(e)
session.compact Die Konversation gleich komprimiert wird { skip: reason }
session.receive, session.send Eine Nachricht von einem anderen Agenten oder einer anderen Sitzung eintrifft oder gleich an diese geht. Siehe Nachrichten zwischen Sitzungen senden und empfangen. { consumed: reason } für receive, { isDelivered: false, reason } für send
session.append Einmal für jede Zeile, die die Konversation behält, etwa ein Prompt, ein Antwortblock, ein Tool-Ergebnis oder ein Hinweis, bevor sie gespeichert wird next({ ...e, message }), um den content der Zeile neu zu schreiben
session.attach, session.detach Eine andere App sich mit der Sitzung verbindet oder die Verbindung trennt next(e)
session.measure Nach jedem Turn und wenn sich der verbrauchte Prozentsatz eines Plan-Limits ändert next(e)

Subagenten

Subagenten-Events werden ausgelöst, wenn Claude ein Subagenten-Typ angeboten wird und wenn ein Subagent gleich startet:

Event Wird ausgelöst, wenn Ein Hook kann zurückgeben
agent.offer Claude ein Subagenten-Typ angeboten wird { isOffered: false }, um ihn zurückzuhalten
agent.spawn Ein Subagent gleich startet { model } oder { deny: reason }

Oberfläche

Oberflächen-Events werden ausgelöst, wenn Claude Code eine Render-Stelle zeichnet und wenn der Benutzer ein Steuerelement verwendet, das ein Mod gezeichnet hat. In der Oberfläche zeichnen zeigt, was ein ui.render-Hook zurückgibt:

Event Wird ausgelöst, wenn
ui.render Eine Render-Stelle gleich gezeichnet wird
ui.resolve Mods geladen werden, einmal pro App, Render-Stelle und Mod. Das Ergebnis ist die Elementtabelle, die $.ui.resolve(e) liest.
ui.press, ui.input, ui.select Ein Button, Input oder Select, das ein Mod gezeichnet hat, verwendet wird
ui.focus, ui.scroll Sich das fokussierte Steuerelement oder die Scrollposition eines Bereichs oder des Bands gleich ändert
ui.close Ein Bereich gleich geschlossen wird. e.id ist der Bereich, und e.origin.kind ist plugin, person oder unload.
ui.message Ein Client-Element Daten an seinen Mod sendet

Andere Mods

Mit diesen Events kann ein Mod auf andere Mods einwirken, während sie geladen werden, um einen abzulehnen oder die Mods-API zu ändern, die er erhält:

Event Wird ausgelöst, wenn Ein Hook kann zurückgeben
plugin.register Ein Hooks-Modul gleich geladen wird. e.uses listet seine Events, Aufrufe der Mods-API, Umgebungsvariablen und seinen State auf, so wie claude plugin validate sie ausgibt. Jeder Aufruf wird ohne das Präfix $. geschrieben, etwa fs.read. { refuse: reason }
engine.create Die Mods-API für diesen Mod aufgebaut wird Eine geänderte Mods-API, um einen Namespace hinzuzufügen oder zurückzuhalten

Telemetrie

Telemetrie-Events werden für die Nutzungsdatensätze ausgelöst, die Claude Code protokolliert:

Event Wird ausgelöst, wenn Ein Hook kann zurückgeben
telemetry.log, telemetry.mark Ein Telemetriedatensatz gleich protokolliert wird oder eine Nutzung einer Funktion markiert wird. Geben Sie in einem Mod, den Sie installieren, einem Telemetrie-Hook den Filter { to: 'collector' }, wie in on('telemetry.log', { to: 'collector' }, hook). Ohne den Filter besteht der Mod claude plugin validate nicht. * passt nicht auf diese Events. next(e) oder { deny: reason }

Events für Einstellungs-Hooks

Jedes Event für Einstellungs-Hooks ist ein Event mit dem Namen classic.<Event>, etwa classic.Stop oder classic.PostToolUse. e ist das stdin-JSON des Hooks.

Aufrufe der Mods-API

Jede Methode der Mods-API ist auch ein Event, benannt nach ihrem Namespace und ihrer Methode, etwa fs.read, model.complete oder ui.open. Ein Hook darauf fängt Aufrufe der Mods ab, die nach ihm ausgeführt werden, und kann next(e), { deny: reason } oder { value } zurückgeben.

Methoden der Mods-API

Die Mods-API ist das Argument $, das jeder Hook erhält. Ihre Methoden sind in Namespaces gruppiert, etwa $.ui. Diese Tabelle listet die Methoden jedes Namespace nach Namen auf, sodass open in der Zeile $.ui der Aufruf $.ui.open(...) ist. Die Leitfäden zeigen die gängigen Methoden im Einsatz, und die Typen für Ihren Build dokumentieren jede Methode mit einem Beispiel.

Namespace Methoden
$.plugin name, root: Name und Verzeichnis dieses Plugins
$.ui resolve, invalidate, open, close, panes, focus, scroll, toast, status, log, notice, ask, copy, blit
$.command register, run, list
$.tool register, call, check, list
$.agent register, spawn, list
$.model complete, fork, classify
$.prompt submit, read, fill, suggest, compose. Claude liest Text aus submit({ text }) nach einem Satz, der Ihren Mod als Absender nennt. submit({ text, asUser: true }) sendet den Text als eigene Worte des Benutzers, ohne diesen Satz.
$.turn abort
$.session messages, cwd, root, model, turns, id, repo, surfaces, usage, version, compact, send, append, authorize. usage() gibt { startedAt, context, rateLimits, cost } zurück: context enthält tokens, window und percent, und rateLimits ist eine Liste von { kind, percentUsed, resetsAt }.
$.config list, set
$.settings read
$.env get, set
$.fs read, write, list, exists, stat, ancestors. write ist nicht atomar: Es ersetzt den Inhalt der Datei an Ort und Stelle, sodass ein anderer Prozess eine teilweise geschriebene Datei lesen kann. Speichern Sie Daten, die mehrere Sitzungen ändern, in $.store.
$.store get, set, delete, keys. Ein Key-Value-Speicher, den alle Sitzungen auf dem Rechner gemeinsam nutzen. Siehe Aus mehr als einer Sitzung speichern.
$.state Reaktiver State: get, set, mit den Hilfsfunktionen atom, read, update, derive und memberOf, importiert aus claude-code
$.clock now, sleep, after, every
$.http fetch
$.process run, spawn
$.mcp call, connect. connect(server) verbindet einen MCP-Server, den das Manifest Ihres eigenen Plugins auflistet.
$.audio play, speak
$.telemetry log, mark. Ein Datensatz wird nur gesendet, wenn Claude Code oder ein integrierter Mod den Aufruf macht.

Render-Stellen

Eine Render-Stelle ist ein Erweiterungspunkt in der Oberfläche von Claude Code. Jede Zeile ist ein Wert von e.component in einem ui.render-Hook, mit den Feldern von e.props und den Apps, die sie rendern. e.surface ist terminal oder desktop. Ändern, was Claude Code bereits zeichnet zeigt, was ein Hook an einer Stelle tun kann, mit einem Beispiel für jede Möglichkeit.

Stelle e.props e.requestId Gerendert in
Pane title, isFocused, bodyColumns, placement, scroll, view Die id des Bereichs Terminal, Desktop
AbovePrompt hasSurvey, isWorking, maxRows, bodyColumns, scroll, view Eine Instanz Terminal, Desktop
UserMessage text, origin, isExpanded sowie je nach Ursprung task oder from Die Nachrichten-ID Terminal, Desktop
AssistantMessage Der Text der Antwort Die Nachrichten-ID Terminal, Desktop
ToolUse, ToolResult, ToolGroup Name, Eingabe und Ergebnis des Tools Die ID des Tool-Aufrufs Terminal, Desktop
CommandOutput command, text Die Nachrichten-ID Terminal, Desktop
AskUserQuestion Die Frage und die Optionen Die ID des Tool-Aufrufs Terminal, Desktop
ToolProgress kind Die ID des Tool-Aufrufs Terminal
Spinner word, message, suffix, mode Die Agenten-ID Terminal, Desktop
TurnDuration word, durationMs Die Nachrichten-ID Terminal
InfoNotice text, command Die Nachrichten-ID Terminal
SessionMode modes Eine Instanz Terminal, Desktop
PromptHint isDraft, isWorking, hint Eine Instanz Terminal, Desktop

e.viewport enthält columns, rows und isFullscreen. Es fehlt, bis die App ihr Fenster vermessen hat. Sein rows ist die Höhe des gesamten Fensters, nicht Ihres Bereichs.

Um einen Baum an seine Stelle anzupassen, lesen Sie im Hook diese Props:

  • Breite eines Pane oder des Bands: Zeichnen Sie auf e.props.bodyColumns
  • Höhe eines Pane neben dem Transkript: Wo e.props.placement den Wert 'dock' hat, ist e.props.scroll.bodyRows die Anzahl der Zeilen, die der Bereich hat
  • Höhe eines Pane über dem Prompt: Wo e.props.placement den Wert 'inline' hat, wächst der Bereich mit Ihrem Baum bis zu einem Limit, und bodyRows zählt nur die aktuell sichtbaren Zeilen. Das Feld rows von $.ui.open fordert ein anderes Limit an.

Ein Baum, der höher als der Bereich ist, scrollt als Ganzes.

Elemente

Elemente sind die Bausteine eines Baums, den ein ui.render-Hook zurückgibt, und Sie erhalten sie von $.ui.resolve(e). Einen Baum aus Elementen aufbauen zeigt die gängigen Elemente und wie das Terminal sie zeichnet, und die Oberflächen-Galerie enthält Screenshots der meisten. Ein Häkchen bedeutet, dass die App das Element zeichnen kann.

Element Wichtigste Props Terminal Desktop
Box key, Flex-Layout, gap, padding, margin, width, height, borderStyle, backgroundColor, position, hover ✓ ✓
Text color, backgroundColor, bold, italic, underline, dimColor, inverse, wrap ✓ ✓
Button key, label, onPress, hotkey, plain, dimColor, autoFocus, action ✓ ✓
Link href, label ✓ ✓
Code Der Code, bis zu 10.000 Zeichen ✓ ✓
Markdown text, bis zu 10.000 Zeichen, key, dimColor, onLinkPress, pressableLinks ✓ ✓
Input key, label, placeholder, value, submitLabel, onSubmit, onInput, autoFocus ✓ ✓
Select key, label, options, value, onSelect, autoFocus ✓ ✓
Svg Ein SVG-Dokument, bis zu 131.072 Zeichen ✓
Client module, key ✓ ✓
Raster key, columns bis 512, rows bis 256, cells. Siehe Ein Raster farbiger Zellen zeichnen. ✓
Image PNG- oder RGBA-Bytes bis 2 MiB oder ein Dateipfad ✓

Weitere Regeln für Button: action benennt eine der eigenen Tastenkombinations-Aktionen von Claude Code, und die Tastenkombination des Benutzers dafür drückt den Button, wenn diese Tastenkombination ein Akkord oder eine Taste mit Modifikator ist. Ein Ziffern-hotkey auf einem Button im Band wird auch ausgelöst, wenn der Benutzer nur diese Ziffer in einen leeren Prompt eingibt und kurz pausiert. Wenn zwei Buttons in einer Zeichnung denselben hotkey benennen, erhält ihn der spätere. autoFocus akzeptiert bei jedem Steuerelement nur true; lassen Sie die Prop also weg, um sie zu deaktivieren.

Limits

Hooks und Aufrufe der Mods-API unterliegen Zeit- und Größenlimits. Claude Code überspringt einen Hook, der ein Zeitlimit überschreitet, und lehnt einen Aufruf ab, der ein Größenlimit überschreitet.

Limit Wert
Eigene Ausführungszeit eines Hooks für ein Event, ohne die Zeit innerhalb von next oder eines anderen Aufrufs der Mods-API als $.clock.sleep 10 Sekunden
Ausführungszeit eines .catch-Handlers 1 Sekunde
Alle session.end-Hooks zusammen 1,5 Sekunden
Timeout von $.process.run Standardmäßig 30 Sekunden, höchstens 10 Minuten
maxTokens von $.model.complete Standardmäßig 1024, bis zu 64.000 oder dem Ausgabelimit des Modells
$.fs.read und $.fs.write 4 MiB für eine Datei
Ein String-Kind eines Text 10.000 Zeichen
$.store Insgesamt 4 MiB JSON
$.session.messages() Die neuesten 4.096 Einträge
Neuzeichnungen durch $.ui.invalidate('ui.render') Gedrosselt auf 10 pro Sekunde oder im Terminal auf 30 für den sichtbaren Bereich, das erweiterte Band und die Hinweiszeile unter dem Prompt. Frühere Aufrufe werden zusammengefasst.
$.ui.toast Wird 4 Sekunden lang angezeigt, sofern Sie nicht { timeoutMs } übergeben
Ein Bereich, der ohne Anforderung durch den Benutzer geöffnet wird Wird ab 144 Terminalspalten platziert, ab 110, nachdem der Benutzer ihn einmal geöffnet hat
Namen von Befehlen, Tools, Subagenten-Typen und Bereichen Buchstaben, Ziffern, _ und -, bis zu 64 Zeichen
Ein Test von claude plugin test 5 Sekunden, sofern der Test nicht timeoutMs setzt

Einstellungen und Umgebungsvariablen

Dies sind die Einstellungen und Umgebungsvariablen, die sich auf Mods auswirken. Die Spalte „Wo“ gibt an, aus welcher Einstellungsdatei oder Umgebung die jeweilige Angabe gelesen wird:

Name Wo Funktion
CLAUDE_CODE_PLUGIN_DIRS Umgebung oder env in ~/.claude/settings.json Plugin-Verzeichnisse, die wie mit --plugin-dir geladen werden, für Anwendungen, denen Sie kein Flag übergeben können. Absolute Pfade, getrennt durch : bzw. unter Windows durch ;.
CLAUDE_CODE_PLUGIN_DIR_WATCH Umgebung 1 bewirkt, dass eine lang laufende nicht interaktive Sitzung --plugin-dir-Mods beim Speichern neu lädt
prependPlugins, appendPlugins Verwaltete Einstellungen. Benutzereinstellungen nur auf einem Rechner ohne verwaltete Einstellungen, für einen Benutzer, der nicht mit einem Team- oder Enterprise-Plan angemeldet ist. Listen von Plugin-IDs, etwa acme-guard@acme-tools. Mods in prependPlugins werden vor jedem Mod ausgeführt, den ein Benutzer installiert, und Mods in appendPlugins danach, jeweils in der aufgeführten Reihenfolge. Siehe Die Reihenfolge, in der Mods ausgeführt werden.
allowManagedModsOnly Verwaltete Einstellungen, als Option des integrierten Wächters Es werden nur Mods geladen, die als Mods Ihrer Organisation gelten, sowie in Claude Code integrierte Mods. Einstellungs-Hooks der Benutzer werden weiterhin ausgeführt.
allowModsToOverrideDenyRules Verwaltete Einstellungen, als Option des integrierten Wächters Erlaubt einem von einem Benutzer installierten Mod, einen Tool-Aufruf zu genehmigen, den eine deny-Regel ablehnt
allowManagedHooksOnly Verwaltete Einstellungen Blockiert Hooks und installierte Mods, die nicht von Ihrer Organisation stammen. Siehe was weiterhin ausgeführt wird.
disableAllHooks Beliebige Einstellungsdatei In verwalteten Einstellungen wird kein Mod und kein Hook aus einem installierten Plugin ausgeführt. In Ihren eigenen Einstellungen wird das, was Ihre Organisation verwaltet, weiterhin ausgeführt. Siehe disableAllHooks.
disableSideloadFlags Verwaltete Einstellungen Lehnt --plugin-dir und --plugin-url beim Start ab
pluginConfigs Benutzer- oder verwaltete Einstellungen Enthält userConfig-Werte für einen Mod, indiziert nach der ID des Plugins als Schlüssel, etwa acme-guard@acme-tools, oder nach seinem Namen mit @inline, etwa first-mod@inline, für einen mit --plugin-dir geladenen Mod

sec-default@builtin ist ein in Claude Code integrierter Wächter, der in /plugin und im Debug-Log als cc-plugin-sec-default aufgeführt wird. Er wird vor jedem Mod geladen, den eine Person auf einem Rechner mit verwalteten Einstellungen installiert, oder für einen Benutzer, der mit einem Team- oder Enterprise-Plan angemeldet ist. Wenn das verwaltete prependPlugins gesetzt ist, wird der Wächter nur geladen, wenn diese Liste ihn nennt, und zwar an der aufgeführten Position. Sein Quellcode befindet sich im Verzeichnis mods/sec-default des Claude Code-Repositorys.

Befehle

Diese Befehle und Flags laden, untersuchen und testen einen Mod. Die claude-Befehle werden in Ihrer Shell ausgeführt, die /-Befehle im Prompt von Claude Code. In der Tabelle steht <directory> für einen Pfad, den Sie eingeben, wie in claude plugin validate ./first-mod. Eckige Klammern kennzeichnen ein optionales Argument.

Befehl Was er bewirkt
/plugin Zeigt unter seinen Tabs eine Zeile wie 1 mod active · first-mod an, wenn ein nicht integrierter Mod geladen wurde
claude plugin validate <directory> Liest das Manifest und das Hooks-Modul eines Plugins und meldet Fehler, die Events, die es verarbeitet, und die Aufrufe der Mods-API, die es macht. --strict behandelt Warnungen als Fehler, und --json gibt einen maschinenlesbaren Bericht aus.
claude plugin test [directory] Führt jede Datei unter dem Verzeichnis aus, oder unter dem aktuellen Verzeichnis, wenn Sie keines angeben, deren Name auf .test.ts oder .test.tsx endet. Endet mit Status 1, wenn ein Test fehlschlägt.
claude --plugin-dir <directory> Lädt ein Plugin-Verzeichnis für eine Sitzung und lädt sein Hooks-Modul beim Speichern neu. Wiederholen Sie das Flag, um mehrere zu laden.
/reload-plugins Lädt Plugins neu, wenn Sie ihn ausführen