Zum Inhalt springen
claudemods

Mission Control: Claude Code Subagents und Tool-Aufrufe live verfolgen

Ein Live-Pane mit Haupt-Agent, Subagents und jedem Tool-Aufruf von Claude Code, dazu eine Karte der berührten Dateien.

Berechtigungen

  • Liest DateienKann Dateien lesen und Verzeichnisse auf deinem Rechner auflisten ($.fs.read / list / stat / exists).
  • Schreibt DateienKann Dateien auf deinem Rechner anlegen oder überschreiben ($.fs.write).
  • Führt Befehle ausKann Shell-Programme auf deinem Rechner ausführen ($.process.run / spawn). Im Quellcode siehst du, welche genau.
  • Ruft das Modell auf (nutzt dein Kontingent)Kann eigene Anfragen an Claude senden, die auf die Nutzung deines Plans angerechnet werden ($.model.* / $.agent.spawn).
  • Fängt Tool-Aufrufe abSieht jeden Tool-Aufruf von Claude (tool.call / tool.check) und könnte ihn blockieren oder verändern.
  • Verändert die OberflächeZeichnet in die Oberfläche von Claude Code: Leisten, Bereiche, Statustext, Toasts (ui.render / $.ui.*).
  • Fügt Befehle/Tools hinzuRegistriert neue Slash-Befehle oder Tools, die du oder Claude aufrufen können ($.command.register / $.tool.register).
getestet mit
v2.1.296
zuletzt getestet
erfordert
Claude Code ≥ 2.1.287
Oberflächen
Bereich, über dem Prompt

In Claude Code installieren:

/plugin install mission-control --marketplace hamzafer/claude-code-mods
Alle Installationswege ↓

Was macht diese Mod?

Mission Control ist eine Community-Mod von Hamza Zafar (hamzafer) aus seiner Sammlung claude-code-mods. Sie zeigt an einer Stelle, was Claude Code gerade tut: den Haupt-Agenten, die Claude Code Subagents und jeden Tool-Aufruf, den sie machen. Führe /mission aus, und neben dem Chat öffnet sich ein Pane mit einem Baum. Oben steht die Hauptschleife, jeder Subagent hängt darunter, und die Tool-Aufrufe stehen unter dem Agenten, der sie gemacht hat. Folgen desselben Tools werden zu einer Zeile zusammengefasst, etwa read: README.md → src/login.js ×2, und jede Zeile zeigt ihre Dauer.

Während Claude arbeitet und noch 30 Sekunden danach fasst eine einzelne Zeile über dem Prompt alles zusammen: ◈ mission: 2 tools, dazu Agenten- und Dateizahlen, wenn es welche gibt. Eine zweite Ansicht, /mission code, zeichnet eine Karte der Dateien, die Claude gelesen oder bearbeitet hat, mit Pfeilen für die relativen Imports zwischen ihnen, einem Leuchten auf der Datei, die gerade berührt wird, und einer einzeiligen Notiz zu jeder Änderung. Laut README des Autors braucht die Sammlung Claude Code 2.1.287 oder neuer; wir haben sie mit 2.1.296 getestet.

Demo

Die Aufnahme startet Claude Code mit geladener Mod im kleinen Demo-Projekt und bittet Claude, README.md und src/login.js zu lesen und in einem Satz zu sagen, was sie tun. Claude liest beide Dateien, und während es arbeitet, zählt die Band-Zeile über dem Prompt die Tools. Nach der Antwort tippt der Clip /mission. Das Pane öffnet sich über dem Prompt mit den Schaltflächen Who, Code und Close, der Zusammenfassung 0 agents (0 running) · 2 tool calls, der grünen Hauptzeile mit dem Prompt-Text und darunter der zusammengefassten Zeile read: demo-app/README.md → src/login.js ×2. Die Code-Karte ist im Clip nicht zu sehen.

Installation

Nutze eine beliebige Methode aus dem Installationsblock; alle installieren direkt aus dem eigenen Marketplace des Autors. Führe dann in einer Sitzung /mission aus. Wenn du in eine bereits offene Sitzung installierst, führe zuerst /reload-plugins aus.

$ install mission-control

Erfordert Claude Code ≥ 2.1.287

Wird aus dem Marketplace des Autors installiert: hamzafer/claude-code-mods

  1. 1.Eine Zeile, direkt in Claude Code

    /plugin install mission-control --marketplace hamzafer/claude-code-mods

    In eine laufende Sitzung einfügen (v2.1.275+). Claude Code fragt zuerst, ob der Marketplace hinzugefügt werden soll.

  2. 2.Aus deiner Shell

    claude plugin marketplace add hamzafer/claude-code-mods
    claude plugin install mission-control@claude-code-mods

    Führe danach in jeder bereits geöffneten Sitzung /reload-plugins aus.

  3. 3.Ohne Installation ausprobieren

    git clone https://github.com/hamzafer/claude-code-mods
    claude --plugin-dir ./claude-code-mods/mods/mission-control

    Lädt die Mod nur für eine Sitzung. An deinen Einstellungen wird nichts geändert.

