← Alle Beitrage

Claude Code als Infrastruktur

From the guide: Claude Code Comprehensive Guide

Andrej Karpathy prägte einen Begriff für das, was um einen LLM-Agenten herum wächst: Klauen. Die Hooks, Skripte und Orchestrierung, die dem Agenten ermöglichen, die Welt außerhalb seines Kontextfensters zu greifen.1 Die meisten Menschen behandeln Claude Code wie eine Chatbox mit Dateizugriff. Sie tippen einen Prompt ein, schauen zu, wie eine Datei bearbeitet wird, und machen weiter. Dieses Verständnis verfehlt, was das Werkzeug tatsächlich ist.

Claude Code ist kein IDE-Feature. Es ist Infrastruktur. Und die Kluft zwischen der einen und der anderen Betrachtungsweise entscheidet darüber, ob KI-gestützte Entwicklung bei 10 % Produktivitätssteigerung stagniert oder zu etwas grundlegend Anderem durchbricht.

TL;DR

Claude Code stellt 17 Lifecycle-Events bereit, von denen jedes mit Shell-Skripten hookbar ist, die vor, während oder nach jedem Tool-Aufruf ausgelöst werden.2 Stapeln Sie Hooks zu Dispatchern, Dispatcher zu Skills, Skills zu Agents, Agents zu Workflows – und Sie erhalten eine programmierbare Schicht zwischen Ihnen und dem Modell, die Einschränkungen durchsetzt, die das Modell nicht umgehen kann. Ich habe über zwei Monate 84 Hooks, 48 Skills, 19 Agents und ca. 15.000 Zeilen Orchestrierung gebaut. Null Frameworks. Null externe Abhängigkeiten. Alles Bash und JSON. Das Ergebnis ist ein autonomes Entwicklungssystem, das Code schreibt, reviewt und ausliefert, während ich schlafe. Dieser Beitrag erklärt die Architektur, warum das IDE-Verständnis Menschen zurückhält und was sich ändert, da Remote Control diese Infrastruktur von überall aus zugänglich macht.


Das IDE-Verständnis ist falsch

Das Standard-Denkmodell: Claude Code ist eine intelligentere Autovervollständigung. Sie sitzen am Terminal, geben Aufgaben und überwachen die Ausgabe. Dieses Modell begrenzt Ihre Produktivität auf das, was Sie persönlich beaufsichtigen können.

Das Infrastruktur-Denkmodell: Claude Code ist eine programmierbare Laufzeitumgebung mit einem LLM-Kernel. Jede Aktion, die das Modell ausführt, durchläuft Hooks, die Sie kontrollieren. Sie definieren Richtlinien, keine Prompts. Das Modell operiert innerhalb Ihrer Infrastruktur auf die gleiche Weise, wie ein Webserver innerhalb von nginx-Regeln operiert. Sie sitzen nicht vor nginx und tippen Anfragen ein. Sie konfigurieren es, deployen es und überwachen es.

Die Unterscheidung ist wichtig, weil Infrastruktur sich kumuliert. Ein Hook, der Credentials in Bash-Befehlen blockiert, schützt jede Sitzung, jeden Agenten, jeden autonomen Lauf. Ein Skill, der Ihre Blog-Bewertungsrubrik kodiert, wird konsistent angewendet – egal ob Sie ihn aufrufen oder ein Agent es tut. Ein Agent, der Code auf Sicherheit prüft, führt die gleichen Checks durch, ob Sie zusehen oder nicht.

Simon Willison fasst den aktuellen Moment mit einer einzigen Beobachtung zusammen: Code zu schreiben ist jetzt billig.3 Korrekt. Aber die Konsequenz, die niemand hören will, ist, dass Verifizierung jetzt der teure Teil ist. Billiger Code ohne Verifizierungsinfrastruktur produziert Bugs im großen Maßstab. Die Investition, die sich auszahlt, ist nicht ein besserer Prompt. Es ist das System rund um das Modell, das auffängt, was das Modell übersieht.


Die Infrastrukturschicht

