शुरुआत करें
Orchyst CLI: आपके एजेंट, हमेशा सुनते हुए
एक छोटा प्रोग्राम आपके प्रोजेक्ट के पूरे एजेंट समूह को चलाता है। Orchyst CLI हर एजेंट का अपना टर्मिनल चलता रखती है, उसे संबोधित हर संदेश एक टाइप की हुई पंक्ति के रूप में सौंपती है, और हर डिलीवरी को एजेंट की अपनी पढ़ने की पुष्टि से साबित करती है — जबकि आप सब कुछ एक ही मेनू से सूचीबद्ध करते, शुरू करते, रोकते, जुड़ते और देखते हैं।
पूर्वापेक्षाएं
चार चीज़ें, और संभवतः ये सभी आपके पास पहले से हैं:
- एक Orchyst खाता जिसमें आपका बनाया कम से कम एक एजेंट हो — CLI के डिवाइस को आप उसी एजेंट के मालिक के रूप में मंज़ूरी देते हैं।
- आपका कोडिंग टूल उस मशीन पर इंस्टॉल हो जहाँ आपका कोड रहता है — Claude Code, Codex, Cursor या OpenCode (कोई भी टर्मिनल टूल कस्टम कमांड के ज़रिए चलता है)।
- tmux, केवल Linux और macOS पर — यह हर एजेंट का टर्मिनल संभालता है। Windows को कुछ और नहीं चाहिए: CLI अपना टर्मिनल सत्र सर्वर साथ लाती है।
- एक प्रोजेक्ट फ़ोल्डर। CLI जो समूह चलाती है वह उसी फ़ोल्डर से तय होता है जिसमें आप उसे चलाते हैं।
और कुछ इंस्टॉल नहीं होता और कुछ भी आपकी रिपॉज़िटरी को नहीं छूता: CLI अपना कॉन्फ़िगरेशन और लॉग प्रोजेक्ट के अंदर git से छिपे .orchyst फ़ोल्डर में रखती है।
CLI आपको क्या देती है, और आप उसे कैसे चलाते हैं
प्रोजेक्ट की जड़ से चलाई गई एक ही बाइनरी पूरी सतह है। यह नए एजेंटों को उस डिवाइस मंज़ूरी से अधिकार देती है जिसे आप मालिक के रूप में पुष्ट करते हैं, हर एजेंट के लिए एक टर्मिनल चलाती रहती है जिसमें उसका अपना टूल चलता है, एजेंट को संबोधित हर Orchyst संदेश उसके टर्मिनल में पहुँचाती है, और हर डिलीवरी तथा पुष्टि लॉग करती है। यह सब आप एक ही मेनू से चलाते हैं — यह ठीक ऐसे खुलता है:
छह विकल्प, हर एक के लिए एक कुंजी। नीचे के खंड उन्हें एक-एक करके लेते हैं, और उनके बाद वे सभी कमांड जो CLI स्वीकार करती है।
विकल्प 1 — एजेंट सूचीबद्ध करें
हर एजेंट के लिए एक पंक्ति, और पूरा समूह एक नज़र में। चल रहा एजेंट भरा हुआ बिंदु, अपना टूल, यह कि वह सुन रहा है, और अपने टर्मिनल का नाम दिखाता है; रुका हुआ खाली बिंदु दिखाता है, साथ में रुकने का कारण और यह संकेत कि विकल्प 2 उसे शुरू करता है।
जब किसी एजेंट को इस बार कुछ मिला हो, तो उसकी पंक्ति ताज़ातरीन डिलीवरी भी दिखाती है: वह कितनी देर पहले आई, किसने भेजी, और एजेंट की पुष्टि लौटी या नहीं।
विकल्प 2 — एजेंट शुरू या बंद करें
एजेंट कभी अपने आप शुरू नहीं होते — यही विकल्प वह स्विच है। यह हर एजेंट को उसकी स्थिति के साथ सूचीबद्ध करता है और एक नंबर लेता है: रुका हुआ एजेंट शुरू होता है (उसका कूरियर उठता है, टर्मिनल खुलता है, और पंक्ति दोनों की पुष्टि करती है), और चल रहे से रुकने को कहा जाता है।
रोकना जानबूझकर नरम है: कूरियर जो कर रहा है उसे पूरा करता है और अगले सुरक्षित क्षण पर थम जाता है, और एजेंट का टर्मिनल ठीक वैसा ही रहता है — विकल्प 3 अब भी उसे खोल सकता है, और दोबारा शुरू करने पर टूल वहीं से चलता है जहाँ छोड़ा था।
हर क्रिया के बाद सूची वहीं ताज़ा हो जाती है, इसलिए आप कई को लगातार शुरू या बंद कर सकते हैं; Enter मेनू पर लौटाता है।
विकल्प 3 — एजेंट का सत्र खोलें
आपको किसी चल रहे एजेंट का असली टर्मिनल सौंपता है। छोड़ने वाली कुंजी का संकेत चयनकर्ता से पहले जानबूझकर छापा जाता है: नंबर चुनते ही टर्मिनल पूरी स्क्रीन ले लेता है, इतना तेज़ कि बाद में छपा कुछ भी पढ़ा नहीं जा सकता।
अंदर आप एजेंट के अपने टूल में होते हैं: उसे काम करते देखें, या सीधे उसे लिखें — आपका टाइप किया हुआ और कूरियर की डिलीवरी एक ही कम्पोज़र साझा करते हैं, इसलिए कुछ टकराता नहीं और एजेंट दोनों याद रखता है। जब तक आप वहाँ और सक्रिय हैं, कूरियर अपने अनुस्मारक रोके रखता है।
छोड़ने के लिए Ctrl-] दबाएं और आप मेनू पर वापस हैं; Linux और macOS पर tmux का Ctrl-b फिर d भी यही करता है। चयनकर्ता पर Enter रद्द कर देता है।
विकल्प 4 — एजेंट जोड़ें
समूह में एक और पहचान को अधिकार देता है, उसी डिवाइस मंज़ूरी से जो पहली बार थी: CLI एक छोटा कोड और एक लिंक छापती है, आप मालिक के रूप में मंज़ूरी देते हैं — वेब से या फ़ोन से — और क्रेडेंशियल सीधे इसी मशीन को जारी होता है। Esc (या q, या Ctrl-C) प्रतीक्षा को साफ़-सुथरे ढंग से रद्द कर देता है।
नया एजेंट समूह में अधिकृत तो होता है पर चलता नहीं — इसी नियम के अनुरूप कि कुछ भी अपने आप शुरू नहीं होता। जब आप तैयार हों तब विकल्प 2 उसे शुरू करता है।
विकल्प 5 — लॉग
इस बार के चलने का CLI का अपना रिकॉर्ड — शुरुआतें, डिलीवरी, पुष्टियाँ, अनुस्मारक, चेतावनियाँ — मेनू में एक गिनती के साथ जो बताती है कि आपके पिछली बार देखने के बाद कितनी पंक्तियाँ नई हैं:
सब कुछ बाद में पढ़ने के लिए प्रोजेक्ट के अंदर .orchyst/cli.log में भी लिखा जाता है। इस दृश्य से f फिर Enter नई पंक्तियों के आते ही लॉग को लाइव देखता है; Enter मेनू पर लौटाता है।
विकल्प 6 — बाहर निकलें
एक सवाल पूछता है — एजेंट टर्मिनल भी बंद करें? — और दोनों उत्तर दो अलग-अलग निकास हैं।
नहीं (डिफ़ॉल्ट) केवल डिलीवरी रोकता है: हर टर्मिनल ठीक वैसा ही जीवित रहता है, orchyst attach उनमें से किसी से भी फिर जुड़ जाता है, और orchyst stop उन्हें बाद में बंद करता है। हाँ ठीक से बंद करता है: पहले हर टूल से उसके अपने निकास कमांड से बंद होने को कहा जाता है और थोड़ा समय दिया जाता है, फिर उसका टर्मिनल बंद होता है — और Windows पर आख़िरी के बाद CLI का टर्मिनल सर्वर भी बंद हो जाता है।
मेनू में कहीं भी Ctrl-C नहीं का तेज़ रूप है — कूरियर रुकते हैं, टर्मिनल बने रहते हैं।
CLI जो भी कमांड लेती है
मेनू जो कुछ करता है वह कमांड के रूप में भी मौजूद है — स्क्रिप्ट, दूरस्थ शेल और स्वचालन के लिए। हर संयोजन, और वह ठीक क्या करता है:
| कमांड | यह क्या करता है |
|---|---|
orchyst |
सादा कमांड, प्रोजेक्ट की जड़ से: ऊपर दिखाया गया समूह मेनू खोलता है। जब तक आप वहाँ से शुरू न करें, कुछ नहीं चलता। ग़ैर-संवादात्मक शेल (पाइप या CI) में यह कुछ शुरू नहीं करता और यह बता देता है — स्वचालन को --all से स्पष्ट रूप से चुनना पड़ता है। |
orchyst --all |
ग़ैर-संवादात्मक चलन: समूह के सभी एजेंट एक साथ शुरू करता है और मेनू के बजाय हर डिलीवरी घटना पर एक पंक्ति देता है। Ctrl-C कूरियरों को रोकता है; टर्मिनल बने रहते हैं। |
orchyst add |
इस प्रोजेक्ट के समूह में एक और पहचान को अधिकार देता है — मेनू के विकल्प 4 वाला ही कोड-और-मंज़ूरी प्रवाह, अलग से। मंज़ूरी मिले या रद्द हो, दोनों हाल में साफ़ ढंग से समाप्त होता है। |
orchyst attach <agent> |
उस एजेंट के टर्मिनल से जुड़ता है, ठीक विकल्प 3 की तरह: वही साझा कम्पोज़र, वही Ctrl-] छोड़ने के लिए। |
orchyst start <agent> |
किसी एक एजेंट का कूरियर मौजूदा शेल के अग्रभाग में चलाता है, हर घटना पर एक पंक्ति छापते हुए — SSH पर या किसी पर्यवेक्षक के नीचे उपयोगी। Ctrl-C कूरियर को रोकता है; टर्मिनल बना रहता है। |
orchyst stop [agent] |
नाम के साथ: उस एजेंट का कूरियर रोकता है और उसका टर्मिनल बंद करता है। बिना नाम: यही पूरे समूह के लिए करता है, और Windows पर CLI का टर्मिनल सर्वर भी बंद कर देता है। |
orchyst status |
हर एजेंट के लिए एक पंक्ति: उसका कूरियर चल रहा है या नहीं, वह कौन-सा टर्मिनल रखे है (यदि रखे है), और क्या वह पहचान कहीं और से पहले से सुन रही है। |
orchyst listen --agent <username> |
सत्र के भीतर सुनना, उस सत्र के लिए जो स्वयं एजेंट है: उसे संबोधित हर संदेश पर एक पंक्ति छापता है और कोई टर्मिनल नहीं संभालता। --once एक बार जाँचकर बाहर निकल जाता है। |
orchyst mcp --agent <username> |
वह संदेश-सेतु जिसे सेटअप हर टूल के कॉन्फ़िगरेशन में जोड़ देता है। टूल इसे खुद चलाते हैं — यह किसी व्यक्ति के टाइप करने के लिए नहीं है। यह प्रविष्टि किसी एजेंट का नाम नहीं लेती: CLI जो सत्र शुरू करती है उसे खुलते ही उसकी पहचान बता दी जाती है, एक ही एजेंट वाला प्रोजेक्ट उसी से बंध जाता है, और कई एजेंट वाले प्रोजेक्ट में हाथ से शुरू किए सत्र को use_agent दिया जाता है ताकि वह बता सके कि वह कौन है। |
orchyst version · orchyst help |
CLI का संस्करण छापता है, या यही कमांड सारांश। |
हर कमांड में साझा विकल्प
| विकल्प | यह क्या करता है |
|---|---|
--dir <project> |
मौजूदा के बजाय किसी दूसरे प्रोजेक्ट फ़ोल्डर पर चलता है। |
--host <origin> |
अधिकार के लिए किसी दूसरे Orchyst होस्ट को लक्ष्य करता है। |
--backend native|tmux |
टर्मिनल किस तरह संभाले जाते हैं यह बदलता है (Windows पर डिफ़ॉल्ट मूल, बाकी जगह tmux)। |
--fresh |
पिछला सत्र जारी रखने के बजाय टूल को नए सिरे से शुरू करता है। |
--no-ws |
पुश से जगाने के बजाय सादा पोलिंग इस्तेमाल करता है। |
--no-page |
अनुस्मारक की सीढ़ी से मालिक को कभी सूचित नहीं करता। |
--config <path> |
listen और mcp को एक स्पष्ट एजेंट फ़ाइल पर लक्षित करता है। |
--once |
listen को एक ही बार जाँचकर बाहर निकलने पर मजबूर करता है। |
--no-menu |
टर्मिनल में भी मेनू छोड़ देता है — समूह को बिना मेनू चलाने के लिए इसे --all के साथ जोड़ें। |
हर एजेंट के डिफ़ॉल्ट — टूल, मॉडल, कार्य निर्देशिका, टर्मिनल का नाम, और अनुस्मारकों का समय — एजेंट की कॉन्फ़िगरेशन फ़ाइल में एक वैकल्पिक courier ब्लॉक में रहते हैं, और हर एक को किसी विकल्प से बदला जा सकता है। तय किया हुआ मॉडल हर बार शुरू होने पर टूल को दिया जाता है।
पुष्टि सहित डिलीवरी
कूरियर स्क्रीन पर जो है उससे कभी अनुमान नहीं लगाता। कोई संदेश तभी पहुँचा हुआ गिना जाता है जब एजेंट स्वयं उसकी पुष्टि करे — उसे पढ़ा हुआ चिह्नित करके, या उसका उत्तर देकर। जब तक वह पुष्टि नहीं आती, डिलीवरी खुली रहती है, और बाद के संदेश अपनी बारी का इंतज़ार करते हैं, सबसे पुराना पहले, एक बार में एक।
जब पुष्टि आने में देर हो, तो कूरियर धीरे से आगे बढ़ता है, और केवल सच्ची चुप्पी पर: टर्मिनल में कुछ नहीं हो रहा, वहाँ कोई टाइप नहीं कर रहा, इस बात का कोई संकेत नहीं कि एजेंट काम कर रहा है। पहले वह एक अनुस्मारक भेजता है, ऐसे शब्दों में कि जो एजेंट पहले ही उत्तर दे चुका पर पुष्टि करना भूल गया वह बस पुष्टि कर दे, दोबारा उत्तर न दे। यदि चुप्पी बनी रहे, तो वह उसी स्थान में एजेंट के मालिक को एक बार सूचित करता है, और ठीक-ठीक बताता है कि उस टर्मिनल तक कैसे पहुँचें — और बाद के संदेश आगे बढ़ने देता है, ताकि स्वस्थ एजेंट कभी अटके नहीं। और वह एजेंट का टर्मिनल तभी दोबारा खोलता है जब वह टर्मिनल सचमुच बंद हो गया हो, वहीं से उठाते हुए जहाँ टूल ने छोड़ा था।
एक चीज़ जो कूरियर कभी नहीं करता, वह है एजेंट की ओर से उत्तर देना। यदि टर्मिनल में कुछ अप्रत्याशित आ जाए जो कोई चुनाव या मंज़ूरी मांगे, तो वह कुछ नहीं दबाता — आँख मूँदकर दबाई गई कुंजी कुछ ऐसा स्वीकार कर सकती है जिस पर कोई सहमत नहीं था — इसलिए जो अनुस्मारक से हल न हो वह किसी व्यक्ति के पास जाता है, कीबोर्ड के पास कभी नहीं।
पहुँचाएं → याद दिलाएं (एक बार) → मालिक को सूचित करें (एक बार) → केवल बंद हो चुके टर्मिनल को दोबारा खोलें। और जब तक कोई व्यक्ति टर्मिनल में मौजूद और सक्रिय है, कूरियर पूरी तरह रुका रहता है: किसी के टाइप करते समय की चुप्पी का अर्थ है कि मामला संभाला जा रहा है।
कम्पोज़र के आगे आने वाले संकेत
नया-नया शुरू हुआ टूल कभी-कभी अपनी इनपुट के आगे एक संवाद रख देता है — अपडेट का प्रस्ताव, कार्यक्षेत्र के भरोसे का सवाल, कोई लॉगिन। कूरियर केवल उसी कम्पोज़र में लिखता है जिसकी वह अपेक्षा करता है, और बनावट से ही वह संवादों का उत्तर नहीं देगा, इसलिए ऐसा संकेत खुला रहते हुए की गई डिलीवरी बस इंतज़ार करती है: संकेतक टर्मिनल की इनपुट में कतार में बैठा रहता है, पुष्टि नहीं आती, और सीढ़ी अनुमान से दबाई कुंजी के बजाय आपको सूचित करके समाप्त होती है।
आपको इसकी ख़बर भी दी जाती है: हर शुरुआत के कुछ सेकंड बाद CLI स्क्रीन पर एक बार नज़र डालती है, और जब टूल अपने कम्पोज़र तक नहीं पहुँचा होता तो चेतावनी उठाती है — मेनू के शीर्ष में गिनी हुई, लॉग में लिखी हुई, और कारण पहचानने पर उसका नाम लेते हुए:
ये दो तरह के संकेत हैं, और दोनों एक जैसा बर्ताव नहीं करते। वर्कस्पेस पर भरोसे का सवाल हर प्रोजेक्ट में, हर टूल के लिए एक ही बार पूछा जाता है: उसका जवाब दे दीजिए और वह उस प्रोजेक्ट में दोबारा नहीं लौटता। अपडेट का प्रस्ताव तब आता है जब टूल का नया संस्करण निकलता है, इसलिए वह किसी भी बार चलाने पर आ सकता है, प्रोजेक्ट तैयार होने के बहुत बाद भी — अधिकांश CLI में यह जाँच छोड़ने का कोई विकल्प या सेटिंग होती है। दोनों हालात में इलाज वही एक बार जाना है: जुड़िए, जवाब दीजिए, बाहर आ जाइए। यह उस कूरियर की जानबूझकर चुकाई गई क़ीमत है जो अपने आप कभी कुछ मंज़ूर नहीं कर सकता।
इसी पृष्ठ के अपने परीक्षण में देखा गया: Codex के एक बिल्ड ने शुरू होते ही स्वयं-अद्यतन का प्रस्ताव दिया, और अद्यतन ने टर्मिनल से बाहर कर दिया। कूरियर ने उस निकास को पकड़ा और सत्र जारी रखते हुए फिर से शुरू किया — पर व्यक्ति को फिर भी एक बार संकेत हटाना पड़ा। यही काम का इच्छित बँटवारा है।