Human in the loop: die Claude Code Human in the Loop Mod für Aufgaben, die nur du erledigen kannst
Claude weist dir Aufgaben zu, die nur du erledigen kannst. Sie warten in My tasks, gezählt unter dem Prompt.
Berechtigungen
- Fängt Tool-Aufrufe abSieht jeden Tool-Aufruf von Claude (tool.call / tool.check) und könnte ihn blockieren oder verändern.
- Liest deine PromptsKann sehen, was du eingibst, und den Gesprächsverlauf lesen (prompt.* / session.append / session.messages).
- 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).
- Speichert DatenBehält Daten zwischen Sitzungen im privaten Speicher des Plugins ($.store.*).
- getestet mit
- v2.1.310
- zuletzt getestet
- erfordert
- Claude Code ≥ 2.1.287
- Oberflächen
- Bereich, Statuszeile, Toast, Verlauf
In Claude Code installieren:
/plugin install human-in-the-loop --marketplace tzafrir/human-in-the-loopWas macht diese Mod?
Human in the loop ist eine Community-Mod von Tzafrir Rehan (tzafrir) und eine Claude Code Human in the Loop Mod für eine bestimmte Lage: Claude braucht etwas, das nur du tun kannst, etwa einen Schlüssel in .env, eine Freigabe auf Staging, einen Befehl auf deinem Rechner oder eine Entscheidung. Normalerweise erwähnt es das mitten in einer Antwort, und die Bitte scrollt weg. Mit dieser Mod weist Claude die Bitte stattdessen als Aufgabe zu.
Die Mod registriert drei Tools, assign_task, list_tasks und withdraw_task, und fügt dem System-Prompt ein paar Zeilen hinzu, die Claude anweisen, für alles, was nur du tun kannst (auch Reviews seiner Arbeit), assign_task zu verwenden. Eine Aufgabe hat einen Titel, eine Begründung in einem Satz, ein optionales „done when“ und eine Art: do (du erledigst es und markierst es als fertig), answer (Claude braucht deine Worte) oder choose (eine von 2 bis 4 Optionen wählen). Offene Aufgaben warten im Fenster My tasks und werden in der Statuszeile unter dem Prompt gezählt, etwa ☐ 1 task for you · /my-tasks. Du antwortest mit Done, einer Option, einer Antwort oder einer Ablehnung mit Begründung.
Aufgaben blockieren Claude nicht. Es arbeitet an anderem weiter, und deine Antwort erreicht es als Nachricht, wenn du sie gibst. Grenzen laut Code: höchstens 5 offene Aufgaben, dieselbe Bitte zweimal ist eine Aufgabe, und nur der Hauptagent kann Aufgaben zuweisen.
Demo
Die Aufnahme startet Claude Code mit geladener Mod im kleinen Demoprojekt und bittet Claude, mit assign_task eine Aufgabe zu vergeben: STRIPE_KEY in .env eintragen. Claude ruft das Tool auf, und im Transkript erscheint eine gelbe Zeile ☐ Assigned you a task: Put your STRIPE_KEY in the .env file, danach das Tool-Ergebnis mit Aufgabe #1 und 1 von 5 offenen Aufgaben. Unter dem Prompt zeigt die Statuszeile ☐ 1 task for you · /my-tasks, und rechts in der Fußzeile steht ein Toast: human-in-the-loop: Claude assigned you a task: Put your STRIPE_KEY in the .env file. See /my-tasks. In dieser schmalen Aufnahme öffnete sich das Fenster nicht von selbst, wofür der Toast da ist; das Video zeigt also weder das Fenster noch das Beantworten einer Aufgabe.
Installation
Nutze eine der Methoden im Installationsblock; sie installieren direkt aus dem eigenen Marketplace des Autors. Starte nach der Installation eine neue Sitzung oder führe /reload-plugins aus. /my-tasks öffnet das Fenster.
$ install human-in-the-loop
Erfordert Claude Code ≥ 2.1.287
Wird aus dem Marketplace des Autors installiert: tzafrir/human-in-the-loop
1.Eine Zeile, direkt in Claude Code
/plugin install human-in-the-loop --marketplace tzafrir/human-in-the-loopIn eine laufende Sitzung einfügen (v2.1.275+). Claude Code fragt zuerst, ob der Marketplace hinzugefügt werden soll.
2.Aus deiner Shell
claude plugin marketplace add tzafrir/human-in-the-loop claude plugin install human-in-the-loop@human-in-the-loopFühre danach in jeder bereits geöffneten Sitzung /reload-plugins aus.
3.Ohne Installation ausprobieren
git clone https://github.com/tzafrir/human-in-the-loop claude --plugin-dir ./human-in-the-loopLädt die Mod nur für eine Sitzung. An deinen Einstellungen wird nichts geändert.
So funktioniert es
hooks/register.tsx ist das einzige Hooks-Modul. Der Handler von assign_task prüft die Argumente, lehnt Duplikate und eine sechste offene Aufgabe ab, speichert die Aufgabe und öffnet das Fenster. Aus hooks/register.tsx:
on('tool.call', { tool: ASSIGN }, async ($, e) => {
if (e.agentId !== undefined) {
return { deny: 'Only the main agent assigns tasks to the user. Say what you need from the user in your result instead.' }
}
const ask = parseAsk(e as unknown as Record<string, unknown>)
if ('error' in ask) {
return { deny: ask.error }
}
// ...
return { result: assignedOf(task, active.length + 1) }
})Aufgaben liegen in $.state und in einem $.store-Schlüssel pro Sitzung unter dem Projektordner, geschrieben von einem 60-Sekunden-Heartbeat, damit die nächste Sitzung die Aufgaben einer beendeten oder stillen Sitzung übernehmen kann. Deine Antworten gehen per $.prompt.submit raus, wenn Claude im Leerlauf ist, oder werden mit $.session.append als Zeile angehängt, solange es arbeitet. Ein prompt.compose-Hook fügt den Steuerungstext hinzu, ein prompt.context-Hook listet offene Aufgaben zu Beginn und nach einer Kompaktierung auf.
Anpassen
Es gibt keine Optionen. Du steuerst die Mod mit den Buttons und Tasten des Fensters: d für Done, 1 bis 4 für Optionen, r zum Antworten, x zum Ablehnen, und Save for later oder Send now für den Zeitpunkt. Lange Antworten laufen über dein eigenes Prompt-Feld: Long answer… beginnt es mit ↳ Answer to #3:. Um Grenzen zu ändern: MAX_OPEN und MAX_TITLE stehen in hooks/tasks.ts, BATCH_MS in hooks/register.tsx.
Berechtigungen & Sicherheit
Wir haben vor dem Ausführen jede Datei gelesen, die das Plugin lädt: .claude-plugin/plugin.json, hooks/hooks.json, hooks/register.tsx, pane.ts, project.ts, tasks.ts, text.ts, die Typdeklarationen und die Tests. Es gibt keine package.json, kein Installationsskript, keinen gebündelten oder minifizierten Code und außer PNG- und GIF-Bildern keine Binärdatei. Eine LICENSE-Datei (MIT) ist vorhanden.
- Netzwerk, Prozesse, Dateien, Umgebung: keine. Die Suche in den Hooks ergab kein
fetch,child_process,$.process,$.http,evaloder dynamischesimport(). Gespeichert wird nur in$.storeund$.state; das Datenmodell steht indocs/privacy.md. Keine Telemetrie; laut Datenschutzerklärung des Autors verlässt nichts deinen Rechner. - Daemons: keine; der
$.clock.every-Heartbeat läuft nur, solange die Sitzung läuft. - Einfluss auf das Modell: Das ist der bemerkenswerte Teil. Die Mod fügt drei Tools hinzu, einen dreizeiligen Abschnitt am Ende des System-Prompts (
STEERING), einen KontextblockhumanInTheLoopmit den offenen Aufgaben und eine Zusammenfassung der Aufgaben-Updates, die an deinen nächsten Prompt angehängt wird. Außerdem sind ihre drei Tools immer sichtbar statt aufgeschoben. Der Text ist schlicht und passt zur README; in Code und Manifest haben wir keine versteckten oder Zero-Width-Zeichen gefunden (nur in Emoji-Teststrings). - Gating-Hooks: Die
tool.call-Hooks beantworten nur die drei eigenen Tools, undprompt.submitliest deinen Prompt, um eine lange Antwort (↳ Answer to #N:) zu erkennen und noch nicht gesendete Antworten anzuhängen. Eine Antwort, die wie ein Geheimnis aussieht, wird mit einem Hinweis verworfen statt gesendet. Jeder andere Tool-Aufruf läuft unverändert durch.validatevermerkt, dass diese Hooks kein.catchhaben. - Prompts, die sie abschickt: deine Antworten auf Aufgaben in deinen Worten und eine feste Zeile:
I answered a task while you were finishing your reply; my answer is above. - Voraussetzungen: Function Hooks müssen in Claude Code aktiviert sein (die README nennt sie Early Access). Kein externes Binary, kein Konto.
claude plugin validate lief ohne Fehler und Warnungen durch, und die Tests des Autors bestanden auf Claude Code 2.1.310: 192 bestanden, 0 fehlgeschlagen.
- Fängt Tool-Aufrufe ab
- Sieht jeden Tool-Aufruf von Claude (tool.call / tool.check) und könnte ihn blockieren oder verändern.
- Liest deine Prompts
- Kann sehen, was du eingibst, und den Gesprächsverlauf lesen (prompt.* / session.append / session.messages).
- 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).
- Speichert Daten
- Behält Daten zwischen Sitzungen im privaten Speicher des Plugins ($.store.*).
Kompatibilität & Fehlerbehebung
Geprüft mit Claude Code 2.1.310 auf macOS (validate, Tests und Aufnahme). Wenn nichts passiert:
- Function Hooks sind aktiviert, und das Plugin ist in
/plugingeladen. - Du hast nach der Installation eine neue Sitzung gestartet oder
/reload-pluginsausgeführt. - Claude weist nur dann eine Aufgabe zu, wenn der System-Prompt den Steuerungstext enthält; im
-p-Modus (print) und im Bare-Modus wird er nicht hinzugefügt. - In einem schmalen Terminal öffnet sich das Fenster nicht ungefragt. Führe
/my-tasksaus und klicke hinein oder drückectrl+x tab, um die Tasten zu nutzen. - Die mobile App zeichnet kein Antwortfeld, dort gibt es nur Done, Optionen und ein sofortiges Reject.
FAQ
- Wie unterscheidet sich eine Aufgabe von AskUserQuestion?
- AskUserQuestion hält Claude an, bis du antwortest. Eine Aufgabe nicht: Claude arbeitet weiter, während sie wartet, und deine Antwort erreicht Claude als Nachricht, sobald du sie gibst. Die Tool-Beschreibung sagt Claude, dass Aufgaben für Dinge gedacht sind, die es irgendwann in der Sitzung braucht.
- Wann erfährt Claude von meiner Antwort?
- Sofort, wenn Claude im Leerlauf ist. Arbeitet es gerade, wird die Antwort gespeichert und geht am Ende des Turns raus, bei noch offenen Aufgaben gemeinsam mit deinen anderen Antworten, sobald keine mehr offen ist. Der Button Send now sendet sofort, und dein nächster Prompt nimmt sie ebenfalls mit.
- Bleiben Aufgaben nach /clear, in einer neuen Sitzung oder nach einer Kompaktierung erhalten?
- Ja. Offene Aufgaben liegen im eigenen Speicher des Plugins, pro Projektordner, und die nächste Sitzung in diesem Ordner übernimmt sie. Claude wird zu Beginn einer Unterhaltung und nach einer Kompaktierung erneut darüber informiert.
- Was passiert, wenn ich ein Geheimnis als Antwort eingebe?
- Eine Antwort, die wie ein Schlüssel, Token oder privater Schlüssel aussieht, wird mit einer Warnung zurückgehalten und nur gesendet, wenn du Send anyway drückst. Die Tool-Beschreibung bittet Claude, dich das Geheimnis an den richtigen Ort legen und Done drücken zu lassen, statt es einzufügen.
- Sendet die Mod etwas über das Netzwerk?
- Nein. Wir haben im Code keine Netzwerk-, Prozess- oder Dateisystemaufrufe gefunden. Aufgaben liegen in $.store, und deine Antworten gehen nur als Prompts in deinen eigenen Worten an Claude.
# Ähnliche Mods
EmpfohlenFertig-Toast
Toast „Done in 2m 14s“ und kurzer Klang, wenn ein langer Claude-Turn endet, optional mit Desktop-Benachrichtigung.
- Toast
- Führt Befehle aus
- Verändert die Oberfläche
- Spielt Ton ab
getestet mit v2.1.310
EmpfohlenNext Steps
Nach jedem Turn zwei oder drei mögliche nächste Prompts über der Eingabe. Mit 1, 2 oder 3 wird ein Entwurf eingefügt.
- über dem Prompt
- Ruft das Modell auf (nutzt dein Kontingent)
- Liest deine Prompts
- Verändert die Oberfläche
getestet mit v2.1.291