> ## Documentation Index
> Fetch the complete documentation index at: https://code.claude.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Fehlerbehebung für ein Mod

> Finden Sie heraus, warum ein Claude Code Mod nichts tut: Ordnen Sie das Symptom oder die Meldung seiner Ursache zu, schauen Sie sich Ablehnungsmeldungen an, und lesen Sie das Debug-Protokoll.

Wenn ein Modul eines Mods oder einer seiner Hooks fehlschlägt, überspringt Claude Code es und die Sitzung wird fortgesetzt, sodass ein fehlerhafter Mod wie einer aussehen kann, der nichts tut. Überprüfen Sie zunächst, was Claude Code aus Ihrem Mod gelesen hat und wo es ein Problem meldet, und suchen Sie dann das Symptom oder die Meldung, die Sie haben.

<h2 id="find-out-why-a-mod-does-nothing">
  Finden Sie heraus, warum ein Mod nichts tut
</h2>

Wenn ein Mod nichts tut, finden zwei Überprüfungen den Grund: was Claude Code aus den Dateien des Mods liest, und die Zeile, die es schreibt, wenn es etwas überspringt. Für das erste führen Sie in Ihrer Shell [`claude plugin validate`](/docs/de/plugins/mods/create#check-what-claude-code-reads-from-your-mod) mit dem Verzeichnis des Mods aus, wie in `claude plugin validate ./first-mod`. Es erfasst ein falsch geschriebenes Ereignis, ein fehlerhaftes Manifest und ein Modul, das Claude Code nicht lesen kann, ohne eine Sitzung zu starten.

Wenn ein Modul nicht geladen wird, ein Hook übersprungen wird oder ein anderer Mod Ihren ablehnt, schreibt Claude Code eine Zeile, die Ihren Mod benennt. Wo Sie diese Zeile lesen, hängt von der Sitzung ab:

* **Eine Sitzung, die ein Plugin-Verzeichnis neu lädt**: eine schwache Zeile im Transkript. Das ist eine interaktive Sitzung, die Sie mit `--plugin-dir` gestartet haben, oder eine, in der Sie [das Neuladen aktiviert haben](/docs/de/plugins/mods/create#ask-claude-for-a-mod) für Mods, die Claude geschrieben hat.
* **Jede andere interaktive Sitzung, wie eine, die einen Mod ausführt, den Sie von einem Marketplace installiert haben**: das [Debug-Protokoll](#read-the-debug-log) nur. Um eines zu erhalten, starten Sie die Sitzung mit `claude --debug`.
* **Ein `claude -p` Lauf mit `--plugin-dir`**: stderr, im Standard-Textausgabeformat. Eine Ablehnung durch einen anderen Mod geht nur ins Debug-Protokoll.

<h2 id="check-whether-mods-can-load">
  Überprüfen Sie, ob Mods geladen werden können
</h2>

Um zu überprüfen, ob Ihre Einrichtung Mods überhaupt laden kann, ohne einen zu installieren, führen Sie `claude plugin test` in Ihrer Shell aus, von einem Verzeichnis, das keinen Mod enthält. Sie benötigen keine Sitzung. Die Meldung, die es ausgibt, teilt Ihnen den Status mit:

| Meldung enthält | Was es bedeutet |
| :- | :- |
| `no hooks module to load` | Mods können geladen werden. Der Befehl hat keinen Mod zum Testen in diesem Verzeichnis gefunden. |
| `hooks modules are turned off here` | Eine Einstellung hält Ihre Mods aus: `disableAllHooks` in Ihren eigenen Einstellungen oder die Richtlinie Ihrer Organisation |
| `hooks modules are turned off in this process` | Anthropic hat installierte Mods remote ausgeschaltet. Keine Einstellung auf Ihrem Computer schaltet sie wieder ein. |

Eine Organisation kann auch `allowManagedModsOnly` setzen, um nur ihre eigenen Mods zuzulassen, was dieser Befehl nicht meldet. In diesem Fall wird ein Mod, den Sie installieren, nicht geladen, und [eine Meldung erklärt warum](/docs/de/plugins/mods/troubleshoot#messages-from-the-built-in-guard).

<h2 id="the-mod-doesn’t-load">
  Der Mod wird nicht geladen
</h2>

Nichts, das der Mod hinzufügt, wird angezeigt: kein Befehl, keine Zeichnung und keine Verhaltensänderung.

<h3 id="your-version-is-older-than-2-1-287">
  Ihre Version ist älter als 2.1.287
</h3>

`claude --version` gibt eine Version älter als 2.1.287 aus. Ihre Version stammt von vor der Zeit, als Mods standardmäßig aktiviert waren.

[Aktualisieren Sie Claude Code](/docs/de/setup#update-claude-code).

<h3 id="the-mods-active-line-doesn’t-name-the-mod">
  Die `mods active` Zeile benennt den Mod nicht
</h3>

Nichts, das der Mod hinzufügt, wird angezeigt, und die [`mods active` Zeile](/docs/de/plugins/mods/overview#see-which-mods-a-session-loaded) in `/plugin` benennt ihn nicht. Das Hooks-Modul wurde nicht geladen. Wenn Claude Code es ablehnte, hat das Debug-Protokoll eine Zeile, die mit `hooks module`, dem Namen des Mods und `not loaded:` beginnt, wie in `hooks module first-mod@inline not loaded: disableAllHooks in managed settings` für einen Mod, der mit `--plugin-dir` geladen wurde.

Lesen Sie den Grund nach dem Doppelpunkt. Der Abschnitt [Ablehnungsmeldungen](#refusal-messages) listet jeden auf. Wenn das Protokoll keine solche Zeile hat, arbeiten Sie die anderen Einträge in dieser Gruppe durch.

<h3 id="a-claude-p-run-prints-hooks-module-not-loaded">
  Ein `claude -p` Lauf gibt `hooks module not loaded` aus
</h3>

Die Zeile beginnt mit dem Namen des Mods und geht zu stderr. Das Hooks-Modul wurde abgelehnt. Ein nicht-interaktiver Lauf hat kein Transkript, daher geht die Meldung zu stderr.

Lesen Sie den Grund nach dem Doppelpunkt. Der Abschnitt [Ablehnungsmeldungen](#refusal-messages) listet jeden auf.

<h3 id="refusal-messages">
  Ablehnungsmeldungen
</h3>

Jede dieser folgt `hooks module`, dem Namen des Mods und `not loaded:` im Debug-Protokoll.

| Meldung beginnt mit | Was es bedeutet |
| :- | :- |
| `hooks modules are turned off for installed plugins in this process` | Anthropic hat installierte Mods remote ausgeschaltet. Keine Einstellung auf Ihrem Computer schaltet sie wieder ein. |
| `disableAllHooks in managed settings` | Ihre Organisation hat Hooks von installierten Plugins ausgeschaltet |
| `only managed plugins and built-in plugins run` | `allowManagedHooksOnly` ist gesetzt, oder `disableAllHooks` ist in einer Einstellungsdatei außer verwalteten Einstellungen gesetzt |
| `installed plugins that are not managed load no hooks module in this mode (--bare)` | Sie haben Claude Code mit `--bare` gestartet |
| `another plugin of that name loads first` | Zwei Plugins teilen sich einen Namen. Das verwaltete oder das zuerst geladene wird verwendet. |

<h3 id="messages-from-the-built-in-guard">
  Meldungen vom integrierten Guard
</h3>

Auf einem Computer mit verwalteten Einstellungen oder für einen Benutzer, der mit einem Team- oder Enterprise-Plan angemeldet ist, kann der [integrierte Guard](/docs/de/plugins/mods/admin#know-what-happens-by-default) einen Mod oder eine seiner Antworten ablehnen. Jede Meldung benennt die Option, die der Administrator Ihrer Organisation setzt, um die Regel zu ändern.

| Meldung enthält | Was es bedeutet | Wo es angezeigt wird |
| :- | :- | :- |
| `mods are limited to your organization's by policy (allowManagedModsOnly)` | Ihre Organisation erlaubt nur [ihre eigenen Mods](/docs/de/plugins/mods/admin#install-your-organizations-mods), daher wurde Ihrer nicht geladen | Das Debug-Protokoll und das Transkript in einer [Sitzung, die ein Plugin-Verzeichnis neu lädt](#find-out-why-a-mod-does-nothing) |
| `tried to lift a deny rule in your settings` | Der [`tool.check`](/docs/de/plugins/mods/reference#tools) Hook Ihres Mods genehmigte einen Aufruf, den eine `deny` Regel ablehnt. Der Aufruf bleibt abgelehnt. | Das Transkript und das Debug-Protokoll, einmal für jeden Mod in einer Sitzung. In einem `claude -p` Lauf nur das Debug-Protokoll. |
| `the deny rules in your settings could not be checked for this call, so it is refused` | Der Guard ist fehlgeschlagen, während er einen Aufruf überprüfte, den ein Mod genehmigte, daher lehnte er den Aufruf ab | Der Grund, den Claude für den abgelehnten Aufruf liest |

<h3 id="validate-passes-and-lists-no-hooks-line">
  `validate` besteht und listet keine `hooks` Zeile auf
</h3>

`hooks/hooks.json` hat keinen `modules` Schlüssel, oder der Schlüssel ist falsch geschrieben.

Fügen Sie `"modules": ["./register.js"]` hinzu.

<h3 id="hooks-module-did-not-load">
  `hooks module did not load`
</h3>

Die Zeile beginnt mit dem Namen des Mods, dann `hooks module did not load:` und ein Grund, der die Datei und Zeile angibt, wenn das Problem in Ihrem Code ist. Claude Code konnte das Modul nicht laden, zum Beispiel weil sein Code auf oberster Ebene geworfen wurde.

Beheben Sie den Fehler, den der Grund benennt.

<h3 id="options-do-not-fit-plugin-json-userconfig">
  `options do not fit plugin.json userConfig`
</h3>

Die Zeile beginnt mit dem Namen des Mods, dann `hooks module did not load: options do not fit plugin.json userConfig:` und ein Grund. Eine Option passt nicht zu ihrem [`userConfig`](/docs/de/plugins/components#user-configuration) Feld, wie eine Zahl über dem `max` Feld, oder ein erforderliches Feld hat keinen Wert.

Setzen oder ändern Sie den Wert. Das Ende der Zeile benennt seinen `pluginConfigs` Eintrag in `settings.json`.

<h3 id="no-mod-loads-in-a-directory-you-opened-for-the-first-time">
  Kein Mod wird in einem Verzeichnis geladen, das Sie zum ersten Mal geöffnet haben
</h3>

Sie haben die Vertrauensaufforderung für das Verzeichnis nicht beantwortet.

Starten Sie eine interaktive Sitzung in diesem Verzeichnis mit `claude`, und akzeptieren Sie die Vertrauensaufforderung, die sie öffnet.

<h3 id="no-installed-plugin-loads-at-all">
  Kein installiertes Plugin wird überhaupt geladen
</h3>

Sie haben Claude Code mit `--safe-mode` gestartet.

Starten Sie ohne das Flag.

<h2 id="a-hook-is-skipped-or-a-mod-is-unloaded">
  Ein Hook wird übersprungen oder ein Mod wird entladen
</h2>

Der Mod wurde geladen, und dann übersprungen Claude Code einen seiner Hooks oder entlud ihn.

<h3 id="hook-skipped">
  `hook skipped`
</h3>

Die Zeile benennt den Mod und das Ereignis, dann sagt `hook skipped:` und ein Grund, wie in `first-mod: tool.call hook skipped: threw Error: boom`. Ein Hook warf, lief über sein [10-Sekunden-Zeitlimit](/docs/de/plugins/mods/reference#limits) hinaus, oder gab ein Ergebnis der falschen Form zurück. Die Zeile wird einmal für jedes Ereignis und jede Art von Fehler angezeigt, bis der Mod neu geladen wird.

Beheben Sie den Fehler. Das Debug-Protokoll hat eine Zeile für jedes Vorkommen.

<h3 id="it-crashed-the-hooks-worker">
  `it crashed the hooks worker`
</h3>

Die Zeile beginnt mit dem Namen des Mods, wie in `first-mod was unloaded: it crashed the hooks worker`. Installierte Mods teilen sich einen Worker-Thread. Der Worker hat nicht mehr reagiert oder ist abgestürzt, und Claude Code hat das auf diesen Mod zurückgeführt und ihn entladen. Ein Hook, der den Thread blockiert, wie eine Schleife, die nie erwartet, ist eine Ursache.

Beheben Sie den Hook.

<h3 id="mods-that-run-in-the-hooks-worker-are-off-for-this-session">
  `mods that run in the hooks worker are off for this session`
</h3>

Die Zeile liest `hooks: mods that run in the hooks worker are off for this session: it crashed 3 times`. Der Worker ist dreimal gestoppt worden und Claude Code konnte die Stopps nicht auf einen Mod zurückführen, daher entlud es jeden Mod, der nicht integriert ist, einschließlich Mods, die Ihre Organisation installiert. Diese Zeile erreicht das Transkript in jeder interaktiven Sitzung.

Führen Sie `/reload-plugins` aus, um sie wieder zu laden.

<h2 id="a-tool-call-is-denied">
  Ein Tool-Aufruf wird abgelehnt
</h2>

Der Mod wurde geladen und seine Hooks laufen, und ein Tool-Aufruf, den er berührte, wird abgelehnt.

<h3 id="a-hook-changed-this-call’s-input-after-the-model-wrote-it">
  `a hook changed this call's input after the model wrote it`
</h3>

Im Auto-Modus gibt ein abgelehnter Tool-Aufruf diesen Grund an. Ein Hook hat die Eingabe des Tool-Aufrufs geändert, nachdem der [serverseitige Klassifizierer](/docs/de/permission-modes#server-side-classifier-review) ihn überprüft hat, daher deckt diese Überprüfung nicht ab, was ausgeführt würde. Der Hook kann ein [`tool.call`](/docs/de/plugins/mods/reference#tools) oder [`turn.step`](/docs/de/plugins/mods/reference#turns) Hook eines Mods sein, oder ein [`PreToolUse`](/docs/de/hooks#pretooluse) Einstellungs-Hook. Die Meldung sagt nicht, welcher.

Die Meldung teilt Claude mit, den Aufruf einmal mehr wie aufgezeichnet auszugeben. Wenn dieser auch abgelehnt wird, ändert der Hook die Eingabe jedes Mal, daher schalten Sie den Mod oder Hook aus, oder verlassen Sie den Auto-Modus und genehmigen Sie den Aufruf selbst.

<h3 id="a-message-about-the-deny-rules-in-your-settings">
  Eine Meldung über die Deny-Regeln in Ihren Einstellungen
</h3>

`tried to lift a deny rule in your settings` und `the deny rules in your settings could not be checked for this call, so it is refused` kommen beide vom integrierten Guard.

Schauen Sie sie in [Meldungen vom integrierten Guard](#messages-from-the-built-in-guard) nach.

<h2 id="a-drawing-doesn’t-appear-or-respond">
  Eine Zeichnung wird nicht angezeigt oder reagiert nicht
</h2>

Der Mod wurde geladen, und sein Bereich, Band oder Steuerelemente verhalten sich nicht wie erwartet.

<h3 id="a-pane-or-band-is-empty-or-shows-claude-code’s-usual-content">
  Ein Bereich oder Band ist leer oder zeigt den üblichen Inhalt von Claude Code
</h3>

Der [Baum](/docs/de/plugins/mods/interface#build-a-tree-from-elements), den Ihr Hook zurückgab, wurde nicht validiert. Mit `--plugin-dir` sagt das Transkript `ui.render (Pane) refused:` mit dem Grund, wie in `first-mod: ui.render (Pane) refused: Box prop "flexDirection" must be one of row, column, row-reverse, column-reverse; the engine drew its own`. Das Debug-Protokoll hat `a hook returned a tree that does not validate` mit dem gleichen Grund.

Lesen Sie den Grund auf dieser Zeile. Häufige Ursachen sind eine Eigenschaft, die das Element nicht annimmt, und ein Element, das die App nicht hat.

<h3 id="ui-open-runs-and-no-pane-appears">
  `$.ui.open` läuft und kein Bereich wird angezeigt
</h3>

Der Aufruf kam nicht von etwas, das der Benutzer tat, und das Terminal ist schmaler als 144 Spalten.

Öffnen Sie den Bereich von einem Befehl oder einer Schaltfläche, oder überprüfen Sie das `isPlaced` Ergebnis des Aufrufs. Siehe [Öffnen Sie einen Bereich zur richtigen Zeit](/docs/de/plugins/mods/interface#open-a-pane-at-the-right-time).

<h3 id="hotkeys-do-nothing">
  Hotkeys tun nichts
</h3>

Ihr Bereich hat keinen Tastaturfokus.

Drücken Sie Strg+X und dann Tab, oder klicken Sie auf den Bereich. Öffnen Sie ihn mit `focus: true` von einem Befehl.

<h3 id="a-drawing-works-in-the-terminal-and-not-in-the-desktop-app">
  Eine Zeichnung funktioniert im Terminal und nicht in der Desktop-App
</h3>

Die Website oder das Element ist dort nicht verfügbar.

Überprüfen Sie die [Render-Websites](/docs/de/plugins/mods/reference#render-sites) und [Elemente](/docs/de/plugins/mods/reference#elements) Tabellen.

<h2 id="an-edit-or-a-value-is-lost">
  Eine Bearbeitung oder ein Wert geht verloren
</h2>

Der Mod läuft, und eine Änderung, die Sie vorgenommen haben, oder ein Wert, den er beibehielt, ist nicht vorhanden.

<h3 id="your-edits-don’t-take-effect">
  Ihre Bearbeitungen werden nicht wirksam
</h3>

Sie bearbeiten ein Plugin, das Sie installiert haben. Claude Code führt die zwischengespeicherte Kopie für die installierte Version aus.

Entwickeln Sie mit `--plugin-dir` auf Ihre Arbeitskopie, wie in `claude --plugin-dir ./first-mod`, die beim Speichern neu lädt.

<h3 id="a-value-resets-when-the-module-reloads">
  Ein Wert wird zurückgesetzt, wenn das Modul neu geladen wird
</h3>

Variablen auf Modulebene werden bei jedem Neuladen neu initialisiert.

[Behalten Sie den Wert in `$.state` oder `$.store`](/docs/de/plugins/mods/interface#keep-state).

<h3 id="a-value-resets-after-/clear-/resume-or-/branch">
  Ein Wert wird nach `/clear`, `/resume` oder `/branch` zurückgesetzt
</h3>

Ein Wert wird zurückgesetzt, oder ein gespeicherter Wert wird durch seinen Standard ersetzt. Jeder dieser Befehle setzt `$.state` auf seine Standards zurück, und `session.start` wird nicht erneut ausgelöst.

[Laden Sie den gespeicherten Wert nach `/clear` erneut](/docs/de/plugins/mods/interface#load-a-saved-value-again-after-clear) in einem `classic.SessionStart` Hook.

<h2 id="read-the-debug-log">
  Lesen Sie das Debug-Protokoll
</h2>

Das Debug-Protokoll hat eine Zeile für jedes Modul, das Claude Code lädt oder ablehnt, jeden Hook, der fehlschlägt, und jedes Ergebnis, das es ablehnt, daher ist es der Ort, an dem man nachschaut, wenn das Transkript nichts zeigt. Um eines zu schreiben, starten Sie Claude Code in Ihrer Shell mit `--debug`, oder mit `--debug-file <path>`, um zu wählen, wo es geht:

```bash theme={null}
claude --debug-file ./mod-debug.log --plugin-dir ./first-mod
```

Folgen Sie in einem anderen Terminal der Datei und filtern Sie nach dem Namen Ihres Mods:

```bash theme={null}
tail -f ./mod-debug.log | grep first-mod
```

Ein Mod, der geladen wurde, hat eine Zeile, die ihn benennt und die Ereignisse auflistet, die er verbindet. Ein Mod, der mit `--plugin-dir` geladen wurde, wird unter seinem Namen gefolgt von `@inline` angezeigt:

```text theme={null}
hooks module first-mod@inline loaded (worker, environment 2, tier user); events: session.start,tool.call,command.run,ui.render
```

Eine Zeichnung, die nicht validiert wurde, zählt als abgelehntes Ergebnis und erhält auch eine Zeile. Um Ihre eigenen Zeilen im Protokoll zu schreiben, rufen Sie [`$.ui.log`](/docs/de/plugins/mods/api#show-something-without-starting-a-turn) mit einem zweiten Argument auf, wie in `$.ui.log('message', { to: 'debug' })`. Ohne das zweite Argument fügt `$.ui.log` eine schwache Zeile zum Transkript hinzu.

Während Sie einen Mod bearbeiten, der mit `--plugin-dir` geladen wurde, zeigt das Transkript eine Zeile für jedes Neuladen, die den Mod benennt und seine Hooks auflistet. Wenn ein Speichern das Modul bricht, sagt die Zeile `reload failed, the previous version stays loaded:` mit dem Grund, und die letzte funktionierende Version läuft weiter.

<h2 id="next-steps">
  Nächste Schritte
</h2>

* [Testen Sie einen Mod](/docs/de/plugins/mods/test): Fangen Sie Probleme ab, bevor sie eine Sitzung erreichen
* [Fehlerbehebung für Plugins](/docs/de/plugins/troubleshooting): Probleme mit der Installation und dem Laden eines Plugins, die nicht spezifisch für Mods sind