Das Hook-System von Claude Code löst Shell-Befehle an 17 Lifecycle-Events aus.2 PreToolUse wird vor der Ausführung eines Tools ausgelöst und kann diese blockieren. PostToolUse wird danach ausgelöst und kann Feedback liefern. UserPromptSubmit wird ausgelöst, wenn Sie tippen, und kann Kontext injizieren. Stop wird ausgelöst, wenn das Modell versucht fertig zu werden, und kann es zum Weiterarbeiten zwingen. Jedes Event erhält JSON auf stdin mit vollem Kontext: Session-ID, Tool-Name, Tool-Eingabe, aktuelles Arbeitsverzeichnis.

Das Hook-System ist kein Plugin-System. Es ist eine eventgesteuerte Architektur. Der Unterschied: Plugins erweitern die Funktionen eines Tools. Events ermöglichen es Ihnen, jede Aktion des Tools abzufangen, zu modifizieren und zu kontrollieren. Sie werden zur Middleware.

Hooks: Die deterministische Schicht

Hooks sind Shell-Skripte. Sie können nicht halluziniert, überredet oder durch Prompt-Injection umgangen werden. Das Modell will rm -rf / ausführen? Ein 10-Zeilen-Bash-Skript prüft den Befehl gegen eine Blockliste und lehnt ihn ab, bevor die Shell ihn je sieht. Das Modell versucht .env zu lesen? Ein Regex auf den Dateipfad fängt den Read-Tool-Aufruf ab. Nichts davon erfordert die Kooperation des Modells. Der Hook wird ausgelöst, ob das Modell es will oder nicht.

Ich betreibe 84 Hooks über 17 Event-Typen. Die Aufteilung erzählt eine Geschichte: 35 setzen Urteilsvermögen durch (Gates, Guards, Validatoren) und 49 übernehmen Automatisierung (Injektoren, Logger, Tracker). Dieses Verhältnis begann bei 1:6. Zwei Monate, in denen Dinge bei autonomen Läufen kaputtgingen, verschoben es auf 4:5. Jeder Urteils-Hook existiert, weil etwas ohne ihn fehlschlug. Ein Agent committete Code mit TODO-Kommentaren. Ein Agent führte einen destruktiven Git-Befehl aus. Ein Agent leakte einen Credential-Pfad in eine Logdatei. Jeder Fehler bekam ein Gate.

Die größte Lektion: Dispatcher statt unabhängiger Hooks. Ich hatte sieben Hooks, die alle auf UserPromptSubmit feuerten, jeder las stdin unabhängig, zwei schrieben in die gleiche JSON-Zustandsdatei. Gleichzeitige Schreibzugriffe kürzten das JSON. Jeder nachgelagerte Hook, der diese Datei parste, brach. Ein Dispatcher pro Event, der Hooks sequenziell aus gecachtem stdin ausführt, löste das Problem. Unsichtbarer Overhead, 200 ms pro Prompt.

Skills: Die Wissensschicht

Skills sind Markdown-Instruktionssets, die auf Abruf oder via Hooks aktiviert werden.4 Jeder kodiert Domänenexpertise, auf die das Modell bei Aufruf zurückgreift. Mein blog-evaluator-Skill definiert eine gewichtete 6-Kategorien-Rubrik mit spezifischen Bewertungskriterien, Kategoriemindestwerten und Interdependenzen. Mein jiro-Skill kodiert eine 7-Schritte-Qualitätsschleife mit einem Evidenz-Gate, das spezifische Nachweise für jedes Kriterium verlangt.

Skills komponieren mit Hooks. Ein Skill kann eigene Hooks in seinen Metadaten definieren, die nur aktiv sind, während der Skill läuft. Philosophie-Skills aktivieren sich automatisch über SessionStart-Hooks und injizieren Qualitätsbeschränkungen in jede Sitzung, ohne expliziten Aufruf.

