AIDive

pi के अंदर: 92,000 स्टार वाला टूलकिट, अपना एजेंट बनाएं

AIDive द्वारा · प्रकाशित

कोडिंग एजेंट

आपका एजेंट एक ब्लैक बॉक्स है

Claude Code, Codex और Gemini CLI ऐसे एजेंट हार्नेस हैं जिन्हें किसी और ने डिज़ाइन किया है — और अगर आप अपना कामकाजी दिन इनमें से किसी एक में बिताते हैं, तो आप उसी डिज़ाइन फैसले के साथ जीते हैं। कोई व्यवहार बदलना है, टूल जोड़ना है, परमिशन नियम कसना है? आप वेंडर के भेजने का इंतज़ार करते हैं। आपको सिस्टम प्रॉम्प्ट में क्या है यह नहीं पता, टूल्स चलाने वाला लूप नहीं दिखता, और आप इनमें से कुछ भी नहीं बदल सकते — भले ही ये टूल्स हज़ारों डेवलपर्स का मुख्य वर्कस्टेशन बन चुके हों।

एक ओपन सोर्स प्रोजेक्ट बिल्कुल उल्टा रास्ता लेता है: pi, एक टूलकिट जो अपना एजेंट बनाने के पुर्ज़े देता है, मॉडल कनेक्टर से लेकर इंटरफ़ेस तक। इसने अपने पहले साल में 92,000 GitHub स्टार्स कमाए और लगभग हर हफ्ते एक रिलीज़ देता है। यह लेख बताता है कि pi डिब्बे में असल में क्या देता है, इसके SDK से अपना एजेंट कैसे बनाया जाए, और तैयार हार्नेस के मुकाबले एक ईमानदार फैसला।

हार्नेस असल में क्या होता है

हार्नेस एक लैंग्वेज मॉडल के चारों ओर की वह पूरी मशीनरी है जो उसे एक काम करता एजेंट बनाती है। अकेला मॉडल सिर्फ एक काम कर सकता है: टेक्स्ट पढ़ना और टेक्स्ट लिखना। यह आपकी फ़ाइलें नहीं पढ़ता, एक भी कमांड नहीं चलाता, और एक सेशन से दूसरे में कुछ याद नहीं रखता। बाकी सब हार्नेस है — सिस्टम प्रॉम्प्ट जो मॉडल को फ्रेम करता है, उसे दिए गए टूल्स, वह लूप जो टूल कॉल्स चलाता है और नतीजे वापस देता है, और आपके टर्मिनल का इंटरफ़ेस।

हार्नेस ही रोज़ फर्क डालने वाले डिटेल्स भी तय करता है: कॉन्टेक्स्ट भरने पर हिस्ट्री कैसे कॉम्पैक्ट होती है, टूल एरर मॉडल तक कैसे पहुंचता है, क्या लॉग होता है और क्या नहीं। Claude Code एक हार्नेस है। Codex भी। जब कोई एजेंट आपको प्रभावित करता है, तो उसका ज़्यादातर श्रेय उस मशीनरी को जाता है, मॉडल को नहीं — एक ही मॉडल को दो अलग हार्नेस में लगाइए और आपको दो एजेंट मिलेंगे जो एक-दूसरे के बराबर नहीं होंगे।

pi, जिसे Earendil Works ने बनाया, इस मशीनरी को रीयूज़ेबल टुकड़ों में बांटता है। आप इसका कोडिंग एजेंट सीधे इस्तेमाल कर सकते हैं, या टुकड़े एक-एक करके लेकर अपना बना सकते हैं। दूसरा विकल्प ही हमें दिलचस्प लगता है।

pi टूलकिट के अंदर

pi एक मोनोरेपो है — एक ही रिपॉज़िटरी जो अलग-अलग पब्लिश हुए पांच पैकेज होस्ट करती है — और हर पैकेज हार्नेस की एक मंज़िल संभालता है:

