AIDive

Video-Paket

pi Agent-Toolkit: fünf Pakete, SDK-Rezept, Urteilstabelle und Montags-Checkliste

10 Min. Lesezeit

TL;DR

  • pi ist ein Monorepo unter MIT-Lizenz, das ein Coding-Agent-Harness als fünf getrennte Pakete liefert: eine Modell-API-Schicht, die Agent-Schleife, eine Terminal-UI-Bibliothek, den Coding-Agent selbst und ein Telemetrie-Paket. Du kannst einen Baustein nehmen oder alle fünf.
  • Die CLI ist von Tag eins an ein vollständiger Coding-Agent: vier Standard-Tools, baumförmiger Sitzungsverlauf mit Fork und Resume, ein Live-Kostenzähler, und sie liest die AGENTS.md oder CLAUDE.md, die schon in deinem Repo liegt.
  • Der eigentliche Wert steckt im SDK: createAgentSession plus eine Modell-Runtime plus ein Session-Manager ergibt in etwa zehn Zeilen TypeScript einen funktionierenden Agent, und defineTool fügt ein typisiertes eigenes Tool hinzu, ohne separaten Prozess oder Protokoll.
  • Der Preis dieser Transparenz ist Arbeit: keine eingebauten Berechtigungsabfragen, Isolation bleibt dir überlassen, eine Pre-1.0-Versionslinie (v0.84) und rund hundert offene Issues.
  • Behalte dein tägliches Harness und nutze pi als Prüfstand, der dir zeigt, was dieses Harness verbirgt. Baue Produkte darauf nur, wenn du akzeptierst, die Schutzmechanismen selbst zu verantworten.

Was die Quellen sagen

pi ist ein Monorepo: ein Repository, das fünf getrennt veröffentlichte Pakete beherbergt, jedes für eine Schicht des Harness s2. pi-ai ist die einheitliche API zu den Modellanbietern (OpenAI, Anthropic, Google und andere hinter einer Schnittstelle) und übernimmt das Streaming der Antworten, Reasoning-Blöcke mit ihren Thinking-Levels und die dynamische Erkennung der Modelle, die jeder Anbieter bereitstellt s2. pi-agent-core ist die Agent-Schleife selbst: Konversationszustand und der Zyklus, der eine Nachricht sendet, die Tool-Aufrufe liest, sie ausführt und die Ergebnisse zurückspeist s2. pi-tui ist eine Terminal-Rendering-Bibliothek mit Differential Rendering, die also nur neu zeichnet, was sich auf dem Bildschirm geändert hat s2. pi-coding-agent setzt diese Bausteine zu der CLI zusammen, die du installierst, und mit pi-telemetry kannst du eigene Nutzungsmetriken anbinden, ohne von einem Anbieter abzuhängen s3.

Die Adoptionszahlen stützen das Design: 92 123 Stars, 11 400 Forks und mehr als 5 700 Commits, alles unter der MIT-Lizenz, die Nutzung, Änderung und Weitergabe erlaubt, auch in einem kommerziellen Produkt s1. Der Release-Rhythmus hielt über den Sommer: drei Releases in den ersten zwei Augustwochen, wobei v0.84.2 am 14. erschien s4.

Die Installation ist ein Befehl, npm install -g --ignore-scripts @earendil-works/pi-coding-agent, und das Flag ignore-scripts ist wichtig: Es verhindert, dass Abhängigkeiten ihre Install-Skripte ausführen, eine der meistgenutzten Angriffsflächen auf npm s3. Sobald du über den Login-Befehl mit einem Anbieter verbunden bist, zeigt die untere Leiste den aktuellen Ordner, die Sitzung, die verbrauchten Tokens und die Kosten in Echtzeit, sodass jede Anfrage beim Absenden bepreist wird statt erst am Monatsende s3.

Sitzungen sind das Besondere. Jede Konversation wird als JSONL in deinem Home-Ordner gespeichert, nach Projekt sortiert, und der Verlauf ist ein Baum statt einer Linie: fork springt zu jedem beliebigen Punkt zurück und verzweigt dort, tree navigiert zwischen den Zweigen, und resume öffnet jede frühere Sitzung wieder, auch Wochen später, weil alles lokal liegt s3. Das Modell bekommt standardmäßig nur vier Tools: read, write, edit und bash, sehr wenige im Vergleich zu den Agents auf dem Markt, und das mit Absicht s3. Die Konfiguration folgt derselben Logik: eine globale settings.json in deinem Home, eine projektbezogene, die sie überschreibt, und ein Trust-System, das nachfragt, bevor die lokalen Einstellungen eines Ordners angewendet werden, den du zum ersten Mal öffnest. Die CLI lädt außerdem die AGENTS.md oder CLAUDE.md deines Projekts als Kontext, sodass bestehende Anweisungen ohne Umschreiben funktionieren s3.