48 Skills abdeckend: Code-Qualität (jiro, testing-philosophy, debugging-philosophy), Inhalt (blog-writer-core, blog-evaluator, citation-verifier), Architektur (fastapi, swiftui, database, htmx-alpine), Betrieb (deploy, cache, analytics, security) und Meta-Orchestrierung (deliberation, scan-intel, ralph). Forschung zu den eigenen Präferenzen von Claude Code ergab, dass es zu bestimmten Frameworks und Mustern tendiert.9 Skills ermöglichen es Ihnen, diese Standardeinstellungen mit Ihren eigenen zu überschreiben.

Agents: Die Delegationsschicht

Agents sind spezialisierte Subagenten mit isolierten Kontextfenstern.5 Jeder erhält eine fokussierte Aufgabe und frischen Kontext. Mein Code-Review-System erzeugt drei Agents parallel: Korrektheit, Sicherheit und Konventionen. Jeder reviewt unabhängig. Meinungsverschiedenheiten zwischen Reviewern decken genau die Probleme auf, die ein einzelner Reviewer übersehen würde.

Die kritische Einschränkung: ein Rekursionsschutz. Ein Shell-Skript wird vor jedem Task-Tool-Aufruf ausgelöst, prüft einen Tiefenzähler in einer gemeinsamen Zustandsdatei und blockiert den Aufruf, wenn die Tiefe einen Schwellenwert überschreitet. Ohne diesen Schutz delegieren Agents an Agents, die an Agents delegieren – jeder verliert Kontext und verbrennt Tokens. Standardlimit sind 3 Ebenen. In der Praxis findet nützliche Arbeit auf Tiefe 1 statt (Hauptagent plus ein Subagent). Alles tiefer als 2 bedeutet meist, dass die Aufgabenzerlegung falsch war.

19 Agents umfassend: Entwicklung (ios-developer, backend-architect), Review (code-reviewer, security-reviewer, conventions-reviewer, yagni-reviewer), Exploration (project-scout, code-explorer, code-architect) und Validierung (test-runner, correctness-reviewer).


Remote Control verändert die Gleichung

Am 25. Februar 2026 veröffentlichte Anthropic Remote Control: die Möglichkeit, sich von jedem Browser oder der mobilen Claude-App mit einer lokalen Claude Code-Sitzung zu verbinden.6 Das Feature erhielt 531 Punkte und 313 Kommentare auf Hacker News, die meisten davon Beschwerden über Bugs. Die Beschwerden sind berechtigt. Das Feature ist dennoch transformativ.

Der Grund: Vor Remote Control hatte die beschriebene Infrastruktur zwei Modi: beaufsichtigt (ich beobachte das Terminal) oder unbeaufsichtigt (ich gehe weg und hoffe). Keiner ist ideal. Beaufsichtigung begrenzt den Durchsatz auf meine Aufmerksamkeitsspanne. Unbeaufsichtigter Betrieb riskiert, dass das Modell schlechte Entscheidungen trifft, die niemand abfängt.

Remote Control schafft einen dritten Modus: asynchrone Governance. Ich lasse autonome Schleifen laufen, die mehrteilige PRDs über Nacht abarbeiten. Die Genehmigungsaufforderungen für externe Aktionen (Git Push, API-Aufrufe, alles was die Maschine verlässt) werden an mein Handy geroutet. Ich genehmige, lehne ab oder lenke um – von überall. Die Governance-Schicht bleibt gleich. Die Latenz zwischen „Agent braucht Genehmigung” und „Mensch erteilt sie” sinkt von „wann immer ich meinen Laptop öffne” auf „10 Sekunden vom Handy”.

Der Genehmigungsablauf verstärkt sich mit der Blast-Radius-Klassifizierung aus meinen Hooks. Lokale Operationen (Dateischreibvorgänge, Testläufe) werden automatisch genehmigt. Gemeinsame Operationen (Git-Commits) warnen. Externe Operationen (Pushes, API-Aufrufe, Deployments) werden an die menschliche Prüfung delegiert. Remote Control verwandelt diesen „Delegieren”-Pfad von einem blockierenden Warten in eine asynchrone Benachrichtigung. Der Agent arbeitet am nächsten Story weiter, während ich den vorherigen prüfe.

