TL;DR
- pi to monorepo na licencji MIT, które dostarcza harness agenta kodującego jako pięć osobnych pakietów: warstwę API modeli, pętlę agenta, bibliotekę UI do terminala, sam coding agent i pakiet telemetrii. Możesz wziąć jeden klocek albo wszystkie pięć.
- CLI to kompletny coding agent od pierwszego dnia: cztery domyślne narzędzia, historia sesji w kształcie drzewa z fork i resume, licznik kosztów na żywo, a do tego czyta AGENTS.md lub CLAUDE.md, które już masz w repo.
- Prawdziwa wartość leży w SDK: createAgentSession plus model runtime plus session manager daje działającego agenta w około dziesięciu liniach TypeScriptu, a defineTool dodaje typowane własne narzędzie bez osobnego procesu i bez protokołu.
- Koszt tej przejrzystości to praca: brak wbudowanych pytań o uprawnienia, izolacja po twojej stronie, linia wersji sprzed 1.0 (v0.84) i około stu otwartych issues.
- Zachowaj swój codzienny harness, a pi używaj jako stanowiska testowego, które pokazuje, co ten harness ukrywa. Buduj na nim produkty tylko wtedy, gdy godzisz się samodzielnie odpowiadać za zabezpieczenia.
Co mówią źródła
pi to monorepo: jedno repozytorium z pięcioma osobno publikowanymi pakietami, z których każdy odpowiada za jedną warstwę harnessu s2. pi-ai to ujednolicone API do dostawców modeli (OpenAI, Anthropic, Google i inni za jednym interfejsem), obsługuje streaming odpowiedzi, bloki reasoningu z poziomami thinking oraz dynamiczne wykrywanie modeli oferowanych przez każdego dostawcę s2. pi-agent-core to sama pętla agenta: stan rozmowy i cykl, który wysyła wiadomość, odczytuje wywołania narzędzi, wykonuje je i odsyła wyniki s2. pi-tui to biblioteka renderowania w terminalu z differential rendering, więc przerysowuje tylko to, co zmieniło się na ekranie s2. pi-coding-agent składa te klocki w CLI, które instalujesz, a pi-telemetry pozwala podpiąć własne metryki użycia bez zależności od vendora s3.
Liczby adopcji potwierdzają ten projekt: 92 123 gwiazdki, 11 400 forków i ponad 5 700 commitów, wszystko na licencji MIT, która pozwala używać, modyfikować i redystrybuować, także wewnątrz produktu komercyjnego s1. Tempo wydań utrzymało się przez całe lato: trzy wydania w pierwszych dwóch tygodniach sierpnia, z v0.84.2 opublikowaną 14. s4.
Instalacja to jedno polecenie, npm install -g --ignore-scripts @earendil-works/pi-coding-agent, a flaga ignore-scripts ma znaczenie: nie pozwala zależnościom uruchamiać ich skryptów instalacyjnych, jednej z najczęściej wykorzystywanych powierzchni ataku w npm s3. Po połączeniu z dostawcą poleceniem login dolny pasek pokazuje bieżący folder, sesję, zużyte tokeny i koszt w czasie rzeczywistym, więc każde zapytanie jest wyceniane w chwili wysłania, a nie na koniec miesiąca s3.
Sesje to cecha wyróżniająca. Każda rozmowa jest zapisywana jako JSONL w twoim folderze domowym, posortowana według projektu, a historia jest drzewem, nie linią: fork wraca do dowolnego punktu i rozgałęzia się od niego, tree przełącza między gałęziami, a resume otwiera dowolną dawną sesję, nawet po tygodniach, bo wszystko leży lokalnie s3. Model dostaje domyślnie tylko cztery narzędzia: read, write, edit i bash, bardzo mało w porównaniu z agentami na rynku, i to celowo s3. Konfiguracja działa według tej samej logiki: globalny settings.json w katalogu domowym, projektowy, który go nadpisuje, i system trust, który pyta, zanim zastosuje lokalne ustawienia folderu otwieranego po raz pierwszy. CLI ładuje też AGENTS.md lub CLAUDE.md z projektu jako kontekst, więc istniejące instrukcje działają bez przepisywania s3.
Po stronie SDK createAgentSession przyjmuje ModelRuntime i SessionManager i zwraca działającego agenta. SessionManager to wybór trwałości: w pamięci dla jednorazowego skryptu, na dysku, by odnaleźć rozmowy między uruchomieniami, a sesje utworzone przez SDK mają taką samą strukturę jak sesje samego CLI s8. Lista opcji createAgentSession pozwala też wybrać dokładny zestaw udostępnianych narzędzi, a nawet cały system prompt przez ResourceLoader, gdy chcesz zacząć od czystej kartki s8. Własne narzędzia idą przez defineTool: nazwa, opis, typowany schemat parametrów i funkcja execute, przekazane do createAgentSession w customTools. Narzędzie wygląda dla modelu dokładnie jak read czy bash, typowany schemat daje autouzupełnianie w edytorze, a agent dostaje już zwalidowane dane wejściowe. To ten sam mechanizm co serwer MCP, tyle że wszystko mieszka w twoim pliku, bez osobnego procesu i bez protokołu pośrodku s8.
Samo CLI dostosowuje się czterema mechanizmami, wszystkie w folderach projektu lub katalogu domowego: extensions (moduły TypeScript rejestrujące narzędzia, slash commands, skróty klawiszowe lub elementy UI, ładowane przy starcie z folderu extensions), skills (pakiety umiejętności zgodne ze standardem Agent Skills, wywoływane przez model lub ręcznie, więc istniejące skills da się użyć bez zmian), prompt templates oraz motywy przeładowywane w trakcie działania CLI s3. README streszcza filozofię w jednym zdaniu: dostosuj pi do swoich workflow, a nie odwrotnie, bez forka i bez grzebania we wnętrzu s3. Tam, gdzie duże harnessy wbudowują w produkt sub-agentów, plan mode i uprawnienia, pi celowo ich nie ma, żeby napisać je jako extensions albo zainstalować od społeczności s3.
Ograniczenia dokumentuje sam projekt. Nie ma wbudowanych pytań o uprawnienia: domyślnie agent może wykonać polecenie bash bez pytania. Oficjalny przewodnik po konteneryzacji to przyznaje i proponuje trzy wzorce izolacji, w tym Docker, ale skonfigurowanie jednego z nich, zanim wypuścisz agenta na ważną maszynę, to twoje zadanie s5. Dojrzałość to drugi koszt: v0.84, a nie 1.0, około stu otwartych issues i API wciąż oznaczone jako eksperymentalne, jak klient zdalnych sesji dodany w ostatnich tygodniach s7. Te same klocki obsługują już inny produkt: pi-chat stosuje je do automatyzacji rozmów s6.
Werdykt: zostaw, wypróbuj albo pomiń
| Element pi | Ocena | Dlaczego |
|---|---|---|
| CLI jako stanowisko do nauki obok codziennego harnessu | Zostaw | Lokalne sesje drzewiaste, koszty na żywo, cztery narzędzia: widzisz każdą warstwę, którą ukrywa wbudowany harness |
| SDK (createAgentSession + defineTool) do produktów z agentami | Wypróbuj teraz | Dziesięć linii do działającego agenta, typowane własne narzędzia bez okablowania MCP, wymienny dostawca |
| CLI jako jedyny codzienny asystent | Na razie pomiń | Brak pytań o uprawnienia, izolacja po twojej stronie, zmiany API przed 1.0 |
| Extensions jako zabezpieczenia (potwierdzanie bash, polityki) | Wypróbuj | Przewidziane miejsce na warstwę uprawnień; wersjonowane razem z projektem |
| Folder skills | Zostaw | Standard Agent Skills, twoje istniejące skills ładują się bez zmian |
| Eksperymentalne API (klient zdalnych sesji) | Pomiń | Oznaczone jako eksperymentalne, mogą się zmienić przed 1.0 |
Do zrobienia w poniedziałek
- Zainstaluj CLI przez
npm install -g --ignore-scripts @earendil-works/pi-coding-agent, uruchompi, połącz dostawcę poleceniem login i obserwuj pasek kosztów podczas jednego prawdziwego zadania. - Otwórz repo, które ma już AGENTS.md lub CLAUDE.md, i sprawdź, czy pi go podchwytuje; porównaj pierwsze odpowiedzi agenta z twoim zwykłym harnessem na tym samym prompcie.
- Przeprowadź jedną rozmowę, potem zrób
forkod wcześniejszego węzła i obierz inny kierunek; wylistuj~/.pi/agent/sessions/, żeby zobaczyć pliki JSONL i ich foldery projektów. - Napisz dwudziestoliniowy
our-agent.ts: zaimportuj createAgentSession, przekaż ModelRuntime i SessionManager w pamięci, zapytaj, co zawiera bieżący folder, uruchom przeznpx tsx. - Dodaj jeden defineTool, który czyta coś z twojego systemu (wewnętrzne API, widok bazy, CSV), i przekaż go w customTools; potwierdź, że agent wywołuje go sam przy pasującym pytaniu.
- Przed każdym uruchomieniem z bash na maszynie, na której ci zależy, wybierz jeden z trzech wzorców izolacji z przewodnika po konteneryzacji i skonfiguruj go.
- Naszkicuj pierwsze extension, które przechwytuje wywołania bash i prosi o potwierdzenie przy poleceniach destrukcyjnych; trzymaj je w folderze extensions projektu pod kontrolą wersji.
- Raz przejrzyj listę otwartych issues, żeby wiedzieć, które części się ruszają, zanim zaczniesz na nich budować.
Czytaj dalej
- Przeczytaj dokumentację SDK, by poznać pełną listę opcji createAgentSession: zestaw narzędzi, system prompt przez ResourceLoader, session managery s8.
- Przestudiuj trzy wzorce izolacji w przewodniku po konteneryzacji, zanim wypuścisz cokolwiek, co uruchamia bash na maszynie użytkownika s5.
- Zajrzyj do pi-chat, żeby zobaczyć, jak te same pięć pakietów jest przearanżowanych pod automatyzację rozmów zamiast kodowania s6.
- Przejrzyj folder packages i przeczytaj osobno pi-agent-core: to najmniejsza czytelna wersja pętli, którą uruchamia każdy wbudowany harness s2.
- Śledź stronę wydań: od v0.84.0 do v0.84.2 wyszły w dwa tygodnie sierpnia, więc spodziewaj się notatek o zmianach dotyczących extensions s4.
- Użyj otwartych issues jako mapy tego, co wciąż eksperymentalne, zaczynając od klienta zdalnych sesji s7.
- Wykorzystaj ponownie skills napisane dla innych narzędzi: folder skills w pi jest zgodny ze standardem Agent Skills s3.
Źródła
- pi: the agent toolkit (repository), Earendil Works. Dlaczego warto: README z listą pakietów, liczbą gwiazdek i forków oraz licencją MIT.
- pi monorepo packages, Earendil Works. Dlaczego warto: pięć pakietów obok siebie, najszybszy sposób, by zobaczyć, którą warstwę obsługuje każdy.
- pi-coding-agent package README, Earendil Works. Dlaczego warto: polecenie instalacji, domyślne narzędzia, sesje i cztery mechanizmy rozszerzeń.
- pi releases, Earendil Works. Dlaczego warto: tempo wydań i changelog linii v0.84.
- pi containerization guide (isolation patterns), Earendil Works. Dlaczego warto: trzy wzorce izolacji do zastosowania, zanim włączysz bash tam, gdzie to ważne.
- pi-chat: the same bricks applied to conversation automation, Earendil Works. Dlaczego warto: drugi produkt zbudowany z tych samych pakietów, przydatny do oceny ich ponownego użycia.
- pi open issues, Earendil Works. Dlaczego warto: aktualna lista tego, co jest niestabilne lub eksperymentalne w obecnej wersji.
- pi-coding-agent SDK documentation (createAgentSession options), Earendil Works. Dlaczego warto: dokładne nazwy opcji createAgentSession, defineTool i session managerów.
FAQ
Czy pi może dziś zastąpić mojego codziennego coding agenta?
Nie jako zamiennik. Dostarczany jest bez pytań o uprawnienia, izolacja jest po twojej stronie, a linia wersji jest sprzed 1.0 z około stu otwartych issues. Zostaw obecny harness do pracy i uruchamiaj pi obok.
Czy potrzebuję MCP, żeby dać pi własne narzędzie?
Nie. defineTool przyjmuje nazwę, opis, typowany schemat parametrów i funkcję execute, a narzędzie przekazujesz do createAgentSession w customTools. Zachowuje się jak narzędzie wbudowane, bez osobnego procesu i protokołu.
Czy moje AGENTS.md, CLAUDE.md i skills będą działać?
Tak. CLI automatycznie ładuje AGENTS.md lub CLAUDE.md z projektu, a jego folder skills jest zgodny ze standardem Agent Skills, więc istniejące skills ładują się bez zmian.
Dlaczego tylko cztery domyślne narzędzia?
read, write, edit i bash to cały zestaw domyślny, znacznie mniej niż w agentach na rynku, a projekt przedstawia to jako świadomy wybór. Wszystko inne dodajesz celowo przez customTools lub extension.
AIDive