Auf der SDK-Seite nimmt createAgentSession eine ModelRuntime und einen SessionManager und liefert einen funktionsfähigen Agent. Der SessionManager legt die Persistenz fest: im Speicher für ein Wegwerfskript, auf der Festplatte, um deine Konversationen über Starts hinweg wiederzufinden, und vom SDK erzeugte Sitzungen teilen die Struktur der eigenen Sitzungen der CLI s8. Über die Optionsliste von createAgentSession wählst du auch den genauen Satz exponierter Tools und sogar den gesamten System-Prompt per ResourceLoader, wenn du bei null anfangen willst s8. Eigene Tools laufen über defineTool: ein Name, eine Beschreibung, ein typisiertes Parameter-Schema und eine execute-Funktion, die in customTools an createAgentSession übergeben werden. Das Tool erscheint dem Modell genau wie read oder bash, das typisierte Schema liefert dir Autovervollständigung im Editor, und der Agent erhält bereits validierte Eingaben. Es ist derselbe Mechanismus wie ein MCP-Server, nur dass alles in deiner Datei liegt, ohne separaten Prozess und ohne Protokoll dazwischen s8.

Die CLI selbst wird über vier Mechanismen angepasst, alle in Ordnern deines Projekts oder deines Homes: Extensions (TypeScript-Module, die Tools, Slash-Befehle, Tastenkürzel oder UI-Elemente registrieren und beim Start aus dem Extensions-Ordner geladen werden), Skills (Fähigkeitspakete nach dem Agent-Skills-Standard, vom Modell aufgerufen oder von Hand, sodass vorhandene Skills unverändert wiederverwendbar sind), Prompt-Templates und Themes, die während des Laufs der CLI neu geladen werden s3. Das README fasst die Philosophie in einer Zeile zusammen: pi an deine Workflows anpassen statt umgekehrt, ohne Fork und ohne die Interna anzufassen s3. Wo die großen Harnesses Sub-Agents, Plan-Modus und Berechtigungen ins Produkt packen, lässt pi sie absichtlich weg, damit sie als Extensions geschrieben oder aus der Community installiert werden s3.

Die Grenzen dokumentiert das Projekt selbst. Es gibt keine eingebauten Berechtigungsabfragen: Standardmäßig kann der Agent einen bash-Befehl ausführen, ohne zu fragen. Der offizielle Containerisierungs-Leitfaden räumt das ein und schlägt drei Isolationsmuster vor, darunter Docker, aber eines einzurichten, bevor du den Agent auf eine wichtige Maschine loslässt, ist deine Aufgabe s5. Reife ist der andere Kostenpunkt: v0.84, nicht 1.0, rund hundert offene Issues und APIs, die noch als experimentell markiert sind, etwa der Remote-Session-Client, der in den vorangegangenen Wochen hinzukam s7. Dieselben Bausteine bedienen bereits ein anderes Produkt: pi-chat wendet sie auf Konversationsautomatisierung an s6.

Urteil: behalten, ausprobieren oder überspringen

Teil von pi Urteil Warum
CLI als Lernprüfstand neben deinem täglichen Harness Behalten Lokale Baum-Sitzungen, Live-Kosten, vier Tools: du siehst jede Schicht, die ein gebündeltes Harness verbirgt
SDK (createAgentSession + defineTool) für Agent-Produkte Jetzt ausprobieren Zehn Zeilen bis zum funktionierenden Agent, typisierte eigene Tools ohne MCP-Aufwand, austauschbarer Anbieter
CLI als einziger täglicher Assistent Vorerst überspringen Keine Berechtigungsabfragen, Isolation liegt bei dir, API-Änderungen vor 1.0
Extensions für Schutzmechanismen (bash-Bestätigung, Richtlinien) Ausprobieren Der vorgesehene Ort für eine Berechtigungsschicht; mit deinem Projekt versioniert
Skills-Ordner Behalten Agent-Skills-Standard, deine vorhandenen Skills laden unverändert
Experimentelle APIs (Remote-Session-Client) Überspringen Als experimentell markiert, können sich vor 1.0 ändern