Tools wie Agent Multiplexer verwalten bereits Claude Code-Sitzungen via tmux.10 Open-Source-Alternativen wie Emdash bieten vollständige agentische Entwicklungsumgebungen.11 Die Leute, die SSH plus tmux als Alternative vorschlagen, haben recht, dass es für Terminalzugriff funktioniert. Keines davon bietet Ihnen das Genehmigungs-Routing. Dieses Routing ist es, was unbeaufsichtigten Betrieb sicher macht – nicht nur möglich.


Kosten als Architektur

Der Beitrag „Making MCP Cheaper via CLI” (304 HN-Punkte) dokumentierte ein Muster: MCP-Tool-Aufrufe in CLI-Aufrufe zu verpacken, um den Overhead einer aufrechterhaltenenen MCP-Serververbindung zu vermeiden.7 Die weiterreichende Erkenntnis ist, dass Kosten eine architektonische Entscheidung sind, keine operative Nachbesserung.

Meine Infrastruktur behandelt Kosten auf drei Ebenen:

Token-Ebene. System-Prompt-Komprimierung. Ich betreibe ca. 3.500 Tokens System-Prompt über eine CLAUDE.md-Datei und 8 Rules-Dateien. Die ertragsreichsten Kürzungen: Tutorial-Codebeispiele entfernen (das Modell kennt die APIs), doppelte Regeln dateiübergreifend zusammenführen und Erklärungen durch Einschränkungen ersetzen. „Lehne Tool-Aufrufe ab, die sensible Pfade matchen” leistet die gleiche Arbeit wie eine 15-Zeilen-Erklärung, warum Credentials nicht gelesen werden sollten. Semantische Dichte statt roher Komprimierung.8

Agent-Ebene. Frische Spawns statt langer Konversationen. Jeder Story in einem autonomen Lauf bekommt einen neuen Agenten mit sauberem Kontextfenster. Beim Spawn erhält der Agent ein Briefing: aktueller Git-Zustand, was vorherige Agents erreicht haben, was er tun muss. Briefing statt Gedächtnis. Modelle führen ein klares Briefing besser aus, als dass sie durch 30 Schritte angesammelten Kontext navigieren. Der Kontext bläht sich nie auf, weil jeder Agent frisch startet. Geoffrey Huntley dokumentierte ein ähnliches Muster in „The Ralph Loop” – autonome Entwicklung für 10,42 $/Stunde auf Sonnet.13 Multi-Agent-Orchestratoren wie OpenSwarm formalisieren die Worker-Reviewer-Pipeline mit Modelleskalation.14

Architektur-Ebene. CLI-first statt MCP, wenn die Operation zustandslos ist. Ein claude --print-Aufruf für eine einmalige Bewertung kostet weniger und erzeugt keinen Verbindungs-Overhead. Ein MCP-Server ist sinnvoll, wenn das Tool persistenten Zustand oder Streaming benötigt. Context Mode demonstrierte das Gegenteil: 315 KB MCP-Output werden mittels FTS5-Indexierung mit BM25-Ranking auf 5,4 KB komprimiert.12 Beide Ansätze reduzieren den Tokenverbrauch, aus unterschiedlichen Richtungen. Die meisten meiner Skill-Aufrufe sind einmalig. Meine Prompt-Caching-Analyse ergab, dass die Claude Code-CLI System-Prompts standardmäßig ab 4.096 Tokens cached. Null Konfiguration nötig.


Fallstudie: Wie 84 Hooks in der Praxis aussehen