पैकेज क्या करता है
pi-ai OpenAI, Anthropic, Google और बाकी सब के लिए यूनिफाइड API: रिस्पॉन्स स्ट्रीमिंग, अपने लेवल के साथ रीज़निंग ब्लॉक्स, हर प्रोवाइडर के मॉडलों की डायनामिक खोज। एक आर्ग्युमेंट बदलकर लैब बदलें।
pi-agent-core खुद एजेंट लूप: कन्वर्सेशन स्टेट, साथ ही वह साइकल जो मैसेज भेजता है, टूल कॉल्स पढ़ता है, उन्हें चलाता है और काम पूरा होने तक नतीजे लौटाता है। उलझे हुए मामले — फेल होता टूल, बीच में कटा जवाब, पैरेलल कॉल्स — पहले से संभले हैं।
pi-tui डिफरेंशियल रेंडरिंग वाली टर्मिनल रेंडरिंग लाइब्रेरी: स्क्रीन पर बस बदली चीज़ें फिर से बनाती है।
pi-coding-agent ऊपर के टुकड़ों से बना पूरा कोडिंग एजेंट — सबूत कि यह टूलकिट एक पूरा प्रोडक्ट बनाने के लिए काफी है।
pi-telemetry वेंडर पर निर्भर हुए बिना अपनी यूसेज मेट्रिक्स जोड़ें।

एजेंट लूप वही हिस्सा है जिसे आप शुरू से गलत बनाते; इसे ठीक से लिखना हफ्तों का काम है जो एक इम्पोर्ट में मिल जाता है। टीम यही तरीका कहीं और भी लगाती है: एक अलग रीपो, pi-chat, वही टुकड़े कन्वर्सेशन ऑटोमेशन में इस्तेमाल करता है।

आंकड़े बताते हैं फॉर्मूला काम करता है:

मेट्रिक वैल्यू
GitHub स्टार्स 92,123
फोर्क्स 11,400
कमिट्स 5,700+
लाइसेंस MIT
अगस्त 2026 के पहले दो हफ्तों में रिलीज़ 3 (v0.84.2, 14 अगस्त को)

MIT लाइसेंस का मतलब है आप pi को बिना रोक-टोक इस्तेमाल, बदल और वितरित कर सकते हैं, किसी कमर्शियल प्रोडक्ट में भी। pi सिर्फ एक और फ्रेमवर्क नहीं है: यह पूरा हार्नेस है, टुकड़ों में डिलीवर किया गया, और लगातार बनाए रखा जाता है।

CLI व्यवहार में

pi CLI वह असेंबल्ड कोडिंग एजेंट है जो आपको कोई कोड छुए बिना मिलता है, और यहीं से आप शुरू करेंगे। इंस्टॉल एक लाइन में है, और इसका --ignore-scripts फ्लैग मामूली नहीं: यह आपकी डिपेंडेंसीज़ को इंस्टॉल स्क्रिप्ट चलाने से रोकता है, npm पर सबसे ज़्यादा गलत इस्तेमाल होने वाली खामियों में से एक। pi चलाएं, login कमांड से प्रोवाइडर जोड़ें, और आपके टर्मिनल में ही एक कोडिंग एजेंट आ जाता है। स्टेटस बार में मौजूदा फ़ोल्डर, सेशन, इस्तेमाल हुए टोकन और रीयल-टाइम लागत दिखती है — आप हर रिक्वेस्ट की कीमत भेजते ही देख लेते हैं, महीने के आखिर में बिल जानने के बजाय।

स्लैश कमांड्स रोज़ के काम संभालते हैं: model बीच में मॉडल बदलने के लिए, compact कॉन्टेक्स्ट भरने पर हिस्ट्री समराइज़ करने के लिए, export कन्वर्सेशन निकालने के लिए, बाकी सब settings। prompts फ़ोल्डर की एक मार्कडाउन फ़ाइल एक कमांड बन जाती है जो नाम टाइप करने से चलती है।

pi की असली पहचान इसकी सेशन हैंडलिंग है। हर कन्वर्सेशन आपके होम फ़ोल्डर में JSONL में सेव होती है, प्रोजेक्ट के हिसाब से — और हिस्ट्री दरअसल एक पेड़ है, लाइन नहीं। आप कन्वर्सेशन के किसी भी पॉइंट पर वापस जा सकते हैं और fork कमांड से दूसरी राह ले सकते हैं, फिर tree से ब्रांचेस के बीच जा सकते हैं। फेल हुआ प्रॉम्प्ट अब कुछ नहीं गंवाता: पिछले नोड पर लौटें और फिर से कोशिश करें, दूसरी ब्रांच खोए बिना। चूंकि सब कुछ लोकली सेव होता है, resume आपको किसी भी पुराने सेशन में वापस ले जाता है, हफ्तों बाद भी। न Claude Code न Codex इस रूप में हिस्ट्री नेविगेशन देते हैं।