So funktioniert es

Die Mod hält Baum, Dateiliste und Ansicht in vom Host verwalteten $.state-Atomen, sodass ein Hot Reload das Bild erhält. Jeder Tool-Aufruf wird in einen tool.call-Hook gehüllt, der einen Knoten anlegt, den Aufruf laufen lässt und ihn dann als erledigt oder fehlgeschlagen markiert. Aus hooks/register.tsx:

let failed = true
let r: Awaited<ReturnType<typeof next>>
try {
  r = await next(e)
  failed = r.deny !== undefined || r.isError === true
} finally {
  await update($, nodes, list => list.map(n => (n.id === id ? { ...n, status: failed ? 'failed' : 'done', end: Date.now() } : n)))
}

agent.spawn fügt Subagents hinzu, turn.start setzt den Baum zurück, und turn.complete schließt alles, was noch als laufend markiert ist. Aufrufe von Agent und von Claude Codes eigenen Verwaltungs-Tools (ToolSearch, TaskCreate und ähnliche) bleiben außen vor. Eine Uhr im Sekundentakt aktualisiert die Anzeige nur, solange etwas läuft; der Baum ist auf 300 Knoten begrenzt. Für die Code-Karte baut hooks/map.ts ein SVG: Es liest jede berührte Quelldatei über $.fs.read, findet relative Imports per Regex und ordnet die Dateien nach Import-Tiefe in Spalten an. Headless Chrome macht aus dem SVG ein PNG, das mit dem Image-Element des Panes angezeigt wird.

Anpassen

In /config gibt es keine Optionen. Die einzigen Bedienelemente sind /mission, /mission who und /mission code sowie die Pane-Tasten w, c und q. Um das Verhalten zu ändern, bearbeite die Konstanten oben in register.tsx: MAX_NODES (Baumgröße), MAX_FILES (Dateien auf der Karte), BAND_AFTER_MS (wie lange das Band stehen bleibt), INTERNAL (Tools, die nicht im Baum erscheinen) und CODE_FILE (Dateitypen, die auf der Karte erscheinen).

Berechtigungen & Sicherheit

Wir lesen jede Datei, die das Plugin ausführen kann, bevor wir es starten: .claude-plugin/plugin.json, hooks/hooks.json, hooks/register.tsx, hooks/map.ts, hooks/tree.ts, die Typdeklarationen und die Tests. Es gibt keine package.json, kein Installationsskript, keine Binärdatei und keinen gebündelten Code, und wir fanden kein verstecktes Unicode, kein eval und keinen Remote-Code.

  • Netzwerk: kein eigenes. Kein fetch, keine Sockets, keine Hosts.
  • Modellaufruf: explain() in register.tsx ruft $.model.complete mit model: 'haiku' auf, nachdem ein Haupt-Turn Dateien bearbeitet oder geschrieben hat. Der Prompt enthält bis zu 300 Zeichen jedes old_string und new_string (400 bei einer geschriebenen Datei), und die Antwort wird zu einer Notiz von höchstens 80 Zeichen auf der Karte. Die Antwort wird als JSON geparst, gekürzt und escaped, bevor sie ins SVG gelangt. Sie verbraucht das Kontingent deiner Sitzung.
  • Prozesse: ein sh -c-Skript über $.process.run, das headless Chrome mit einem Wegwerf-Profil startet, auf den Screenshot wartet und dieses Chrome dann beendet. Datei- und Ordnernamen werden als Argumente übergeben, nicht in den Shell-String eingesetzt. Chrome startet nur, solange das Pane in der Code-Ansicht offen ist.
  • Dateischreibzugriffe: nur $TMPDIR/mission-control/: map.svg, zwei map-N.png-Dateien und ein Chrome-Profilordner. Nichts unter ~/.claude, in Einstellungen, Shell-Dateien oder LaunchAgents. Die Mod liest die Dateien, die Claude berührt, um Imports zu finden, und hält Änderungsausschnitte im Speicher.
  • Daemons: keine. Die Sekundenuhr endet mit der Sitzung, und Chrome wird nach jedem Screenshot beendet.
  • Secrets und Umgebung: sie liest nur TMPDIR.
  • Telemetrie: keine.
  • Einfluss auf Prompts: sie fügt keinen additionalContext hinzu und schreibt weder Prompts noch Tool-Ergebnisse um.
  • Gating-Hooks: tool.call und agent.spawn werden umhüllt, und claude plugin validate führt sie als Gating-Hooks ohne .catch auf. Sie beobachten nur; tool.call gibt das Ergebnis des Tools unverändert zurück und ändert keine Argumente.
  • Externe Voraussetzung: die Code-Karte braucht Google Chrome unter /Applications/Google Chrome.app (macOS-Pfad); die Who-Ansicht nicht.
  • Lizenz: MIT, mit LICENSE-Datei.

