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, und jede Render-Stelle, an der er zeichnen kann – für die Claude Code CLI und die Desktop-App ab v2.1.287. Jeder Eintrag enthält den Namen und eine einzeilige Beschreibung sowie, sofern vorhanden, einen Link zum 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 installierte Version von Claude Code. 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 erforderlichen Felder 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, zum Beispiel hooks/register.js |
Ja | Der Einstiegspunkt des Mods. Exportiert register(on, options). Mit der Endung .js, .mjs, .cjs, .jsx, .ts, .mts, .cts oder .tsx. Ein ES-Modul. |
types/index.d.ts, im Manifest durch types angegeben |
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, wobei Standardwerte ergänzt werden.
Die Hook-Funktion
Ein Mod registriert jeden seiner Hooks, also Event-Handler, indem er on innerhalb von register 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 in 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 verworfen 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 einem späteren Tier, 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 es 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
Events sind danach gruppiert, was sie betreffen, jeweils mit der Angabe, wann sie ausgelöst werden und 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 mit dem genannten geänderten Feld weiter, 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 durchführt, 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 entscheidet, ob ein Tool-Aufruf ausgeführt werden darf, nach den Hooks tool.call und PreToolUse. 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 für jedes 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 auszulassen |
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 auszulassen |
skill.prompt |
Der Text eines Skills für Claude expandiert wird | { text } |
attribution.text |
Claude Code den Attributionstext für einen Commit oder Pull Request erstellt | { 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 für jeden 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 für jede /config-Zeile |
{ label, description, isHidden } |
Turns
Turn-Events verfolgen eine Antwort von Anfang bis 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 gesendet wird | 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, dass die Sitzung startet, endet, komprimiert wird und Nachrichten mit anderen Sitzungen austauscht:
| 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 dorthin gesendet wird. 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 umzuschreiben |
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 genutzte Prozentsatz eines Planlimits ä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 für jede App, Render-Stelle und jeden Mod. Das Ergebnis ist die Element-Tabelle, 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, Mods-API-Aufrufe, Umgebungsvariablen und seinen Zustand 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 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 von Einstellungs-Hooks
Jedes Event eines Einstellungs-Hooks ist ein Event mit dem Namen classic.<Event>, etwa classic.Stop oder classic.PostToolUse. e ist das stdin-JSON des Hooks.
Mods-API-Aufrufe
Jede Mods-API-Methode 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 dem Aufruf $.ui.open(...) entspricht. 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 direkt, sodass ein anderer Prozess eine teilweise geschriebene Datei lesen kann. Speichern Sie Daten, die von mehreren Sitzungen geändert werden, 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 Zustand: 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 aufführt. |
$.audio |
play, speak |
$.telemetry |
log, mark. Ein Eintrag wird nur gesendet, wenn Claude Code oder ein integrierter Mod den Aufruf ausführt. |
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 Herkunft 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 ID des Agenten | 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 gemessen hat. Sein Wert rows ist die Höhe des gesamten Fensters, nicht die Ihres Bereichs.
Um einen Baum an seine Stelle anzupassen, lesen Sie im Hook die folgenden Props:
- Breite eines
Paneoder des Bands: Zeichnen Sie aufe.props.bodyColumns - Höhe eines
Paneneben dem Transkript: Wenne.props.placementden Wert'dock'hat, iste.props.scroll.bodyRowsdie Anzahl der Zeilen, die der Bereich hat - Höhe eines
Paneüber dem Prompt: Wenne.props.placementden Wert'inline'hat, wächst der Bereich mit Ihrem Baum bis zu einer Grenze, undbodyRowszählt nur die aktuell angezeigten Zeilen. Über das Feldrowsvon$.ui.openlässt sich eine andere Grenze anfordern.
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 über $.ui.resolve(e). Einen Baum aus Elementen erstellen zeigt die gängigen Elemente und wie das Terminal sie darstellt, und die Interface-Galerie enthält Screenshots der meisten. Ein Häkchen bedeutet, dass die App das Element darstellen 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 zu 512, rows bis zu 256, cells. Siehe Ein Raster farbiger Zellen zeichnen. |
✓ | |
Image |
PNG- oder RGBA-Bytes bis zu 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 die Schaltfläche, wenn diese Tastenkombination ein Akkord oder eine Taste mit Modifikator ist. Ein Ziffern-hotkey auf einer Schaltfläche im Band wird auch ausgelöst, wenn der Benutzer nur diese Ziffer in einen leeren Prompt eingibt und innehält. Wenn zwei Schaltflächen in einer Zeichnung denselben hotkey angeben, erhält ihn die spätere. autoFocus akzeptiert bei jedem Steuerelement nur true; lassen Sie die Prop also weg, um es deaktiviert zu lassen.
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 Ereignis, ohne die Zeit innerhalb von next oder eines Aufrufs der Mods-API außer $.clock.sleep |
10 Sekunden |
Ausführungszeit eines .catch-Handlers |
1 Sekunde |
Alle session.end-Hooks zusammen |
1,5 Sekunden |
$.process.run-Timeout |
Standardmäßig 30 Sekunden, höchstens 10 Minuten |
$.model.complete maxTokens |
Standardmäßig 1024, bis zu 64.000 oder das Ausgabelimit des Modells |
$.fs.read und $.fs.write |
4 MiB für eine Datei |
Ein String-Kindelement 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 bzw. 30 im Terminal für den sichtbaren Bereich, das erweiterte Band und die Hinweiszeile unter dem Eingabefeld. Früher eingehende 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, Subagent-Typen und Bereichen | Buchstaben, Ziffern, _ und -, bis zu 64 Zeichen |
Ein Test von claude plugin test |
5 Sekunden, sofern der Test nicht timeoutMs festlegt |
Einstellungen und Umgebungsvariablen
Dies sind die Einstellungen und Umgebungsvariablen, die sich auf Mods auswirken. Die Spalte „Ort“ gibt an, aus welcher Einstellungsdatei oder Umgebung die jeweilige Einstellung gelesen wird:
| Name | Ort | 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 und 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 laufen vor jedem Mod, 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 die in Claude Code integrierten Mods. Die Einstellungs-Hooks der Benutzer laufen weiter. |
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 |
Jede Einstellungsdatei | In verwalteten Einstellungen wird kein Mod und kein Hook aus einem installierten Plugin ausgeführt. In Ihren eigenen Einstellungen läuft weiterhin, was Ihre Organisation verwaltet. 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, mit der ID des Plugins als Schlüssel, etwa acme-guard@acme-tools, oder mit seinem Namen und @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 aufführt, und zwar an der aufgeführten Position. Sein Quellcode befindet sich im Verzeichnis mods/sec-default des Claude Code-Repositorys.
Befehle
Mit diesen Befehlen und Flags laden, prüfen und testen Sie 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 | Funktion |
|---|---|
/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 behandelten Events sowie die Aufrufe der Mods-API. --strict behandelt Warnungen als Fehler, und --json gibt einen maschinenlesbaren Bericht aus. |
claude plugin test [directory] |
Führt jede Datei unter dem Verzeichnis aus, deren Name auf .test.ts oder .test.tsx endet, bzw. im aktuellen Verzeichnis, wenn Sie keines angeben. Beendet sich mit Status 1, wenn ein Test fehlschlägt. |
claude --plugin-dir <directory> |
Lädt ein Plugin-Verzeichnis für eine Sitzung und lädt dessen Hooks-Modul beim Speichern neu. Wiederholen Sie das Flag, um mehrere zu laden. |
/reload-plugins |
Lädt Plugins neu, wenn Sie den Befehl ausführen |