- Pi ist ein terminalbasiertes minimales Coding-Agent-System und bietet eine erweiterbare Struktur, die sich an den Workflow der Nutzer anpassen lässt
- Durch die Kombination aus TypeScript-Erweiterungen, Skills, Prompt-Templates und Themes lässt sich eine eigene Entwicklungsumgebung zusammenstellen und als npm- oder git-Paket teilen
- Unterstützt mehr als 15 AI-Anbieter und Hunderte Modelle; auch während einer Sitzung kann das Modell gewechselt oder ein benutzerdefiniertes Modell hinzugefügt werden
- Sitzungen werden als baumförmige Historie gespeichert, sodass man zu früheren Punkten zurückkehren oder nach HTML bzw. als GitHub Gist exportieren kann
- Mit auf das Nötigste reduzierten Kernfunktionen und einer auf Erweiterbarkeit ausgerichteten Designphilosophie können Entwickler nur die Funktionen selbst implementieren oder als Paket hinzufügen, die sie wirklich brauchen
Überblick über Pi
- Pi ist ein Terminal-Coding-Harness mit einer Struktur, in der Nutzer Tools anpassen können, ohne ihren Workflow zu ändern
- Unterstützt als erweiterbare Bausteine TypeScript-Erweiterungen, Skills, Prompt-Templates und Themes
- Als Pi-Paket gebündelt lassen sich diese über npm oder git installieren und teilen
- Die Standardkonfiguration ist leistungsfähig, enthält aber keine Funktionen wie Sub-Agents oder Plan-Modus
- Bietet vier Modi (interaktiv, Print/JSON, RPC, SDK); ein reales Integrationsbeispiel ist in clawdbot zu sehen
Modelle und Anbieter
- Unterstützt mehr als 15 Anbieter und Hunderte Modelle, darunter Anthropic, OpenAI, Google, Azure, Bedrock, Mistral, Groq, Cerebras, xAI, Hugging Face, Kimi, MiniMax, OpenRouter, Ollama
- Authentifizierung per API-Key oder OAuth
- Modellwechsel während der Sitzung über den Befehl
/modeloderCtrl+L, Durchschalten favorisierter Modelle mitCtrl+P - Benutzerdefinierte Modelle können über models.json oder Erweiterungen hinzugefügt werden
Sitzungsverwaltung
- Sitzungen werden in einer Baumstruktur gespeichert; mit dem Befehl
/treekann zu früheren Punkten zurückgesprungen werden - Alle Verzweigungen werden in einer einzigen Datei gespeichert; unterstützt werden Filter für Nachrichtentypen und Bookmark-Labels
- Mit
/exportist ein HTML-Export möglich, mit/sharedas Hochladen als GitHub Gist und das Erzeugen einer Freigabe-URL
Context Engineering
- Mit minimalen System-Prompts und Erweiterbarkeit lässt sich das Kontextfenster fein steuern
- AGENTS.md: lädt Projektanweisungen beim Start automatisch
- SYSTEM.md: ersetzt oder ergänzt den standardmäßigen System-Prompt pro Projekt
- Compaction: fasst frühere Nachrichten automatisch zusammen, wenn das Kontextlimit erreicht ist; über Erweiterungen sind themenbasierte Zusammenfassungen oder codebewusste Zusammenfassungen möglich
- Skills: bei Bedarf geladene Funktionspakete, die den Prompt-Cache erhalten und Funktionen schrittweise bereitstellen
- Prompt templates: erweiterbare wiederverwendbare Prompts über den Befehl
/name - Dynamic context: über Erweiterungen lassen sich Nachrichten einfügen, Historien filtern, RAG implementieren und Langzeitgedächtnis aufbauen
Message Queueing
- Nachrichten können auch dann eingereicht werden, wenn der Agent bereits arbeitet
Enter: eine Steering-Nachricht, die nach der aktuellen Tool-Ausführung übermittelt wirdAlt+Enter: eine Follow-up-Nachricht, die nach Abschluss der Aufgabe übermittelt wird
Erweiterungsstruktur
- Pi ist nicht um Funktionen, sondern um Primitives herum entworfen, sodass Nutzer Funktionen selbst implementieren können
- Erweiterungen liegen als TypeScript-Module vor und haben Zugriff auf Tools, Befehle, Shortcuts, Events und die vollständige TUI
- Beispielerweiterungen: Sub-Agents, Plan-Modus, Permission Gates, Pfadschutz, SSH-Ausführung, Sandboxing, MCP-Integration, benutzerdefinierte Editoren, Overlays usw.
- Wie das Beispiel „Yes, Doom runs.“ zeigt, gibt es sogar eine Game-Overlay-Erweiterung
- Wer nicht selbst implementieren möchte, kann Funktionen durch die Installation von Pi-Paketen hinzufügen
- Mehr als 50 Erweiterungsbeispiele sind auf GitHub veröffentlicht
Paketverwaltung
- Erweiterungen, Skills, Prompts und Themes können als Pakete gebündelt und über npm oder git installiert werden
- Beispiele:
$ pi install npm:@foo/pi-tools $ pi install git:github.com/badlogic/pi-doom - Versionen können fixiert werden (
@1.2.3oder@tag), mitpi updatewird alles aktualisiert, mitpi listdie Liste angezeigt und mitpi configkonfiguriert - Mit dem Befehl
pi -eist Testen ohne Installation möglich
- Beispiele:
- Über den npm-Suchbegriff
pi-packageoder den Discord-Kanal lassen sich Pakete finden und teilen
Integrationsmodi
- Interactive: vollständige TUI-Umgebung
- Print/JSON:
pi -p "query"für Skripte,--mode jsonfür Event-Streams - RPC: unterstützt Integration in Nicht-Node-Umgebungen über ein stdin/stdout-basiertes JSON-Protokoll
- SDK: kann in Anwendungen eingebettet werden; ein reales Anwendungsbeispiel gibt es in clawdbot
Designphilosophie
- Pi ist darauf ausgelegt, die Erweiterbarkeit zu maximieren, den Kern minimal zu halten und Nutzern die Definition ihres Workflows selbst zu überlassen
- Funktionen wie MCP, Sub-Agents, Permission-Pop-ups, Plan-Modus, integrierte TODOs, Hintergrund-bash sind nicht enthalten
- Stattdessen lassen sich dieselben Funktionen über Erweiterungen, Skills und Pakete umsetzen oder mit externen Tools koppeln
- Unterstützt parallele Ausführung und Beobachtung über tmux
- Dieser Ansatz ermöglicht eine nutzergetriebene Zusammenstellung der Entwicklungsumgebung
- Die vollständige Philosophie wird in einem zugehörigen Blogpost weiter erläutert
2 Kommentare
Ich mag pi wirklich sehr.
Hacker-News-Kommentare
Für mich sind Pi und das „claw“-Phänomen deshalb interessant, weil sie die Zukunft von Open Source zeigen
Statt Feature-Requests oder PRs einzureichen, lädt man sich heute Skill-Dateien herunter, die einem Coding-Agenten erklären, wie er neue Funktionen hinzufügen soll
Software ist kein festes Endprodukt mehr, sondern ein für jeden Nutzer anderes lebendiges Werkzeug
Ich bin gespannt, welche Art von Tooling aus diesem neuen Kollaborationsparadigma entsteht
Heutige Software gibt dem Nutzer oft das Gefühl der Entfremdung, weil er seine Umgebung nicht kontrollieren kann
Personalisierte, günstige und flexible Software kann dagegen ein echtes Gefühl von Eigentümerschaft vermitteln
Früher bot der Linux-Desktop diese Freiheit, jetzt könnten vielleicht alle davon profitieren
Ich bin bei dieser Zukunft optimistisch
Künftig wird es wohl immer mehr extrem personalisierte Software geben — bis zu einem Punkt, an dem nur eine bestimmte Person oder eine kleine Gruppe sie überhaupt versteht
Ich habe mit Claude zuletzt viele Tools gebaut, die nur ich und ein paar andere benutzen
Zum Beispiel eine DnD-Termin-App, einen spoilerfreien Formula-E-News-Checker und eine Abstimmungsseite für eine Klettergenossenschaft
Früher hätte es keinen Grund gegeben, so etwas zu bauen, jetzt ist es möglich
Mehr dazu habe ich in Releasing Software Now aufgeschrieben
Große Unternehmen oder Behörden werden so inkonsistente Systeme kaum zulassen
Eher werden daraus wohl schlechtere Werkzeuge entstehen
Ich bin an OpenCode gewöhnt und überlege, es als persönlichen AI-Workspace zu verwenden
Pi hat zwar ein kleineres Ökosystem, wirkt aber flexibler und erweiterbarer, und man spürt auch die Begeisterung der Community
Ich frage mich, ob es besser wäre, Pi statt OpenCode zu nutzen, und welche UI-Optionen es gibt
Ich habe OpenCode auf Basis von
.md-Dateien zum Schreiben und Organisieren verwendet, und das hat ziemlich gut gepasstJetzt suche ich nach einem neuen Harness, das für diese Arbeit noch besser geeignet ist
Das ist aktuell mein liebster Harness
Weil man es direkt erweitern kann, ist es sehr effizient, und ich habe es in das vibes-Projekt integriert
Viel schneller als ACP
Ich hatte nach einem universellen Protokoll für Agent-Interaktionen gesucht, und ACP schien dafür ein Kandidat zu sein
Aber selbst OpenCode nutzt ACP offenbar nicht in der UI, also scheint es da ein Problem zu geben
Mich würde auch interessieren, ob es bessere Alternativen gibt
Ich habe noch niemanden gesehen, der Pi ein paar Tage benutzt hat und es dann nicht im Alltag weiterverwendet hat
Wenn man einmal die Freiheit erlebt hat, ein Tool exakt nach den eigenen Vorstellungen einzurichten, ist es schwer, wieder zurückzugehen
Und obendrauf kann man auch noch großartige Erweiterungen bauen
Die Erweiterbarkeit von Pi ist interessant, aber die tatsächliche Arbeitsqualität war für mich nicht gut genug
Ich verstehe nicht, warum man ausgerechnet mit einer Terminal-App coden sollte
Dasselbe lässt sich als IDE-Erweiterung besser umsetzen, und in VSCode kann man sich auch die Fensteranordnung einfach wiederherstellen lassen
Es fühlt sich an, als würde ich einem Entwicklerkollegen per Textchat Anweisungen geben
Zum Beispiel lasse ich Claude an einem Server-Wartungsprogramm arbeiten, mache in der Zwischenzeit etwas anderes und schaue mir danach nur das Ergebnis an
Wenn die Tests durchlaufen, ist mir egal, wie der Code im Detail aussieht
Tatsächlich konnte ich mit vielleicht 15 Minuten aktiver Arbeit mehrere Dinge parallel erledigen
Ich nutze Pi in Emacs mit dem pi-coding-agent-Paket
Im RPC-Modus legt es einen Markdown-Puffer für Ein- und Ausgabe an, was deutlich angenehmer ist als andere TUIs
Die Anbindung an den Issue-Tracker war auch leicht, und ich habe die Befehle
readundwriteauf Emacs-Pufferbasis neu definiertDen Befehl
editwürde ich gern ebenfalls verbessern, indem ich tree-sitter-Abfragen von Emacs nutzeAußerdem habe ich mit dem Befehl
emacs_evalsogar die Dokumentennavigation über EWW ermöglichtreadundwriteauf Emacs-Puffer gemappt hastDen Pi-Emacs-Modus kann man übrigens hier installieren
Ich arbeite außerdem daran, dass man aus den Ergebnissen von
read-,write- undedit-Aufrufen direkt die entsprechende Datei öffnen kannBald soll es auch Unterstützung für Pi-Sitzungen und Tree-Browsing mit Magit-Integration geben
Ich habe mit Pi angefangen und benutze seit den letzten zwei Wochen oh-my-pi
Das oh-my-pi-Repository ist die Batteries-included-Version von Pi
Vielleicht sollte ich auch einfach ein bestehendes Projekt forken und unter anderem Namen veröffentlichen
Zum Beispiel: „Waterfox — ein minimalistischer Webkonsument“
Vorkonfigurierte Pi-Version: oh-my-pi
Man bräuchte eine isolierte Umgebung, in der man so etwas wie Apps sicher installieren und testen kann
Ich bin von codex/claude code → opencode → pi → oh-my-pi gewechselt
Ich will das irgendwann selbst ausprobieren
Der Reiz von Pi liegt in seiner Leichtigkeit und Autonomie, während oh-my-pi mit seinen vielen Funktionen eher die Schwere von OpenCode mitbringt
Pi hat wirklich hervorragende Designentscheidungen getroffen
Lob an Mario und Armin — guter Geschmack zeigt sich am Ende eben doch