- Pi एक टर्मिनल-आधारित मिनिमल कोडिंग एजेंट है, जो उपयोगकर्ता के वर्कफ़्लो के अनुसार विस्तार योग्य संरचना प्रदान करता है
- TypeScript extensions, skills, prompt templates, themes को जोड़कर अपना डेवलपमेंट वातावरण बनाया जा सकता है, और इसे npm या git package के रूप में साझा किया जा सकता है
- यह 15 से अधिक AI providers और सैकड़ों models को सपोर्ट करता है, और सेशन के दौरान भी मॉडल बदले जा सकते हैं या custom models जोड़े जा सकते हैं
- सेशन tree-structured history के रूप में सेव होते हैं, जिससे पुराने बिंदु पर वापस जाया जा सकता है या HTML·GitHub gist में export किया जा सकता है
- मुख्य सुविधाओं को न्यूनतम रखते हुए extensibility-केंद्रित design philosophy बनाए रखी गई है, ताकि डेवलपर केवल आवश्यक फीचर्स खुद लागू करें या package के रूप में जोड़ें
Pi का अवलोकन
- Pi एक टर्मिनल कोडिंग हार्नेस है, जिसकी संरचना ऐसी है कि उपयोगकर्ता अपना वर्कफ़्लो बदले बिना टूल को कस्टमाइज़ कर सकते हैं
- विस्तार योग्य घटकों के रूप में TypeScript extensions, skills, prompt templates, themes का समर्थन करता है
- इन्हें एक साथ बाँधने वाले pi package को npm या git के माध्यम से install और share किया जा सकता है
- डिफ़ॉल्ट सेटिंग शक्तिशाली है, लेकिन इसमें sub-agents या plan mode जैसी सुविधाएँ शामिल नहीं हैं
- यह चार modes (interactive, print/JSON, RPC, SDK) प्रदान करता है, और clawdbot में वास्तविक integration उदाहरण देखे जा सकते हैं
मॉडल और providers
- Anthropic, OpenAI, Google, Azure, Bedrock, Mistral, Groq, Cerebras, xAI, Hugging Face, Kimi, MiniMax, OpenRouter, Ollama सहित 15 से अधिक providers और सैकड़ों models का समर्थन
- API key या OAuth से authentication संभव है
/model कमांड या Ctrl+L से सेशन के दौरान मॉडल बदल सकते हैं, और Ctrl+P से पसंदीदा models के बीच घूम सकते हैं
- models.json या extensions के माध्यम से custom models जोड़े जा सकते हैं
सेशन प्रबंधन
- सेशन tree structure में सेव होते हैं, और
/tree कमांड से पुराने बिंदुओं पर जाया जा सकता है
- सभी branches एक ही फ़ाइल में सेव होती हैं, और message type filtering तथा bookmark labeling का समर्थन है
/export से HTML export, और /share से GitHub gist upload तथा share URL बनाया जा सकता है
context engineering
- न्यूनतम system prompt और extensibility के साथ context window को बारीकी से नियंत्रित किया जा सकता है
- AGENTS.md: प्रोजेक्ट निर्देश शुरुआत में अपने-आप लोड होते हैं
- SYSTEM.md: प्रोजेक्ट-विशिष्ट default system prompt को बदलना या जोड़ना
- Compaction: context सीमा पर पहुँचने पर पिछले messages का स्वतः सारांश; extensions के माध्यम से topic-based summary या code-aware summary लागू किए जा सकते हैं
- Skills: ज़रूरत पड़ने पर लोड होने वाले feature packages, जो prompt cache बनाए रखते हैं और क्रमिक रूप से कार्यक्षमता देते हैं
- Prompt templates:
/name कमांड से विस्तार योग्य reusable prompts
- Dynamic context: extensions के माध्यम से message insertion, history filtering, RAG implementation, और long-term memory बनाना संभव
message queuing
- एजेंट के काम कर रहे होने पर भी messages submit किए जा सकते हैं
Enter: वर्तमान tool execution के बाद भेजा जाने वाला steering message
Alt+Enter: कार्य पूरा होने के बाद भेजा जाने वाला follow-up message
extension संरचना
- Pi को features नहीं बल्कि primitives केंद्र में रखकर डिज़ाइन किया गया है, ताकि उपयोगकर्ता स्वयं फीचर्स लागू कर सकें
- extensions TypeScript modules के रूप में होते हैं, और tools, commands, shortcuts, events, पूरे TUI access तक पहुँच सकते हैं
- उदाहरण extensions: sub-agents, plan mode, permission gates, path protection, SSH execution, sandboxing, MCP integration, custom editor, overlays आदि
- “Yes, Doom runs.” जैसे उदाहरण की तरह game overlay extension भी मौजूद है
- यदि स्वयं लागू नहीं करना चाहते, तो pi package install करके फीचर्स जोड़े जा सकते हैं
- 50 से अधिक extension examples GitHub पर सार्वजनिक हैं
package प्रबंधन
- extensions, skills, prompts, themes को packages में bundle करके npm या git से install किया जा सकता है
- npm search term
pi-package या Discord channel में packages खोजे और साझा किए जा सकते हैं
integration modes
- Interactive: पूरा TUI वातावरण
- Print/JSON: scripts के लिए
pi -p "query", event stream के लिए --mode json
- RPC: stdin/stdout आधारित JSON protocol के साथ non-Node environments integration समर्थन
- SDK: application के भीतर embed किया जा सकता है; clawdbot में वास्तविक उपयोग उदाहरण उपलब्ध
design philosophy
- Pi को extensibility को अधिकतम करने के लिए डिज़ाइन किया गया है, जहाँ core न्यूनतम रखा गया है और उपयोगकर्ता स्वयं वर्कफ़्लो परिभाषित करते हैं
- MCP, sub-agents, permission popups, plan mode, built-in TODO, background bash जैसी सुविधाएँ शामिल नहीं हैं
- इसके बजाय extensions, skills, packages के माध्यम से वही कार्यक्षमता लागू की जा सकती है या external tools से जोड़ी जा सकती है
- tmux के माध्यम से parallel execution और observation का समर्थन
- यह दृष्टिकोण उपयोगकर्ता-नियंत्रित डेवलपमेंट वातावरण निर्माण को संभव बनाता है
- पूरी philosophy की अतिरिक्त व्याख्या संबंधित blog post में दी गई है
2 टिप्पणियां
मुझे pi बहुत पसंद आया
Hacker News की राय
मेरे लिए Pi और "claw" phenomenon इसलिए दिलचस्प हैं क्योंकि ये open source के भविष्य की झलक दिखाते हैं
अब feature request या PR भेजने के बजाय, coding agent को feature जोड़ने का तरीका बताने वाली skill files डाउनलोड करने का दौर आ गया है
software अब कोई स्थिर output नहीं रहा, बल्कि हर user के लिए अलग living tool बनता जा रहा है
इस नए collaboration paradigm में किस तरह की tooling उभरेगी, यह जानने की उत्सुकता है
आज का software users को अपने environment पर control नहीं करने देता, जिससे अलगाव का एहसास होता है
लेकिन personal, सस्ता और flexible software सचमुच का ownership का एहसास दे सकता है
पहले Linux desktop ऐसी आज़ादी देता था, अब लगता है कि यह फायदा सबको मिल सकेगा
मैं इस भविष्य को लेकर आशावादी हूँ
आगे चलकर बेहद personal software और बढ़ेगा — इतना कि उसे सिर्फ कोई एक व्यक्ति या छोटा समूह ही समझ पाए
मैंने भी हाल में Claude का इस्तेमाल करके ऐसे कई tools बनाए हैं जो सिर्फ मैं और कुछ लोग इस्तेमाल करते हैं
जैसे DnD scheduling app, spoiler-free Formula E news checker, climbing co-op voting site वगैरह
पहले ऐसी चीज़ें बनाने की कोई वजह नहीं थी, लेकिन अब यह संभव हो गया है
इस पर मैंने Releasing Software Now में लिखा है
बड़ी कंपनियाँ या सरकारें ऐसी inconsisent systems को कभी अनुमति नहीं देंगी
उल्टा मुझे लगता है कि इससे और खराब tools निकलेंगे
मैं OpenCode का आदी हूँ, इसलिए सोच रहा हूँ कि इसे personal AI workspace की तरह आज़माऊँ
Pi का ecosystem छोटा है, लेकिन इसमें flexibility और extensibility ज़्यादा दिखती है, और community का उत्साह भी महसूस होता है
सोच रहा हूँ कि OpenCode की जगह Pi इस्तेमाल करना बेहतर होगा या नहीं, और इसमें कौन-कौन से UI options हैं
मैंने OpenCode को .md file आधारित writing और organizing के लिए इस्तेमाल किया है, और वह काफी अच्छा लगा
अब मैं इस काम के लिए और उपयुक्त नई harness ढूँढ़ रहा हूँ
यह इन दिनों मेरी सबसे पसंदीदा harness है
इसे सीधे extend किया जा सकता है, इसलिए यह बहुत efficient है, और मैंने इसे vibes project में integrate भी किया है
यह ACP से कहीं तेज़ है
मैं किसी general-purpose agent interaction protocol की तलाश में था, और ACP उसका एक candidate लगा था
लेकिन OpenCode भी अगर UI में ACP का इस्तेमाल नहीं करता, तो शायद कुछ समस्या है
यह भी जानना चाहता हूँ कि इसका कोई बेहतर alternative है या नहीं
मैंने ऐसा कोई व्यक्ति नहीं देखा जिसने Pi को कुछ दिन इस्तेमाल किया हो और फिर उसे daily use के लिए छोड़ दिया हो
जब अपनी पसंद के मुताबिक tool setup करने की आज़ादी मिल जाती है, तो फिर वापस जाना मुश्किल होता है
ऊपर से इसके लिए शानदार extensions भी बनाए जा सकते हैं
Pi की extensibility दिलचस्प है, पर असली काम की quality कमज़ोर लगी
समझ नहीं आता कि coding के लिए खास तौर पर terminal app की ज़रूरत क्यों है
IDE extension के रूप में वही काम और बेहतर किया जा सकता है, और VSCode में window layout भी उसी तरह restore हो सकता है
यह लगभग text chat में किसी साथी developer को निर्देश देने जैसा लगता है
उदाहरण के लिए, मैं server maintenance program Claude को सौंप देता हूँ, फिर दूसरा काम करता रहता हूँ और बाद में सिर्फ result देखता हूँ
अगर tests pass हो जाएँ, तो code कैसा दिखता है यह मायने नहीं रखता
वास्तव में मैं सिर्फ लगभग 15 मिनट के active work से कई काम साथ-साथ चला पाया हूँ
मैं Emacs के लिए pi-coding-agent package के साथ Pi इस्तेमाल कर रहा हूँ
RPC mode में input/output के लिए Markdown buffer बनाकर, यह दूसरे TUI की तुलना में कहीं ज़्यादा आरामदायक लगता है
issue tracker integration भी आसानी से कर लिया, और
readवwritecommands को Emacs buffer आधारित रूप में redefine कियाeditcommand को भी Emacs की tree-sitter query का उपयोग करके बेहतर बनाना चाहता हूँसाथ ही
emacs_evalcommand के जरिए EWW से documents browse करना भी संभव बनाया हैreadऔरwriteको Emacs buffer से कैसे map कियावैसे Pi Emacs mode यहाँ install किया जा सकता है
read,write,editcall results से सीधे वही file खोलने वाला feature भी जोड़ा जा रहा हैजल्द ही Pi की session और tree browsing के साथ Magit integration भी support किया जाएगा
मैंने Pi से शुरुआत की थी और पिछले 2 हफ्तों से oh-my-pi इस्तेमाल कर रहा हूँ
oh-my-pi repository Pi का batteries-included version है
मैं भी शायद किसी मौजूदा project को fork करके दूसरे नाम से जारी करूँ
जैसे "Waterfox — minimal web consumer" जैसी कोई चीज़
Pre-configured Pi version: oh-my-pi
apps की तरह सुरक्षित install और test करने के लिए isolated environment की ज़रूरत है
codex/claude code → opencode → pi → oh-my-pi इसी क्रम में आया हूँ
कभी न कभी इसे खुद आज़माने का सोच रहा हूँ
Pi की असली ताकत हल्केपन और autonomy में है, जबकि oh-my-pi में features इतने ज़्यादा हैं कि वह उल्टा OpenCode जैसी भारीपन देने लगता है
Pi ने सच में बेहतरीन design choices किए हैं
Mario और Armin को बधाई — अच्छा taste आखिर दिख ही जाता है