Das machst du am Montag

  • Installiere die CLI mit npm install -g --ignore-scripts @earendil-works/pi-coding-agent, starte pi, verbinde einen Anbieter über den Login-Befehl und beobachte die Kostenleiste während einer echten Aufgabe.
  • Öffne ein Repo, das bereits eine AGENTS.md oder CLAUDE.md hat, und prüfe, ob pi sie übernimmt; vergleiche die ersten Antworten des Agents mit deinem üblichen Harness beim selben Prompt.
  • Führe eine Konversation, dann fork von einem früheren Knoten und schlage eine andere Richtung ein; liste ~/.pi/agent/sessions/ auf, um die JSONL-Dateien und ihre Projektordner zu sehen.
  • Schreibe eine zwanzigzeilige our-agent.ts: importiere createAgentSession, übergib eine ModelRuntime und einen In-Memory-SessionManager, frag, was der aktuelle Ordner enthält, und starte sie mit npx tsx.
  • Füge ein defineTool hinzu, das etwas aus deinem eigenen System liest (eine interne API, eine Datenbank-View, eine CSV), und übergib es in customTools; bestätige, dass der Agent es bei einer passenden Frage ungefragt aufruft.
  • Wähle vor jedem bash-fähigen Lauf auf einer Maschine, an der dir etwas liegt, eines der drei Isolationsmuster aus dem Containerisierungs-Leitfaden und richte es ein.
  • Entwirf eine erste Extension, die bash-Aufrufe abfängt und bei destruktiven Befehlen um Bestätigung bittet; halte sie im Extensions-Ordner deines Projekts unter Versionskontrolle.
  • Überfliege die Liste der offenen Issues einmal, damit du weißt, welche Teile sich noch bewegen, bevor du darauf aufbaust.

Weiterlesen

  • Lies die SDK-Dokumentation für die vollständige Optionsliste von createAgentSession: Tool-Satz, System-Prompt über ResourceLoader, Session-Manager s8.
  • Studiere die drei Isolationsmuster im Containerisierungs-Leitfaden, bevor du etwas auslieferst, das bash auf dem Rechner eines Nutzers ausführt s5.
  • Sieh dir pi-chat an, um zu verstehen, wie dieselben fünf Pakete statt für Coding für Konversationsautomatisierung neu angeordnet werden s6.
  • Stöbere im packages-Ordner und lies pi-agent-core für sich: Es ist die kleinste lesbare Version der Schleife, die jedes gebündelte Harness ausführt s2.
  • Verfolge die Releases-Seite: v0.84.0 bis v0.84.2 erschienen innerhalb von zwei Augustwochen, rechne also mit Änderungshinweisen, die Extensions betreffen s4.
  • Nutze die offenen Issues als Karte dessen, was noch experimentell ist, beginnend mit dem Remote-Session-Client s7.
  • Verwende die Skills wieder, die du für andere Tools geschrieben hast: Der Skills-Ordner von pi folgt dem Agent-Skills-Standard s3.

Quellen

FAQ

Kann pi meinen täglichen Coding-Agent heute ersetzen?

Nicht als Drop-in. Es kommt ohne Berechtigungsabfragen, die Isolation bleibt dir überlassen, und die Versionslinie liegt vor 1.0 mit rund hundert offenen Issues. Behalte dein aktuelles Harness für die Arbeit und lass pi daneben laufen.

Brauche ich MCP, um pi ein eigenes Tool zu geben?

Nein. defineTool nimmt einen Namen, eine Beschreibung, ein typisiertes Parameter-Schema und eine execute-Funktion, und das Tool wird in customTools an createAgentSession übergeben. Es verhält sich wie ein eingebautes Tool, ohne separaten Prozess und ohne Protokoll.

Funktionieren meine vorhandenen AGENTS.md, CLAUDE.md und Skills?

Ja. Die CLI lädt die AGENTS.md oder CLAUDE.md in deinem Projekt automatisch, und ihr Skills-Ordner folgt dem Agent-Skills-Standard, sodass vorhandene Skills unverändert laden.

Warum nur vier Standard-Tools?

read, write, edit und bash sind der gesamte Standardsatz, weit weniger als bei den Agents auf dem Markt, und das Projekt stellt das als bewusste Entscheidung dar. Alles Weitere kommt gezielt über customTools oder eine Extension dazu.