TL;DR
- pi एक MIT लाइसेंस वाला monorepo है, जो coding agent harness को पाँच अलग पैकेजों में देता है: model API लेयर, agent loop, terminal UI लाइब्रेरी, coding agent खुद और एक telemetry पैकेज। आप एक हिस्सा ले सकते हैं या पाँचों।
- CLI पहले दिन से पूरा coding agent है: चार डिफ़ॉल्ट tools, fork और resume वाली पेड़ जैसी session history, लाइव cost काउंटर, और यह आपके repo में पहले से मौजूद AGENTS.md या CLAUDE.md को पढ़ता है।
- असली मूल्य SDK वाले हिस्से में है: createAgentSession, model runtime और session manager मिलकर लगभग दस लाइन के TypeScript में चलता हुआ agent दे देते हैं, और defineTool बिना अलग process या protocol के typed custom tool जोड़ देता है।
- इस पारदर्शिता की कीमत मेहनत है: कोई built-in permission prompt नहीं, isolation आपके ज़िम्मे, pre-1.0 वर्शन (v0.84) और लगभग सौ खुले issues।
- अपना रोज़ का harness रखिए, और pi को ऐसे test bench की तरह इस्तेमाल कीजिए जो दिखाए कि वह harness क्या छिपाता है। उस पर product तभी बनाइए जब guardrails अपने हाथ में लेने को तैयार हों।
स्रोत क्या कहते हैं
pi एक monorepo है: एक repository में पाँच पैकेज, जो अलग-अलग publish होते हैं और harness की एक-एक परत संभालते हैं s2। pi-ai model providers (OpenAI, Anthropic, Google और अन्य, एक ही interface के पीछे) की unified API है, जो response streaming, thinking levels वाले reasoning blocks और हर provider के models की dynamic खोज संभालती है s2। pi-agent-core खुद agent loop है: बातचीत की state और वह चक्र जो संदेश भेजता है, tool calls पढ़ता है, उन्हें चलाता है और नतीजे वापस देता है s2। pi-tui differential rendering वाली terminal rendering लाइब्रेरी है, यानी स्क्रीन पर सिर्फ़ वही दोबारा बनता है जो बदला है s2। pi-coding-agent इन सबको जोड़कर वह CLI बनाता है जो आप install करते हैं, और pi-telemetry से आप किसी vendor पर निर्भर हुए बिना अपने usage metrics जोड़ सकते हैं s3।
अपनाए जाने के आँकड़े इस design का समर्थन करते हैं: 92 123 stars, 11 400 forks और 5 700 से ज़्यादा commits, सब MIT लाइसेंस के तहत, जो इस्तेमाल, बदलाव और redistribution की इजाज़त देता है, commercial product के भीतर भी s1। गर्मियों भर release की रफ़्तार बनी रही: अगस्त के पहले दो हफ़्तों में तीन releases, और v0.84.2 14 तारीख़ को आया s4।
Install एक कमांड है, npm install -g --ignore-scripts @earendil-works/pi-coding-agent, और ignore-scripts flag मायने रखता है: यह dependencies को अपनी install scripts चलाने से रोकता है, जो npm पर हमले का सबसे ज़्यादा इस्तेमाल होने वाला रास्ता है s3। login कमांड से provider से जुड़ने के बाद नीचे की bar में मौजूदा folder, session, खर्च हुए tokens और cost रीयल टाइम में दिखती है, यानी हर request का दाम उसी समय पता चलता है, महीने के अंत में नहीं s3।
Sessions इसकी खास बात हैं। हर बातचीत आपके home folder में JSONL के रूप में, project के हिसाब से छँटी हुई सेव होती है, और history सीधी रेखा नहीं, पेड़ है: fork किसी भी बिंदु पर लौटकर नई शाखा बनाता है, tree शाखाओं के बीच घूमता है, और resume किसी भी पुरानी session को हफ़्तों बाद भी खोल देता है, क्योंकि सब कुछ लोकल सेव है s3। model को डिफ़ॉल्ट रूप से सिर्फ़ चार tools मिलते हैं: read, write, edit और bash, बाज़ार के agents के मुक़ाबले बहुत कम, और यह जानबूझकर है s3। Configuration भी इसी तर्क पर चलती है: home में एक global settings.json, हर project की एक settings.json जो उसे override करती है, और एक trust system जो किसी folder को पहली बार खोलने पर उसकी local settings लागू करने से पहले पूछता है। CLI आपके project की AGENTS.md या CLAUDE.md को context के रूप में लोड करता है, इसलिए मौजूदा instructions बिना दोबारा लिखे काम करते हैं s3।
SDK की तरफ़, createAgentSession एक ModelRuntime और एक SessionManager लेता है और चलता हुआ agent लौटाता है। SessionManager persistence का चुनाव है: एक बार की script के लिए memory में, बातचीत को अगली बार फिर पाने के लिए disk पर, और SDK से बनी sessions की structure CLI की अपनी sessions जैसी ही होती है s8। createAgentSession की options सूची से आप यह भी चुन सकते हैं कि कौन-से tools उपलब्ध हों, और खाली पन्ने से शुरू करना हो तो ResourceLoader के ज़रिए पूरा system prompt भी s8। Custom tools defineTool से बनते हैं: एक नाम, एक विवरण, typed parameter schema और एक execute function, जिसे createAgentSession के customTools में दिया जाता है। model को वह tool बिल्कुल read या bash की तरह दिखता है, typed schema से editor में autocompletion मिलता है और agent को पहले से validated inputs मिलते हैं। यह वही तंत्र है जो MCP server का है, बस सब कुछ आपकी अपनी फ़ाइल में रहता है, बीच में कोई अलग process या protocol नहीं s8।
CLI को चार तरीकों से अपनी ज़रूरत के हिसाब से ढाला जाता है, सब आपके project या home के folders में: extensions (TypeScript modules जो tools, slash commands, keyboard shortcuts या UI elements register करते हैं और startup पर extensions folder से लोड होते हैं), skills (Agent Skills standard वाले capability packages, जिन्हें model बुलाता है या आप हाथ से, इसलिए मौजूदा skills जस की तस दोबारा इस्तेमाल हो जाती हैं), prompt templates, और themes जो CLI चलते-चलते reload होती हैं s3। README दर्शन को एक पंक्ति में कहता है: pi को अपने workflows के हिसाब से ढालिए, उलटा नहीं, बिना fork किए और बिना internals छुए s3। जहाँ बड़े harnesses sub-agents, plan mode और permissions को product में ही बाँध देते हैं, pi इन्हें जानबूझकर बाहर रखता है, ताकि इन्हें extensions के रूप में लिखा या community से install किया जाए s3।
सीमाएँ project ने खुद दर्ज की हैं। कोई built-in permission prompt नहीं है: डिफ़ॉल्ट रूप से agent बिना पूछे bash कमांड चला सकता है। आधिकारिक containerization guide यह मानती है और तीन isolation patterns सुझाती है, जिनमें Docker भी है, पर किसी अहम मशीन पर agent को छोड़ने से पहले इसे सेट करना आपका काम है s5। परिपक्वता दूसरी कीमत है: v0.84, 1.0 नहीं, लगभग सौ खुले issues, और ऐसे APIs जो अब भी experimental चिह्नित हैं, जैसे पिछले हफ़्तों में जुड़ा remote session client s7। यही building blocks एक और product में पहले से लगे हैं: pi-chat इन्हें conversation automation पर लागू करता है s6।
Verdict: रखें, आज़माएँ या छोड़ें
| pi का हिस्सा | फ़ैसला | क्यों |
|---|---|---|
| रोज़ के harness के बगल में सीखने के bench के रूप में CLI | रखें | लोकल tree sessions, लाइव cost, चार tools: आप वे सारी परतें देखते हैं जो bundled harness छिपाता है |
| agent products के लिए SDK (createAgentSession + defineTool) | अभी आज़माएँ | दस लाइन में चलता agent, MCP की झंझट के बिना typed custom tools, बदला जा सकने वाला provider |
| इकलौते रोज़ के सहायक के रूप में CLI | अभी छोड़ें | कोई permission prompt नहीं, isolation आप पर, pre-1.0 API में बदलाव |
| guardrails के लिए Extensions (bash confirmation, policies) | आज़माएँ | permission लेयर की सही जगह; आपके project के साथ versioned |
| Skills folder | रखें | Agent Skills standard, आपकी मौजूदा skills बिना बदलाव लोड होती हैं |
| Experimental APIs (remote session client) | छोड़ें | experimental चिह्नित, 1.0 से पहले बदल सकते हैं |
सोमवार को यह करें
-
npm install -g --ignore-scripts @earendil-works/pi-coding-agentसे CLI install करें,piचलाएँ, login कमांड से provider जोड़ें, और एक असली काम के दौरान cost bar देखें। - ऐसा repo खोलें जिसमें पहले से AGENTS.md या CLAUDE.md हो और देखें कि pi उसे उठाता है; उसी prompt पर agent के पहले जवाबों की तुलना अपने रोज़ के harness से करें।
- एक बातचीत चलाएँ, फिर किसी पुराने node से
forkकरके अलग दिशा लें;~/.pi/agent/sessions/की सूची देखकर JSONL फ़ाइलें और उनके project folders देखें। - बीस लाइन की
our-agent.tsलिखें: createAgentSession import करें, ModelRuntime और in-memory SessionManager दें, पूछें कि मौजूदा folder में क्या है, औरnpx tsxसे चलाएँ। - एक defineTool जोड़ें जो आपके अपने सिस्टम से कुछ पढ़े (internal API, database view, CSV) और उसे customTools में दें; पक्का करें कि संबंधित सवाल पर agent उसे बिना कहे बुलाता है।
- जिस मशीन की आपको परवाह है उस पर bash-enabled रन से पहले containerization guide के तीन isolation patterns में से एक चुनकर सेट करें।
- पहला extension बनाएँ जो bash calls को रोके और विनाशकारी कमांड पर confirmation माँगे; इसे अपने project के extensions folder में version control में रखें।
- खुले issues की सूची एक बार देख लें, ताकि पता रहे कि किन हिस्सों पर निर्माण से पहले बदलाव आ सकते हैं।
आगे पढ़ें
- createAgentSession की पूरी options सूची के लिए SDK documentation पढ़ें: tool set, ResourceLoader के ज़रिए system prompt, session managers s8।
- किसी उपयोगकर्ता की मशीन पर bash चलाने वाली कोई चीज़ भेजने से पहले containerization guide के तीन isolation patterns समझें s5।
- pi-chat देखें कि वही पाँच पैकेज coding की जगह conversation automation के लिए कैसे दोबारा जोड़े गए हैं s6।
- packages folder खँगालें और pi-agent-core को अकेले पढ़ें: यह उस loop का सबसे छोटा पढ़ने लायक रूप है जो हर bundled harness चलाता है s2।
- releases पेज को फ़ॉलो करें: v0.84.0 से v0.84.2 अगस्त के दो हफ़्तों में आए, इसलिए extensions पर असर डालने वाले change notes की उम्मीद रखें s4।
- खुले issues को इस नक़्शे की तरह इस्तेमाल करें कि क्या अब भी experimental है, remote session client से शुरू करके s7।
- दूसरे tools के लिए लिखी अपनी skills दोबारा इस्तेमाल करें: pi का skills folder Agent Skills standard का पालन करता है s3।
स्रोत
- pi: the agent toolkit (repository), Earendil Works. क्यों पढ़ें: पैकेज सूची, stars और forks की गिनती और MIT लाइसेंस वाला README।
- pi monorepo packages, Earendil Works. क्यों पढ़ें: पाँचों पैकेज साथ-साथ, यह देखने का सबसे तेज़ तरीका कि कौन-सी परत किसकी है।
- pi-coding-agent package README, Earendil Works. क्यों पढ़ें: install कमांड, डिफ़ॉल्ट tools, sessions और चार extension तंत्र।
- pi releases, Earendil Works. क्यों पढ़ें: v0.84 श्रृंखला की रफ़्तार और changelog।
- pi containerization guide (isolation patterns), Earendil Works. क्यों पढ़ें: किसी अहम जगह bash चालू करने से पहले लागू करने के तीन isolation patterns।
- pi-chat: the same bricks applied to conversation automation, Earendil Works. क्यों पढ़ें: उन्हीं पैकेजों से बना दूसरा product, यह परखने के लिए कि वे कितने दोबारा इस्तेमाल लायक हैं।
- pi open issues, Earendil Works. क्यों पढ़ें: मौजूदा वर्शन में क्या अस्थिर या experimental है, उसकी लाइव सूची।
- pi-coding-agent SDK documentation (createAgentSession options), Earendil Works. क्यों पढ़ें: createAgentSession, defineTool और session managers के सटीक option नाम।
FAQ
क्या pi आज मेरे रोज़ के coding agent की जगह ले सकता है?
सीधे बदलाव के रूप में नहीं। यह बिना permission prompts के आता है, isolation आपके ज़िम्मे है, और वर्शन pre-1.0 है जिसमें लगभग सौ खुले issues हैं। काम के लिए अपना मौजूदा harness रखिए और pi को उसके बगल में चलाइए।
pi को custom tool देने के लिए क्या मुझे MCP चाहिए?
नहीं। defineTool एक नाम, एक विवरण, typed parameter schema और एक execute function लेता है, और tool को createAgentSession के customTools में दिया जाता है। यह built-in tool की तरह व्यवहार करता है, बिना अलग process या protocol के।
क्या मेरी मौजूदा AGENTS.md, CLAUDE.md और skills काम करेंगी?
हाँ। CLI आपके project की AGENTS.md या CLAUDE.md अपने आप लोड करता है, और उसका skills folder Agent Skills standard का पालन करता है, इसलिए मौजूदा skills बिना बदलाव लोड होती हैं।
सिर्फ़ चार डिफ़ॉल्ट tools क्यों?
read, write, edit और bash ही पूरा डिफ़ॉल्ट सेट है, बाज़ार के agents से काफ़ी कम, और project इसे एक चुनाव के रूप में पेश करता है। बाकी सब customTools या किसी extension से सोच-समझकर जोड़ा जाता है।
AIDive