इस प्रोजेक्ट के बारे में
## postbag क्या है
postbag एक छोटा ब्रिज है जो एक ही मशीन पर चलने वाले दो AI कोडिंग-एजेंट सत्रों को एक-दूसरे को पत्र लिखने की अनुमति देता है। ये सत्र एक ही वेंडर के हो सकते हैं या अलग-अलग — जैसे एक Claude Code सत्र और एक Codex सत्र, या दो Claude Code सत्र, या दो Codex सत्र। प्रत्येक पत्र प्राप्तकर्ता वेंडर के अपने वेक-अप मैकेनिज्म ("door") के माध्यम से वितरित किया जाता है, एक साझा लेजर में जोड़ा जाता है, और मानव द्वारा निर्धारित पत्र बजट के विरुद्ध गिना जाता है।
README द्वारा सुझाए गए विशिष्ट उपयोगों में शामिल हैं: एक एजेंट द्वारा दूसरे के diff की समीक्षा करना, दो एजेंटों के बीच कार्य को विभाजित करना और पत्र के माध्यम से इंटरफ़ेस पर सहमत होना, या मैन्युअल रूप से संदर्भ पेस्ट किए बिना दूसरी राय लेना। README श्रम विभाजन को इस तरह परिभाषित करता है: "टेक्स्ट postbag द्वारा यात्रा करता है, कोड git द्वारा यात्रा करता है।"
## यह कैसे काम करता है
- `join` लेजर में एक नाम के तहत सत्र के डोर (door) को पंजीकृत करता है। Claude Code के लिए यह उसका प्रति-सत्र मैसेजिंग सॉकेट और टोकन है; Codex के लिए यह थ्रेड आईडी है।
- `send` पंजीकृत डोर (सॉकेट, या `codex queue`) पर दस्तक देता है, फिर फ़ाइल लॉक के तहत पत्र जोड़ता है, ताकि एक साथ भेजे गए पत्रों को अलग-अलग नंबर मिलें और वे एक ही बजट साझा करें।
- `open` किसी भी सत्र के बाहर, एक सामान्य टर्मिनल से अगले आदान-प्रदान को शुरू करता है। एक एक्सचेंज के भीतर पत्रों को नंबर दिया जाता है, और बजट बैग में सभी के द्वारा साझा किया जाता है। `--limit` के बिना एक एक्सचेंज में 12 पत्र होते हैं।
- `read` वर्तमान में बैग में मौजूद नामों, खुले एक्सचेंज और रिकॉर्ड्स को प्रिंट करता है।
- `~/.postbag/ledger.jsonl` पर स्थित लेजर ही एकमात्र स्टेट है। इसमें कोई डेमन, पोलिंग, हुक, सर्वर या कॉन्फ़िगरेशन फ़ाइल नहीं है। दोनों सत्रों और टर्मिनल में एक ही `POSTBAG_LEDGER` सेट करने से एक अलग बैग मिलता है।
प्राप्तकर्ता को एक नंबर वाला पत्र, शेष गणना, मुख्य सामग्री और उसका उत्तर देने वाला एक कमांड (stdin पर उत्तर के साथ `send`) प्राप्त होता है। एक एक्सचेंज का अंतिम पत्र कहता है कि उत्तर न दें, और अगला send इसे अस्वीकार कर देता है और एजेंट को रुकने और मानव से पूछने के लिए कहता है।
## आवश्यकताएँ
Python 3.10 या उसके बाद का संस्करण, केवल स्टैंडर्ड लाइब्रेरी; `pipx install postbag` के माध्यम से इंस्टॉल किया जा सकता है। Claude Code सत्र को `CLAUDE_CODE_MESSAGING_SOCKET` और `CLAUDE_CODE_MESSAGING_TOKEN` के माध्यम से अपने प्रति-सत्र मैसेजिंग सॉकेट को एक्सपोर्ट करने की आवश्यकता होती है। Codex सत्र को Codex 0.149 में पेश किए गए `queue` कमांड, एक्सपोर्ट किए गए `CODEX_SESSION_ID` और एक कार्यशील `codex queue --help` की आवश्यकता होती है; `POSTBAG_CODEX` एक गैर-मानक बाइनरी की ओर इशारा कर सकता है। दो Claude सत्रों को किसी Codex बाइनरी की आवश्यकता नहीं होती, और दो Codex सत्रों को किसी Claude सॉकेट की आवश्यकता नहीं होती।
## सत्यापन और प्लेटफॉर्म समर्थन
README macOS पर लाइव सत्यापन की रिपोर्ट करता है: Claude Code 2.1.263 और ChatGPT डेस्कटॉप ऐप से Codex 0.153.4 के साथ संस्करण 1.0.2, और दो वास्तविक Claude Code 2.1.263 सत्रों के साथ संस्करण 1.1.0, जिसमें दो-तरफा आदान-प्रदान और खर्च किए गए बजट की अस्वीकृति शामिल है। Linux CI पास करता है लेकिन वहां लाइव डिलीवरी असत्यापित बताई गई है, और Windows समर्थित नहीं है।
## सीमाएं और सुरक्षा नोट्स
- लेजर में पत्रों के साथ-साथ प्रत्येक Claude सत्र टोकन भी होता है। राइट्स फ़ाइल को `0600` और नई स्टेट डायरेक्टरीज़ को `0700` रखते हैं; मौजूदा कस्टम डायरेक्टरी को वैसा ही छोड़ दिया जाता है। `read` डोर फ़ील्ड्स को छिपा देता है, `cat` नहीं, इसलिए रॉ फ़ाइल को git, लॉग और स्क्रीनशॉट से दूर रखा जाना चाहिए।
- एक पत्र प्राप्तकर्ता सत्र में एक यूजर टर्न बन जाता है, इसलिए दोनों सत्रों को कार्य के लिए विश्वसनीय होना चाहिए। postbag स्वयं मशीन से बाहर कुछ नहीं भेजता है, लेकिन वेंडर सत्र किसी भी प्रॉम्प्ट की तरह पत्र को अपनी मॉडल सेवाओं को फॉरवर्ड करते हैं।
- एक नाम एक पता है, प्रमाणीकरण नहीं। `open` सत्र के अंदर चलने से इनकार करता है। ये जाँच वेंडर्स के सत्र वेरिएबल्स को पढ़ती हैं — यह मिश्रित भूमिकाओं के खिलाफ एक गार्डरेल है, न कि उसी उपयोगकर्ता के रूप में चलने वाली किसी अन्य प्रक्रिया के खिलाफ सुरक्षा।
- परीक्षण किए गए संस्करणों पर बाईपास अनुमतियों के साथ Claude को बिना निगरानी के डिलीवरी देखी गई; अन्य मोड अनुमोदन के लिए पत्र को रोक सकते हैं। Codex को लेजर लिखने और Claude सॉकेट से जुड़ने की अनुमति की आवश्यकता होती है।
- "Delivered" का अर्थ डोर के माध्यम से सबमिट किया गया है, पढ़ा गया नहीं। सबमिशन और रिकॉर्डिंग के बीच टाइमआउट या क्रैश होने पर पत्र संदिग्ध रह जाता है, और कोई पावती (acknowledgements) या रिट्राइज़ नहीं होते हैं।
## दायरा और अनुकूलता
दो सत्र समर्थित कॉन्फ़िगरेशन हैं। तीन या अधिक को प्रयोगात्मक बताया गया है; `read` ऐसा कहता है और तब प्रत्येक पत्र पंजीकृत नामों को सूचीबद्ध करता है। 1.0 द्वारा लिखे गए लेजर बिना दोबारा लिखे पढ़े जा सकते हैं, जिसमें लीगेसी वेंडर पीयर्स को `@claude` और `@codex` के रूप में पढ़ा जाता है। 1.0 सत्र को 1.1 सत्र के साथ मिलाना समर्थित नहीं है, क्योंकि 1.0 `send` केवल नंगे `claude` या `codex` को स्वीकार करता है और इसलिए 1.1 पत्र में ले जाए गए रिप्लाई कमांड को नहीं चला सकता; दोनों सत्रों को अपग्रेड किया जाना चाहिए और फिर से `join` करने के लिए कहा जाना चाहिए। रीस्टार्ट के बाद, एक सत्र को उस नाम के तहत फिर से `join` करना होगा जो उसके पास था, और एक रिप्लाई कमांड उस व्यक्ति तक पहुँचता है जिसके पास वह नाम चलाने के समय होता है।
रिपॉजिटरी MIT लाइसेंस प्राप्त है और इसमें `CONCEPT.md` के रूप में एक कॉन्सेप्ट दस्तावेज़, एक चेंजलॉग, योगदान मार्गदर्शन और इस क्षेत्र के अन्य उपकरणों को सूचीबद्ध करने वाला एक शोध दस्तावेज़ शामिल है।
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.