Ein konkreter Sitzungsverlauf aus einem autonomen Lauf der letzten Woche, bei dem ein PRD mit 5 Stories verarbeitet wurde:

  1. SessionStart wird ausgelöst. Dispatcher injiziert: aktuelles Datum, Projekterkennung, Philosophie-Einschränkungen, Systemleistungsprüfung, Kostentracking-Initialisierung. Fünf Hooks, 180 ms insgesamt.

  2. Agent liest das PRD, plant den ersten Story. UserPromptSubmit wird beim internen Prompt ausgelöst. Dispatcher injiziert: aktiven Projektkontext, Session-Drift-Baseline (Model2Vec-Embedding des ersten Prompts für spätere Ähnlichkeitsprüfungen). 120 ms.

  3. Agent ruft Bash auf, um Tests auszuführen. PreToolUse:Bash wird ausgelöst. Dispatcher führt aus: Credential-Prüfung (keine .env-Pfade im Befehl), Sandbox-Validierung (Befehl nicht auf Blockliste), Projekterkennung. 90 ms. Test läuft. PostToolUse:Bash wird ausgelöst: Aktivitäts-Heartbeat geloggt, Drift-Prüfung gegen Baseline (Kosinus-Ähnlichkeit 0,63, deutlich über dem 0,30-Schwellenwert).

  4. Agent ruft Write auf, um eine Datei zu erstellen. PreToolUse:Write wird ausgelöst: Dateiberreichsprüfung (liegt dieser Pfad innerhalb des Projektverzeichnisses?). PostToolUse:Write wird ausgelöst: Lint-Prüfung der geschriebenen Datei, Commit-Tracking, Aktivitäts-Heartbeat.

  5. Agent schließt den Story ab. Stop wird ausgelöst. Quality-Gate-Hook prüft: Hat der Agent Evidenz für jedes Kriterium zitiert? Hat er absichernde Sprache verwendet („should”, „probably”)? Gibt es TODO-Kommentare im Diff? Wenn eine Prüfung fehlschlägt, gibt der Hook exit 2 zurück und der Agent arbeitet weiter.

  6. Unabhängige Verifizierung: Ein frischer Agent führt die Testsuite aus, ohne dem Selbstbericht des vorherigen Agenten zu vertrauen.

  7. Drei Code-Review-Agents werden parallel erzeugt. Jeder reviewt den Diff unabhängig. Ergebnisse werden zusammengeführt. Wenn ein Reviewer ein CRITICAL-Problem flaggt, geht der Story zurück in die Warteschlange.

  8. Story bestanden. Nächster Story wird geladen. Der Zyklus wiederholt sich für alle 5 Stories.

Insgesamt ausgelöste Hooks über 5 Stories: ca. 340. Gesamtzeit in Hooks: ca. 12 Sekunden. Unsichtbarer Overhead, der in einem einzigen Nachtlauf drei Credential-Leaks, einen destruktiven Befehl und zwei unvollständige Implementierungen verhinderte.


Kernerkenntnisse

Claude Code ist eine Laufzeitumgebung, kein Werkzeug. Die 17 Lifecycle-Events machen es programmierbar. Hooks, Skills und Agents sind der Befehlssatz. Das Modell ist die Ausführungsengine. Sie sind der Systemarchitekt.

Governance skaliert mit Automatisierung. Jeder Hook, der eine Einschränkung hinzufügt, reduziert das Risiko unbeaufsichtigten Betriebs. Das Verhältnis von Urteils-Hooks zu Automatisierungs-Hooks ist Ihre Sicherheitsmarge. Meine liegt bei 4:5 und steigt.

Infrastruktur kumuliert sich, Prompts nicht. Ein guter Prompt verbessert eine Interaktion. Ein guter Hook verbessert jede Interaktion. Ein guter Skill verbessert jeden Agenten, der ihn aufruft. Ein guter Agent verbessert jeden Workflow, der an ihn delegiert. Investieren Sie in die Schicht, die multipliziert.

Remote Control macht die Infrastruktur portabel. Das Genehmigungs-Routing verwandelt „unbeaufsichtigt” in „asynchron beaufsichtigt”. Diese Unterscheidung ist der Unterschied zwischen hoffen, dass das Modell gute Entscheidungen trifft, und verifizieren, dass es das tut.

Kosten sind Architektur, keine Optimierung. Frische Agent-Spawns, CLI-first-Aufrufe, System-Prompt-Komprimierung und Prompt-Caching sind strukturelle Entscheidungen, die sich kumulieren. Im Nachhinein zu optimieren kostet mehr, als von Anfang an dafür zu entwerfen.