डिफ़ॉल्ट रूप से मॉडल को सिर्फ चार टूल्स मिलते हैं: read, write, edit और bash। बाज़ार के एजेंट्स के मुकाबले यह बहुत कम है, और यह जानबूझकर है (इस पर आगे लौटेंगे)। कॉन्फ़िगरेशन भी उसी लॉजिक पर चलता है: होम फ़ोल्डर में एक ग्लोबल सेटिंग्स फ़ाइल, एक प्रोजेक्ट वाली जो उसे ओवरराइड करती है, और एक ट्रस्ट सिस्टम जो पहली बार खोले फ़ोल्डर की सेटिंग्स लगाने से पहले पूछता है। अगर आप माइग्रेट करें, तो pi आपकी मौजूदा AGENTS.md या CLAUDE.md फ़ाइलें अपने आप कॉन्टेक्स्ट में लोड करता है, तो पुराने इंस्ट्रक्शंस बिना दोबारा लिखे काम करते हैं।

हम अपना एजेंट बनाते हैं

pi के SDK से एजेंट बनाना एक ही इम्पोर्ट से शुरू होता है: createAgentSession, जिसे आप मॉडल रनटाइम और सेशन मैनेजर देते हैं, एक काम करता एजेंट लौटाता है। सेशन मैनेजर परसिस्टेंस का विकल्प है — डिस्पोज़ेबल स्क्रिप्ट के लिए मेमोरी में, या हर बार बातचीत वापस पाने के लिए डिस्क पर।

हमने इसे एक लोकल प्रोजेक्ट पर आज़माया। हमारी स्क्रिप्ट पूछती है मौजूदा फ़ोल्डर में क्या है; एजेंट अपना read टूल बुलाता है, फ़ोल्डर पढ़ता है और जवाब देता है। यही पूरा लूप है, हमने लिखा, करीब दस लाइनों के TypeScript में। SDK जो सेशन बनाता है उनकी वही ट्री स्ट्रक्चर होती है जो CLI की — हर मैसेज अपने पैरेंट से जुड़ा होता है — तो हिस्ट्री ब्रांचिंग आपके अपने कोड में भी चलती है।

कस्टम टूल्स से यह दिलचस्प हो जाता है। defineTool एक नाम, एक विवरण, एक टाइप्ड पैरामीटर स्कीमा और एक execute फंक्शन लेता है, और आपका टूल मॉडल को बिल्कुल read या bash जैसा दिखता है। हमने एक ऐसा लिखा जो चैनल की वीडियो लिस्ट पूछता है, customTools में दिया, और एजेंट ने पहले ही सही सवाल पर इसे खुद बुला लिया। यह लगभग MCP सर्वर जैसा ही तरीका है, बस सब कुछ आपकी फ़ाइल में रहता है — बिना अलग प्रोसेस, बिना बीच में किसी प्रोटोकॉल के। चूंकि पैरामीटर स्कीमा टाइप्ड है, आपका एडिटर आर्ग्युमेंट्स ऑटो पूरा करता है और एजेंट को पहले से वैलिडेट इनपुट मिलते हैं।

आप मॉडल को भी कंट्रोल करते हैं, थिंकिंग लेवल (पूरी तरह बंद से मैक्स तक), मॉडल को दिखने वाले टूल्स की सटीक लिस्ट, और अगर बिल्कुल खाली पेज से शुरू करना हो तो रिसोर्स लोडर से पूरा सिस्टम प्रॉम्प्ट भी। दिखाने के लिए, session.subscribe हर इवेंट देता है — स्ट्रीम्ड टेक्स्ट, टूल कॉल्स, एरर — जिन्हें आप कहीं भी भेज सकते हैं: टर्मिनल, मैसेजिंग बॉट, या एक CI पाइपलाइन जो आपके पुल रिक्वेस्ट पर कमेंट करे। एक दोपहर में आप एजेंट इस्तेमाल करने से एक लिखने तक पहुंच जाते हैं, और आखिरकार जान जाते हैं लूप के हर मोड़ पर क्या होता है।

बिना फोर्क किए इसे बढ़ाना

