PocketCoder-A1: Ein autonomer Agent für nächtliche Entwicklung mit Claude
PocketCoder-A1 ist ein CLI-Tool mit einem Web-Dashboard, das Entwicklungsaufgaben autonom ausführt. Der Agent arbeitet in Sitzungen, speichert den Zustand, führt Code über die Claude CLI oder API aus und überprüft dann die Ergebnisse: pytest, py_compile, Dateiprüfungen. Unterstützt Claude Max, Claude API und Ollama-Provider. Installation über pip, läuft auf jedem Projekt mit einem Dashboard unter localhost:7331.
In reinem Python ohne Frameworks entwickelt: 15 Module, 7086 Zeilen. HTTP-Server auf http.server, JSON über Standardmodul, Dateien über pathlib. Externe Abhängigkeiten minimal: playwright für E2E-Tests, anthropic/ollama optional.
Architektur und Starten der Claude CLI
Der Agent erfasst eine Validierungsbasislinie vor dem Start, erstellt einen Prompt, startet die Claude CLI als Subprozess mit Echtzeit-NDJSON-Parsing. Wichtige Start-Flags:
import os, subprocess
env = os.environ.copy()
env.pop("CLAUDECODE", None)
proc = subprocess.Popen(
["claude", "-p", prompt,
"--dangerously-skip-permissions",
"--no-session-persistence",
"--max-turns", "25",
"--verbose",
"--output-format", "stream-json"],
cwd=str(project_dir),
env=env,
stdout=subprocess.PIPE,
stderr=subprocess.STDOUT,
text=True,
bufsize=1,
)
| Flag | Zweck |
|------|---------|
| -p prompt | Nicht-interaktiver Modus |
| --dangerously-skip-permissions | Tool_use automatisch bestätigen |
| --no-session-persistence | Keine Sitzungsspeicherung |
| --max-turns 25 | Iterationslimit |
| --output-format stream-json | NDJSON-Stream |
Der Parser klassifiziert Ereignisse: tool_use (Read — blau, Bash — lila, thinking — gelb). Rate_limit_event-Metriken aktualisieren das Dashboard via AJAX alle 2–3 Sekunden.
Drei-Stufen-Ergebnisüberprüfung
Nach einer Sitzung stoppt der Agent nicht bei "COMPLETED". Die Überprüfung läuft:
- Stufe 1 (BLOCKIEREND): py_compile aller .py-Dateien, pytest, Dateiexistenz, success_criteria aus der Aufgabe. Fehlgeschlagen — Wiederholung mit Fehlerinjektion.
- Stufe 2 (WARNUNG): ruff, build, git diff — protokolliert.
- Stufe 3 (ANTI-LOOP): Basislinienfehler vor dem Start. Maximal 5 Versuche, sonst BLOCKED und zur nächsten Aufgabe wechseln.
Fehler werden in den Prompt injiziert: "VERIFICATION FAILED, attempt 2/5, BLOCKING: tests 2 failed."
Provider und Aufgabenverwaltung
| Provider | Mechanismus | Anforderungen |
|----------|-----------|--------------|
| claude-max | CLI-Subprozess, Stream-JSON, native Tools | Claude Max-Abonnement |
| claude-api | Anthropic SDK, agentischer Loop, 6 Tools | API-Schlüssel |
| ollama | Text-Streaming, kein Tool Calling | Lokales Ollama |
Aufgaben werden auf drei Arten erstellt:
- CLI:
pca task add. - Quick Add im Dashboard.
- AI Transform: Rohtext → strukturierte Aufgaben mit Prioritäten und Kriterien.
Status: PENDING, IN PROGRESS, DONE, BLOCKED. Drag-and-Drop für Prioritäten. Lebenszyklus: Agent wählt automatisch die nächste Aufgabe.
Praxisbeispiel: Hinzufügen eines Providers zu epotos-templates
Projekt epotos-templates für Dokumentenverarbeitung. Aufgabe: Repository klonen, Provider-Umschaltung Ollama → DeepSeek hinzufügen.
- AI Transform wandelt Rohtext in 5 Aufgaben mit Kriterien um.
- Agent-Start: claude-api, Live-Log mit THINK/BASH/READ.
- Nach der Sitzung — Überprüfung, grünes Häkchen bei Erfolg.
- Automatischer Übergang zur nächsten: ollama.ts, ai-client.ts analysieren, Ports grep.
Fortschritt von 0/5 zu 2/5 Aufgaben pro Sitzung, mit detaillierten Tool-Call-Logs.
Wichtige Punkte:
- Autonomer Betrieb: Aufgaben setzen — gehen, zurückkehren zu verifiziertem Code.
- Drei-Stufen-Überprüfung verhindert falsch-positive Ergebnisse.
- Echtzeit-Dashboard mit NDJSON-Parsing und Token-Metriken.
- Unterstützung mehrerer Provider über eine einheitliche Pipeline.
- Open Source, 7086 Zeilen reines Python ohne Frameworks.
Installation: pip install pocketcoder-a1, pca init /pfad/zum/projekt, pca ui. Geeignet für mittlere/senior Entwickler, die LLM-Abonnements mit nächtlicher Automatisierung entlasten möchten.
— Editorial Team
Noch keine Kommentare.