Null Frameworks nötig. 84 Hooks, 48 Skills, 19 Agents, ca. 15.000 Zeilen Orchestrierung. Bash-Skripte in einem Verzeichnis. JSON-Zustandsdateien. Keine Laufzeitabhängigkeiten. Sie können einen einzelnen Hook oder den gesamten Stack übernehmen. Die Infrastruktur wächst organisch aus der Lösung realer Probleme, nicht aus der Implementierung des Frameworks eines anderen.


Dies ist Teil der Reihe AI Engineering. Zuvor: Why My AI Agent Has a Quality Philosophy. Siehe auch: Thinking With Ten Brains und The Blind Judge.


  1. Andrej Karpathy über „Klauen” als neue Schicht auf LLM-Agenten. HN-Diskussion (406 Punkte, 917 Kommentare). 

  2. Claude Code Hooks-Referenz. Anthropic-Dokumentation. 17 Lifecycle-Events mit JSON-Ein-/Ausgabe, Matcher-Mustern und drei Hook-Typen (command, prompt, agent). 

  3. Simon Willison, „Writing code is cheap now.” Agentic Engineering Patterns. HN-Diskussion

  4. Claude Code Skills-Referenz. Anthropic-Dokumentation. Markdown-Instruktionssets mit Metadaten, erlaubten Tools und Hook-Definitionen. 

  5. Claude Code Sub-Agents-Referenz. Anthropic-Dokumentation. Spezialisierte Subagenten mit isoliertem Kontext, Worktree-Unterstützung und Modellauswahl. 

  6. Claude Code Remote Control. Anthropic-Dokumentation. Lokale Sitzungen von jedem Gerät aus fortsetzen. HN-Diskussion (531 Punkte, 313 Kommentare). 

  7. „Making MCP Cheaper via CLI.” Blogbeitrag von thellimist. HN-Diskussion (304 Punkte, 115 Kommentare). 

  8. „Compress Your Claude.md: Cut 60-70% of System Prompt Bloat.” Blogbeitrag von jchilcher. HN-Diskussion (24 Punkte, 9 Kommentare). 

  9. „What Claude Code Chooses.” Forschung von amplifying.ai. Analyse der Tool- und Framework-Präferenzen von Claude Code. HN-Diskussion (39 Punkte, 19 Kommentare). 

  10. Agent Multiplexer (amux). GitHub. Claude Code-Sitzungen via tmux verwalten. HN-Diskussion (13 Punkte). 

  11. Emdash: Open-Source agentische Entwicklungsumgebung. GitHub. HN-Diskussion (201 Punkte, 71 Kommentare). 

  12. Context Mode: 315 KB MCP-Output werden zu 5,4 KB. GitHub. FTS5-Indexierung mit BM25-Ranking. HN-Diskussion (77 Punkte, 23 Kommentare). 

  13. Geoffrey Huntley, „The Ralph Loop.” ghuntley.com/loop. Autonome Entwicklung für 10,42 $/Stunde auf Sonnet. 

  14. OpenSwarm: Multi-Agent Claude CLI Orchestrator. GitHub. Worker-Reviewer-Pipelines mit Modelleskalation. HN-Diskussion (34 Punkte, 18 Kommentare). 

Verwandte Beiträge

Anatomy of a Claw: 84 Hooks as an Orchestration Layer

Karpathy identified 'Claws' as a new architectural layer. Here is what 84 hooks, 43 skills, and 19 agents look like as a…

13 Min. Lesezeit

The Fabrication Firewall: When Your Agent Publishes Lies

An autonomous agent published fabricated claims to 8 platforms over 72 hours. Training-phase safety failed at the public…

14 Min. Lesezeit

The Ralph Loop: How I Run Autonomous AI Agents Overnight

I built an autonomous agent system with stop hooks, spawn budgets, and filesystem memory. Here are the failures and what…

8 Min. Lesezeit