pi का CLI चार तरीकों से कस्टमाइज़ होता है, सब आपके प्रोजेक्ट या होम के आम फ़ोल्डरों में:

  • Extensions — TypeScript मॉड्यूल्स जो टूल्स, स्लैश कमांड्स, शॉर्टकट या UI एलिमेंट्स रजिस्टर करते हैं। फ़ाइल extensions फ़ोल्डर में डालें और यह लॉन्च पर लोड होती है। यहीं आप एक परमिशन गार्ड लिखेंगे, मसलन: एक एक्सटेंशन जो bash कमांड्स रोककर खतरनाक कमांड्स से पहले कन्फर्मेशन मांगे।
  • Skills — Agent Skills स्टैंडर्ड वाले कैपेबिलिटी पैकेज, वही जिसे Anthropic ने लोकप्रिय बनाया, तो आपकी मौजूदा skills वैसी ही इस्तेमाल हो जाती हैं।
  • Prompts — मार्कडाउन फ़ाइलों में रीयूज़ेबल प्रॉम्प्ट्स।
  • Themes — CLI चलते वक्त हॉट-रीलोड होती हैं।

यह सब किसी पैकेज की तरह इंस्टॉल होता है: pi install एक npm पैकेज या git रीपो लेता है, और एक कमांड सब अपडेट करता है। डॉक्स फिलॉसफी एक लाइन में समेटते हैं: pi को अपने वर्कफ़्लो में ढालें, उल्टा नहीं, बिना फोर्क या इंटरनल पैच किए।

यह बड़े हार्नेस के उल्टा है। जहां Claude Code सब-एजेंट्स, plan mode और परमिशन प्रोडक्ट में देता है, pi जानबूझकर उन्हें बाहर छोड़ता है, एक्सटेंशन में बनाने या कम्युनिटी से इंस्टॉल करने के लिए। दांव साफ है: एक न्यूनतम कोर जो मुश्किल से बदलता है, और सारी कस्टमाइज़ेशन आपकी तरफ रहती है, आपके प्रोजेक्ट के साथ वर्ज़न वाली फ़ाइलों में।

असली सीमा

pi की पारदर्शिता काम से चुकाई जाती है, और यह कीमत तीन हिस्सों में आती है।

पहले गार्डरेल्स: डिफ़ॉल्ट में कोई बिल्ट-इन परमिशन प्रॉम्प्ट नहीं है, तो एजेंट बिना कुछ पूछे bash कमांड चला सकता है। ऑफिशियल डॉक्स इसे मानते हैं और तीन आइसोलेशन पैटर्न सुझाते हैं, Docker समेत — पर एजेंट को किसी अहम मशीन पर छोड़ने से पहले यह सब लगाना आपकी ज़िम्मेदारी है।

फिर मैच्योरिटी: यह v0.84 है, 1.0 नहीं, करीब सौ ओपन इश्यूज़ और कुछ API अभी भी एक्सपेरिमेंटल हैं, जैसे हाल में जोड़ा गया रिमोट सेशन क्लाइंट। जो आज काम करता है वह अगले रिलीज़ में टूट सकता है; इतनी तेज़ी से बढ़ते प्रोजेक्ट की यही सामान्य कीमत है।

और आखिर में, समय। हर सुविधा जो Claude Code डिफ़ॉल्ट में देता है — plan mode, सब-एजेंट्स, बारीक परमिशन — यहां आपको खुद बनानी पड़ती है, या कम्युनिटी पैकेज ढूंढना पड़ता है जो बना रहे यह उम्मीद रखते हुए। एक्सटेंशन इकोसिस्टम एक साल पुराना है: भरने लायक खामियां तैयार पैकेजों से ज़्यादा मिलेंगी। इंस्टॉल ने ही यह सिखा दिया कि कितनी सतर्कता चाहिए, इसके --ignore-scripts फ्लैग के साथ, और यह पूरी चेन में बनाए रखनी होगी। अगर आपका लक्ष्य आज रात कोड शिप करना है, pi तेज़ करने से पहले आपको धीमा करेगा — सिर्फ इस वीडियो के दम पर इस हफ्ते अपना मुख्य हार्नेस मत बदलिए।

pi असल में किसके लिए है

pi उन डेवलपर्स के लिए है जो सिर्फ एक नहीं, एजेंट्स के साथ प्रोडक्ट बनाते हैं। उनके लिए यह अभी शायद सबसे अच्छा सीखने का निवेश है: CLI इंस्टॉल करें, SDK से बीस लाइनों का एजेंट लिखें, और उसे अपना एक टूल दें। यह करें और आप ज़्यादातर यूज़र्स से बेहतर Claude Code समझेंगे।

