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.
Die vollständige Referenz sind die TypeScript-Deklarationen für Mods von Claude Code, die jedes Event, jede Methode und jedes Element mit Beispielen beschreiben. Die Kopie auf GitHub kann älter sein als die Claude Code-Version, die Sie installiert haben. Wenn die beiden voneinander abweichen, verlassen Sie sich auf die Kopie, die Claude Code für Ihre Version schreibt.
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
Paneoder des Bands: Zeichnen Sie aufe.props.bodyColumns - Höhe eines
Paneneben dem Transkript: Woe.props.placementden Wert'dock'hat, iste.props.scroll.bodyRowsdie Anzahl der Zeilen, die der Bereich hat - Höhe eines
Paneüber dem Prompt: Woe.props.placementden Wert'inline'hat, wächst der Bereich mit Ihrem Baum bis zu einem Limit, undbodyRowszählt nur die aktuell sichtbaren Zeilen. Das Feldrowsvon$.ui.openfordert 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 |