claude plugin validate meldete keine Fehler oder Warnungen, und die 7 Tests des Autors liefen unter Claude Code 2.1.296 durch.

Liest Dateien
Kann Dateien lesen und Verzeichnisse auf deinem Rechner auflisten ($.fs.read / list / stat / exists).
Schreibt Dateien
Kann Dateien auf deinem Rechner anlegen oder überschreiben ($.fs.write).
Führt Befehle aus
Kann Shell-Programme auf deinem Rechner ausführen ($.process.run / spawn). Im Quellcode siehst du, welche genau.
Ruft das Modell auf (nutzt dein Kontingent)
Kann eigene Anfragen an Claude senden, die auf die Nutzung deines Plans angerechnet werden ($.model.* / $.agent.spawn).
Fängt Tool-Aufrufe ab
Sieht jeden Tool-Aufruf von Claude (tool.call / tool.check) und könnte ihn blockieren oder verändern.
Verändert die Oberfläche
Zeichnet in die Oberfläche von Claude Code: Leisten, Bereiche, Statustext, Toasts (ui.render / $.ui.*).
Fügt Befehle/Tools hinzu
Registriert neue Slash-Befehle oder Tools, die du oder Claude aufrufen können ($.command.register / $.tool.register).

Kompatibilität & Fehlerbehebung

Geprüft mit Claude Code 2.1.296 unter macOS (validate, Tests und die Aufnahme). Wenn etwas nicht stimmt:

  • /mission ist ein unbekannter Befehl. Prüfe in /plugin, ob das Plugin geladen ist, und führe nach einer frischen Installation /reload-plugins aus.
  • Die Code-Karte meldet, dass sie Google Chrome braucht. Installiere Chrome unter /Applications/Google Chrome.app. Die Mod sucht nur an diesem Pfad.
  • „Nothing yet“. Der Baum füllt sich, während ein Turn läuft. Starte eine Aufgabe, und die Zeilen erscheinen.
  • Keine Karte außerhalb des Terminals. In anderen Oberflächen meldet das Pane, dass die Code-Karte im Terminal gezeichnet wird.
  • Band-Zeile fehlt. Sie erscheint nur, während Claude arbeitet, und 30 Sekunden danach, und nicht, solange eine Umfrage offen ist.

FAQ

Ändert oder blockiert Mission Control meine Tool-Aufrufe?
Nein. Der tool.call-Hook protokolliert den Aufruf, lässt ihn mit next(e) laufen und gibt das Ergebnis unverändert zurück. Er lehnt keinen Aufruf ab, schreibt keinen um und verzögert ihn nicht über die Buchführung hinaus.
Ruft die Mod das Modell oder das Netzwerk auf?
Eigene Netzwerkanfragen stellt sie nicht. Nach einem Turn, der Dateien bearbeitet hat, lässt sie Claude Code eine kleine haiku-Completion ausführen, die pro geänderter Datei eine einzeilige Notiz schreibt. Der Prompt enthält bis zu einige hundert Zeichen jeder Änderung, dieser Text geht also an den Modellanbieter, den du ohnehin nutzt.
Brauche ich Google Chrome?
Nur für die Code-Karte. Der Who-Baum braucht nichts weiter. Die Code-Karte rendert ein SVG mit headless Chrome unter /Applications/Google Chrome.app und zeigt einen Hinweis, wenn Chrome dort nicht liegt.
Wie öffne und schließe ich es?
Führe /mission aus, oder /mission code für die Code-Karte. Im Pane zeigt w den Baum, c die Code-Karte, und q schließt es.
Worin unterscheidet es sich von Agent Radar?
Agent Radar ist eine eigene Community-Mod zum Beobachten von Agenten. Mission Control listet zusätzlich jeden Tool-Aufruf unter seinem Agenten, fasst Folgen desselben Tools zusammen und zeichnet eine Karte der berührten Dateien mit den Imports zwischen ihnen.
Agent Radar in Claude CodeEmpfohlen

Agent Radar

Pro laufendem Subagent eine Live-Zeile über der Eingabe: Zeit, Tool-Anzahl und aktuelle Aktion, dazu ein /radar-Pane.

  • über dem Prompt
  • Bereich
  • Toast
  • Fängt Tool-Aufrufe ab
  • Liest deine Prompts
  • Verändert die Oberfläche
  • Fügt Befehle/Tools hinzu

getestet mit v2.1.291

Tool-Call-Zähler in Claude CodeEmpfohlen

Tool-Call-Zähler

Zählt Claudes Tool-Aufrufe pro Turn und Sitzung, zeigt sie neben dem Spinner und ergänzt /tally als Übersicht.

  • Spinner
  • Verlauf
  • Statuszeile
  • Fängt Tool-Aufrufe ab
  • Verändert die Oberfläche
  • Fügt Befehle/Tools hinzu

getestet mit v2.1.310

Mehr in Panes & Dashboards, Timer, Todos, Standups.