
Im Juni vergangenen Jahres habe ich hier über Claude Code geschrieben und warum ich von Cursor und Windsurf dorthin gewechselt bin. Damals war Claude Code für mich das Maß aller Dinge. Das ist es grundsätzlich auch immer noch – aber seit einigen Wochen verwende ich hauptsächlich pi von Mario Zechner. Und das hat Gründe, die über das reine Coding hinausgehen.
Zunächst aber ein kurzer Blick darauf, was in den letzten Monaten passiert ist. Denn: Verdammt viel. Die Hersteller buttern mittlerweile massive Ressourcen in ihre Coding-Agents. Anthropic hat Claude Code laufend ausgebaut, OpenAI hat Codex vorgestellt, Google pusht Jules und mit Amp, Droid und opencode sind weitere Alternativen am Markt. Es herrscht ein regelrechtes Wettrüsten. Und dann gibt es eben pi. Gebaut vom österreichischen Hobbyprogrammierer* Mario Zechner.
pi ist ein Terminal-basierter Coding-Agent, der bewusst schlank gehalten wird. Das Tool kommt mit genau vier Werkzeugen: read, write, edit und bash. Das wars. Kein eingebauter Plan-Modus, keine Sub-Agents, keine Permission-Popups. Die Philosophie: Was du nicht brauchst, wird nicht gebaut. Und was du brauchst, kannst du dir selbst bauen – oder installieren.
Ein wesentlicher Unterschied zu Claude Code: pi ist Open Source, unter MIT-Lizenz. Der gesamte Code liegt auf GitHub, jeder kann hineinschauen, Beiträge leisten oder das Tool forken. Bei Claude Code hat man diese Transparenz nicht. Man weiß schlicht nicht, was unter der Haube passiert. Dazu aber noch später mehr.
Die Installation ist simpel:
npm install -g @mariozechner/pi-coding-agentClaude Code ist nach wie vor ein hervorragendes Werkzeug. Aber pi hat für mich etwas, das Claude Code nicht bietet: Transparenz und Lerneffekt. Bei der Verwendung von pi habe ich in den letzten Wochen so viel über die Funktionsweise von LLM-Agents gelernt wie in den Monaten davor nicht. Das liegt an mehreren Faktoren.
Der wohl wichtigste Punkt: pi hat mir beigebracht, wie entscheidend richtiges Kontext-Management ist. Es gibt in der Community mittlerweile den Begriff der "Dumb Zone", geprägt von Dex Horthy von HumanLayer. Die Idee dahinter: Ab circa 40 bis 60 Prozent Auslastung des Kontextfensters beginnen LLMs, deutlich schlechter zu performen. Sie verlieren den Faden, halluzinieren Interfaces und vergessen das ursprüngliche Ziel. Je mehr Kontext, desto dümmer das Modell.
pi zeigt mir hierzu im Footer permanent die aktuelle Kontextauslastung an. Ich sehe, wie viele Tokens verbraucht werden und wann es Zeit ist, die Session zu wechseln. Das macht einen riesigen Unterschied in der Qualität der Ergebnisse. Für all jene, die hierbei an der Hand genommen werden wollen, gibt es bereits eine Extension.
Ein weiterer Punkt, der mich fasziniert hat: der System-Prompt. Claude Code verwendet einen System-Prompt von über 10.000 Tokens. Das ist ein gewaltiger Block an Anweisungen, der bei jeder Interaktion mitgeschickt wird und natürlich ins Kontextfenster reinspielt. Und dieser Prompt ändert sich mit jedem Release – was das Verhalten des Modells beeinflusst und Workflows brechen kann. Mario Zechner hat dafür übrigens eigens das Tool cchistory gebaut, mit dem man die Änderungen am System-Prompt und den Tool-Definitionen zwischen verschiedenen Claude-Code-Versionen nachverfolgen kann.
pi macht das radikal anders. Der gesamte System-Prompt passt in wenige Zeilen und lautet sinngemäß: Du bist ein Coding-Assistent, du hast vier Werkzeuge, arbeite im Projekt des Nutzers. Weniger Prompt-Overhead bedeutet mehr Platz für den eigentlichen Kontext, also den Code und die Aufgabe.
Was ich an pi besonders spannend finde, ist das Extension-System. Extensions sind TypeScript-Module, die pi um beliebige Funktionen erweitern können: neue Tools, Befehle, Keyboard-Shortcuts, Event-Handler oder UI-Komponenten. Das Geniale daran: Man kann sich von seinem LLM einfach Extensions schreiben lassen, die dann wiederum dem eigenen Workflow zugutekommen. Es ist im Grunde ein sich selbst verbesserndes System. Oder wie es Armin Ronacher (Flask-Erfinder und Sentry-CTO) in seinem empfehlenswerten Blogbeitrag über pi beschreibt: Man sagt dem Agenten, er soll sich selbst erweitern. Und er tut es.
Besonders erwähnenswert in diesem Zusammenhang ist Nico Bailon, der gefühlt täglich neue Extensions und Skills veröffentlicht. Seine pi-interactive-shell, eine Extension, mit der pi interaktive CLIs in einem beobachtbaren Overlay steuern kann, hat mittlerweile tausende Stars. Auch seine pi-messenger Extension für Multi-Agent-Kommunikation zeigt, was mit dem System möglich ist. Die Community rund um pi wächst rasant. Von Doom im Terminal bis hin zu Code-Review-Tools ist alles dabei.
Ein Feature, das ich besonders schätze: pi unterstützt über 15 LLM-Anbieter. Anthropic, OpenAI, Google, xAI, Groq, Cerebras, OpenRouter, Ollama und viele mehr. Und man kann das Modell mitten in der Session wechseln (Ctrl+L). Ich nutze das ständig und wechsle in jeder Session zwischen Anthropics Opus & Sonnet und OpenAIs Codex 5.3. Kein anderer Coding-Agent, den ich kenne, macht diesen Wechsel so elegant.
Lustigerweise ist pi auch das technische Fundament vom gehypten Projekt OpenClaw, dem Open-Source-KI-Agenten von Peter Steinberger, über den ich bereits für DER STANDARD einen Artikel geschrieben habe. OpenClaw nutzt pi im SDK-Modus als Agent-Engine. Steinberger ist mittlerweile zu OpenAI gewechselt, das Projekt wird als Foundation weitergeführt. Das zeigt, wie mächtig die darunter liegende Architektur wirklich ist. Und dass pi weit über ein reines Coding-Tool hinausgeht.
Mein Workflow ist im Vergleich zu Claude Code ähnlich, aber bewusster geworden. Ich formuliere meinen Task, achte auf die Kontextauslastung und starte nach komplexeren Aufgaben eine neue Session. Die AGENTS.md-Datei (das Pendant zu Claude Codes CLAUDE.md) nutze ich für projektspezifische Anweisungen.
Für mein Kontext-Management verwende ich pi-amplike – ein Skill-Paket, das unter anderem /handoff bietet. Damit kann ich den aktuellen Kontext gezielt in eine neue, fokussierte Session übertragen, wenn die aktuelle zu voll wird. Ebenfalls extrem nützlich: session-query, womit ich frühere Sessions durchsuchen kann, ohne den aktuellen Kontext zu belasten.
Als Skills setze ich außerdem den frontend-design Skill von Vercel ein und pi-mcp-adapter für meine Payload-CMS-Projekte. Die MCP-Anbindung funktioniert hier wirklich gut. Auch wenn pi von Haus aus kein MCP unterstützt, lässt sich das über Skills und Extensions elegant lösen.
Besonders produktiv finde ich die Steering Messages: Während pi arbeitet, kann ich mit Enter eine Nachricht einqueuen, die nach dem aktuellen Tool-Aufruf zugestellt wird. So kann ich den Agenten in Echtzeit lenken, ohne ihn komplett abzubrechen.
Claude Code ist und bleibt ein exzellentes Tool. Wer ein Werkzeug sucht, das einfach funktioniert und wenig Konfiguration braucht, ist dort nach wie vor bestens aufgehoben. Aber wer verstehen will, wie LLM-Agents unter der Haube funktionieren, wer seinen Workflow bis ins Detail kontrollieren möchte und wer bereit ist, sich die Hände ein bisschen schmutzig zu machen, der sollte pi eine Chance geben.
Ich habe durch die Nutzung von pi mehr über Kontext-Management, System-Prompts und die Grenzen von LLMs gelernt als durch jedes andere Tool zuvor. Und genau das macht es für mich zum aktuell spannendsten Coding-Agent auf dem Markt. Auch wenn es sich selbst als "Shitty Coding Agent" bezeichnet.
What I learned building an opinionated and minimal coding agent
cchistory – Claude Code System Prompt Tracker
Awesome pi Agent – Community Extensions
Escaping the Dumbzone – Context Engineering
Pi: The Minimal Agent Within OpenClaw – Armin Ronacher
*das ist übrigens ein Schmäh.