इस प्रोजेक्ट के बारे में

Gateship कोडिंग एजेंटों के लिए एक लोकल सॉफ्टवेयर-डिलीवरी रनटाइम है। एक ऑपरेटर कार्य (task) को परिभाषित करता है, और Gateship उसे एक आइसोलेटेड Git वर्कट्री देता है, चयनित लोकल Claude Code या Codex क्लाइंट को चलाता है, कार्य में लिखे गए एक्सेप्टेंस कमांड्स को सत्यापित करता है, एक स्वतंत्र रीड-ओनली रिव्यूअर से बदलावों की जांच करवाता है, और परिणाम को स्क्वैश-मर्ज्ड पुल रिक्वेस्ट (pull request) के माध्यम से शिप करता है। यह उत्पाद वेब-फर्स्ट और लोकल-फर्स्ट है: Bun 127.0.0.1 पर इंटरफेस सर्व करता है, SQLite रन स्टेट और एक्टिविटी को स्टोर करता है, और निष्पादन पथ (execution path) पर कोई टर्मिनल कीस्ट्रोक्स या tmux सत्र नहीं होता है। आवश्यकताएं और क्रेडेंशियल हैंडलिंग। जब होस्ट पोर्टेबिलिटी की आवश्यकता हो, तो विंडोज और macOS पर Docker Desktop, या लिनक्स पर Compose प्लगइन के साथ Docker Engine की सिफारिश की जाती है, और इमेज में प्रोवाइडर और GitHub CLI शामिल होते हैं। नेटिव macOS और Linux इंस्टॉलेशन के लिए सब्सक्रिप्शन लॉगिन के साथ Claude Code और/या Codex CLI, साथ ही gh auth login --web और gh auth setup-git के माध्यम से प्रमाणित GitHub CLI की आवश्यकता होती है। सोर्स से चलाने पर Bun 1.2.3 या नया संस्करण आवश्यक है, और Git को टारगेट रिपॉजिटरी में ब्रांच और वर्कट्री बनाने में सक्षम होना चाहिए। Gateship ऑपरेटर के साइन-इन claude या codex बाइनरी को निष्पादित करता है, एजेंट चिल्ड्रन को एक अलाउलिस्टेड एनवायरनमेंट पास करता है, प्रोवाइडर क्रेडेंशियल फाइलों को कभी नहीं पढ़ता और Agent SDK का उपयोग नहीं करता है; GitHub शिपिंग एम्बिएंट पर्सनल एक्सेस टोकन के बजाय gh के स्वामित्व वाले क्रेडेंशियल स्टोर का उपयोग करती है। इंस्टॉल और अपडेट। इंस्टॉलर स्क्रिप्ट डिफ़ॉल्ट रूप से ~/.local/bin में gateship और छोटे gship एलियास को रखती है, जिसमें डेस्टिनेशन को ओवरराइड करने के लिए GATESHIP_INSTALL_DIR होता है; इसे दोबारा चलाने से मौजूदा इंस्टॉलेशन रिप्लेस हो जाता है, और GATESHIP_VERSION एक विशिष्ट रिलीज़ को पिन कर सकता है। सोर्स बिल्ड्स bun install --frozen-lockfile के बाद bun run build:release का उपयोग करते हैं, और Bun डेवलपमेंट के लिए सीधे एंट्री पॉइंट चला सकता है। नेटिव इंस्टॉलेशन सेटिंग्स के तहत अपडेट चेक का विकल्प चुन सकते हैं; रनिंग प्रोसेस दिन में अधिकतम एक बार आधिकारिक रिलीज़ की जांच करता है, रिलीज़ टैग कमिट, प्लेटफॉर्म एसेट, SHA256SUMS.txt और कैंडिडेट के अपने वर्जन आउटपुट को सत्यापित करता है, और केवल तब हैंड-ऑफ करता है जब कोई नॉन-टर्मिनल रन या एक्टिव डायग्नोस्टिक मौजूद न हो। वह कैंडिडेट जो सटीक रिलीज़ वर्जन और कमिट रिटर्न नहीं करता उसे रोक दिया जाता है, और पिछला बाइनरी रिस्टोर, रीस्टार्ट और वेरिफाई किया जाता है। कंटेनर्स और सोर्स चेकआउट्स में ऑटोमैटिक अप्लाई उपलब्ध नहीं है। क्विक स्टार्ट। GitHub क्लोन से gship चलाने पर लोकल कंट्रोल सरफेस शुरू हो जाता है और http://127.0.0.1:7777 प्रिंट होता है, और gship --port 8080 दूसरा पोर्ट चुनता है। पहली बार लोड होने पर वेब इंटरफेस केवल लोकल Git मेटाडेटा, ओरिजिन URL और लोकल origin/main रिफ की जांच करता है, और कभी भी इम्प्लिसिटली रिपॉजिटरी फेच या क्रिएट नहीं करता है। यदि डायरेक्टरी खाली या अधूरी है, तो ऑपरेशनल सरफेस सटीक रिकवरी कमांड दिखाते हैं जबकि एजेंट सब्सक्रिप्शन सेटअप के लिए सेटिंग्स उपलब्ध रहती हैं। ऑपरेटर का नाम और IANA टाइमज़ोन वैकल्पिक हैं और केवल स्पष्ट सेव के बाद स्टोर किए जाते हैं। एक रनिंग प्रोसेस अपनी वर्किंग डायरेक्टरी नहीं बदल सकता, इसलिए प्रोजेक्ट पाथ बदलने के लिए इच्छित क्लोन से Gateship को रीस्टार्ट करना आवश्यक है। एजेंट CLI। शेल-सक्षम एजेंट किसी अन्य रनटाइम को शुरू करने या .gship डायरेक्टरी को सीधे एडिट करने के बजाय वर्जनयुक्त, मशीन-रीडेबल इंटरफेस के माध्यम से रनिंग सर्विस का उपयोग कर सकते हैं: gship agent guide, gship agent operations, gship agent call status.get, और JSON इनपुट के साथ issues.get जैसे कॉल। प्रत्येक एजेंट कमांड बिना ANSI या प्रोग्रेस आउटपुट के एक JSON ऑब्जेक्ट उत्सर्जित करता है, और एक URL फ्लैग अलग पोर्ट पर चल रही सर्विस की ओर इशारा करता है। ब्राउज़र वर्कफ़्लो ऑपरेटर को एक बाहरी एजेंट के साथ काम का वर्णन और रिफाइन करने की अनुमति देता है जो टाइप्ड Gateship कमांड्स को इनवोक करता है, सत्रों के बीच हैंडऑफ के रूप में एक टिकाऊ प्रोजेक्ट ब्रीफ बनाए रखता है, और फिर कार्य को स्पष्ट रूप से अधिकृत करता है। निर्णय काम को बीच में रोक देते हैं और ध्यान की प्रतीक्षा करते हैं, जबकि प्रोग्रेस, पब्लिक एजेंट टेक्स्ट, टूल नाम, वेरिफिकेशन और रिव्यू को SSE के माध्यम से फॉलो किया जाता है; लोकल ब्राउज़र नोटिफिकेशन ऑपरेटर तक टैब के बाहर भी पहुँच सकते हैं। टिकाऊ रन स्टेट खोए बिना Claude और Codex को स्विच किया जा सकता है, और स्पष्ट नियंत्रण एक डिटरमिनिस्टिक फॉलबैक के रूप में कार्य करते हैं। एक वैकल्पिक एडवाइजरी React डायग्नोस्टिक आइसोलेटेड exact-SHA चेकआउट के विरुद्ध चलता है; किसी खोज (finding) को खारिज किया जा सकता है या एक अन-अप्रूव्ड टास्क में प्रमोट किया जा सकता है। डायग्नोस्टिक्स डिलीवरी गेट के बाहर रहते हैं, काम को ऑटो-फिक्स या अप्रूव नहीं करते, और कोई डायग्नोस्टिक स्कोर शिपिंग को ब्लॉक नहीं कर सकता। एक बेंचमार्क पैनल परिणामों, मानवीय ध्यान, सुधार राउंड, प्रोवाइडर होल्ड्स, वॉल टाइम, लागत और प्रोवाइडर या मॉडल तथ्यों को अलग-अलग आइटम के रूप में दृश्यमान रखता है। रनटाइम फ्लो। एक ऑपरेटर टास्क बाहरी कन्वर्सेशनल एजेंट के पास जाता है, फिर एक टाइप्ड Gateship कमांड, फिर रिमोट main पर एक बैकलॉग रिकॉर्ड। Gateship एक आइसोलेटेड वर्कट्री बनाता है, चयनित इम्प्लीमेंटेशन सत्र चलाता है, एक्सेप्टेंस कमांड्स को सत्यापित करता है, उसी प्रोवाइडर के माध्यम से एक स्वतंत्र रीड-ओनली रिव्यू करता है (खामियां होने पर एक ऑटोमैटिक फिक्स का प्रयास करता है), कमिट और पुश करता है, एक पुल रिक्वेस्ट खोलता है, CI के बाद स्क्वैश ऑटो-मर्ज करता है, origin/main को रिफ्रेश करता है, और क्लीन मैनेज्ड वर्कट्री और लोकल ब्रांच को रिलीज़ करता है। बिना वेरिफाई कमांड वाला इश्यू प्रीफ्लाइट में फेल हो जाता है, और रिव्यू मैकेनिकल रीड-ओनली क्षमताओं के साथ एक फ्रेश सत्र के रूप में चलता है। कंटेनर डिस्ट्रीब्यूशन। मल्टी-आर्किटेक्चर इमेज विंडोज और macOS पर Docker Desktop और लिनक्स पर Docker Engine के माध्यम से चलती है, जिसमें एक ही रिलीज़ टैग के तहत linux/amd64 और linux/arm64 वेरिएंट होते हैं, और इसमें कंपाइल्ड बाइनरी, git, GitHub CLI, Claude Code CLI और Codex CLI शामिल होते हैं। दोनों प्रोवाइडर CLI रिलीज़ पिन किए गए हैं, और चाइल्ड सत्रों में Claude Code सेल्फ-अपडेट्स डिसेबल हैं ताकि एक रन चुपचाप एक्जीक्यूटेबल को रिप्लेस न कर सके। Compose पोर्ट को केवल लूपबैक पर पब्लिश करता है, इमेज फाइलसिस्टम को रीड-ओनली रखता है, एक एफिमेरल /tmp प्रदान करता है, प्रिविलेज एस्केलेशन को रोकता है और लिनक्स क्षमताओं को ड्रॉप करता है। प्रोवाइडर और GitHub ऑथेंटिकेशन पहले बूट पर कंटेनर के अंदर होता है और एक नामी स्टेट वॉल्यूम में पर्सिस्ट होता है; चयनित रिपॉजिटरी का रनटाइम डेटाबेस और वर्कट्री प्रोजेक्ट के .gship डायरेक्टरी में रहते हैं। उसी इमेज और वॉल्यूम से कंटेनर को फिर से बनाने पर वही SQLite स्टेट, वर्कट्री और लॉगिन वापस मिल जाते हैं। gship doctor --json आर्किटेक्चर, इमेज, वॉल्यूम परमिशन, Git, gh, Claude, Codex, लॉगिन और लोकल कनेक्टिविटी की रिपोर्ट करता है। सुरक्षा। HTTP सर्वर डिफ़ॉल्ट रूप से केवल 127.0.0.1 पर बाइंड होता है और ब्राउज़र म्यूटेशन के लिए अतिरिक्त रूप से सेम-ओरिजिन लोकलहोस्ट रिक्वेस्ट की आवश्यकता होती है; रीड रूट्स का अपना कोई ऑथेंटिकेशन नहीं होता, इसलिए लूपबैक बाइंड ही उनकी एकमात्र सीमा है। कंटेनर इमेज को Docker के पब्लिश्ड-पोर्ट प्रॉक्सी के लिए bind-host वेरिएबल को 0.0.0.0 पर सेट करने की आवश्यकता होती है। इम्प्लीमेंटर जानबूझकर आइसोलेटेड वर्कट्री के अंदर राइट-केपेबल होता है और नेटिव मोड में, Gateship चलाने वाले उपयोगकर्ता के फाइलसिस्टम अथॉरिटी को रखता है; कंटेनर मोड इसे कंटेनर और उसके स्पष्ट माउंट्स तक सीमित करता है। रीड-ओनली रिज़ॉल्वर और रिव्यूअर Claude को MCP और स्लैश कमांड्स के बिना केवल Read, Grep और Glob तक सीमित करते हैं, और Codex को उसके रीड-ओनली सैंडबॉक्स में चलाते हैं। एजेंट और GitHub CLI चिल्ड्रन एक एनवायरनमेंट अलाउलिस्ट प्राप्त करते हैं, जबकि वेरिफिकेशन कमांड्स ट्रस्टेड प्रोजेक्ट कमांड्स होते हैं। Gateship में प्रोवाइडर या GitHub क्रेडेंशियल्स के लिए कोई वेब या SQLite फील्ड नहीं है; यह एक ट्रस्टेड सिंगल ऑपरेटर के लिए प्रोसेस कंटेनमेंट है, न कि मल्टी-टेनेंट सीक्रेट सैंडबॉक्स। टिकाऊ स्टेट और रिकवरी। रन मेटाडेटा, प्रोवाइडर चयन, इवेंट्स, ऑपरेटर-मेंटेंड प्रोजेक्ट ब्रीफ और प्रति प्रोवाइडर एक साइकिल-रिज़ॉल्वर सेशन आईडी .gship के तहत एक SQLite फाइल में रहते हैं; प्रत्येक रन अपना प्रोवाइडर, नेटिव सेशन आईडी और वर्कट्री पाथ स्टोर करता है। जब सर्विस रीस्टार्ट होती है, तो एक अन-ओन्ड इन-फ्लाइट रन इंटरप्टेड हो जाता है और उसे वर्कस्पेस खोए बिना या डुप्लीकेट शुरू किए बिना रिज्यूम किया जा सकता है। कन्फर्म मर्ज के बाद, Gateship क्लीन मैनेज्ड वर्कट्री, उसकी लोकल ब्रांच और उसके पुराने रिमोट-ट्रैकिंग रिफ को हटा देता है; एक फेल रन भी इसी तरह रिलीज़ होता है, सिवाय इसके कि origin/main से गायब कमिट वाली ब्रांच, डर्टी वर्कट्री और अन-ओन्ड लेफ़्टओवर्स को सुरक्षित रखा जाता है। स्टार्टअप पर क्लीनअप को दोबारा प्रयास किया जाता है। रनटाइम सोर्स रिमोट origin/main रिफ है, जिसे रन स्वीकार करने से पहले और मर्ज के बाद फेच किया जाता है, और उपयोगकर्ता की लोकल main ब्रांच को जानबूझकर अछूता छोड़ दिया जाता है। डेवलपमेंट, कम्युनिटी और लाइसेंस। प्रोजेक्ट Bun के साथ बिल्ड होता है और टाइप चेकिंग, टेस्ट, लिंटिंग और डेड-कोड एनालिसिस के लिए कमांड प्रदान करता है। योगदान कंट्रीब्यूटिंग गाइड, कोड ऑफ कंडक्ट और सिक्योरिटी पॉलिसी का पालन करते हैं, और बाहरी बीटा उपयोगकर्ता फीडबैक पाथ के माध्यम से ऑब्जर्वेशन सबमिट कर सकते हैं। Gateship MIT लाइसेंस के तहत रिलीज़ किया गया है।