अगर आपको आज बस एक प्रोडक्टिव असिस्टेंट चाहिए, अपना इंटीग्रेटेड हार्नेस रखें और 1.0 में गार्डरेल्स आने पर लौटें: pi की कीमत समझने और कंट्रोल में है, तुरंत सुविधा में नहीं। दोनों के बीच एक बिना जोखिम वाला रास्ता भी है — काम के लिए Claude Code रखें, और यह समझने के लिए pi को टेस्ट बेंच बनाएं कि आपका मुख्य टूल क्या छुपाता है।

सबसे ज़्यादा यह समझ आता है कि हार्नेस अब ब्लैक बॉक्स नहीं हैं: पुर्ज़े टेबल पर हैं, डॉक्यूमेंटेड, MIT लाइसेंस्ड। अगली बार जब कोई एजेंट आपको प्रभावित या नाराज़ करे, आप ठीक-ठीक जानेंगे कौन-सा पुर्ज़ा देखना है।

स्रोत

अक्सर पूछे जाने वाले सवाल

pi, यह AI एजेंट टूलकिट क्या है?
pi, Earendil Works का MIT-लाइसेंस्ड ओपन सोर्स मोनोरेपो है जो एक AI एजेंट हार्नेस को पांच रीयूज़ेबल पैकेजों में बांटता है — pi-ai (यूनिफाइड मॉडल API), pi-agent-core (एजेंट लूप), pi-tui (टर्मिनल UI), pi-coding-agent (पूरा कोडिंग एजेंट) और pi-telemetry (मेट्रिक्स)। आप इसका कोडिंग एजेंट सीधे इस्तेमाल कर सकते हैं या इन्हीं पुर्ज़ों से अपना बना सकते हैं।
मैं pi से अपना AI एजेंट कैसे बनाऊं?
SDK से createAgentSession इम्पोर्ट करें, इसे एक मॉडल रनटाइम और सेशन मैनेजर दें (मेमोरी या डिस्क पर), और आपके पास करीब दस लाइनों के TypeScript में एक काम करता एजेंट लूप होगा। अपनी क्षमताएं defineTool से जोड़ें, जो एक नाम, विवरण, टाइप्ड पैरामीटर स्कीमा और execute फंक्शन लेता है।
क्या pi, Claude Code का विकल्प है?
अभी रोज़ाना इस्तेमाल के लिए नहीं: pi जानबूझकर बिना बिल्ट-इन परमिशन प्रॉम्प्ट, plan mode या सब-एजेंट्स के आता है, और v0.84 पर इसके API हफ्तावार रिलीज़ों के बीच अब भी टूट सकते हैं। इसकी आज की वैल्यू कंट्रोल और समझ में है — कई डेवलपर्स काम के लिए Claude Code रखते हैं और pi को टेस्ट बेंच की तरह इस्तेमाल करते हैं।
pi मोनोरेपो के पांच पैकेज कौन-से हैं?
pi-ai (OpenAI, Anthropic, Google और अन्य के लिए एक API, स्ट्रीमिंग और रीज़निंग लेवल के साथ), pi-agent-core (कन्वर्सेशन स्टेट और टूल-एक्ज़ीक्यूशन लूप), pi-tui (डिफरेंशियल टर्मिनल रेंडरिंग), pi-coding-agent (असेंबल्ड कोडिंग एजेंट) और pi-telemetry (वेंडर-फ्री यूसेज मेट्रिक्स)।
pi कस्टम टूल्स को MCP के मुकाबले कैसे संभालता है?
defineTool आपके कोड में सीधे एक टूल रजिस्टर करता है, टाइप्ड पैरामीटर स्कीमा के साथ, तो यह मॉडल को बिल्ट-इन read या bash टूल जैसा ही दिखता है। यह MCP सर्वर जैसा ही मैकेनिज़्म है पर बिना अलग प्रोसेस और बिना प्रोटोकॉल लेयर के, और टाइप्ड स्कीमा आपको एडिटर ऑटोकम्प्लीशन और पहले से वैलिडेट इनपुट देती है।
क्या pi प्रोडक्शन-रेडी है?
pi अभी v0.84 पर है, करीब सौ ओपन इश्यूज़ और कुछ एक्सपेरिमेंटल API के साथ, और डिफ़ॉल्ट रूप से एजेंट बिना पूछे शेल कमांड चला सकता है। डॉक्स तीन आइसोलेशन पैटर्न सुझाते हैं (Docker समेत); किसी अहम मशीन पर pi इस्तेमाल करने से पहले इनमें से एक लगाएं।

मिलते-जुलते वीडियो