Web interfaces

नियंत्रण UI

Control UI, Gateway द्वारा प्रस्तुत किया जाने वाला एक छोटा Vite + Lit सिंगल-पेज ऐप है:

  • डिफ़ॉल्ट: http://<host>:18789/
  • वैकल्पिक प्रीफ़िक्स: gateway.controlUi.basePath सेट करें (उदा. /openclaw)

यह उसी पोर्ट पर सीधे Gateway WebSocket से संचार करता है।

जब आप चल रहे सत्र को देखते हैं, तो Gateway उस एजेंट के यूटिलिटी मॉडल का उपयोग करके एक संक्षिप्त स्थिति-सारांश तैयार कर सकता है। चैट इसे एक-पंक्ति वाली स्थिति पिल के रूप में दिखाता है, जो विस्तृत होकर आकलन, योजना की प्रगति, पुल रिक्वेस्ट और बीता हुआ समय दिखाने वाला कार्ड बन जाती है। जब कोई रन अटक जाता है या उसे इनपुट की आवश्यकता होती है, तो कार्ड एक बार स्वतः विस्तृत हो सकता है; /btw साइड चैट को विस्तृत कार्ड पर प्राथमिकता मिलती है।

विस्तृत कार्ड रन के बारे में छोटे प्रश्न भी स्वीकार करता है। उत्तर केवल ऑब्ज़र्वर के वर्तमान सारांश और स्वच्छ किए गए सीमित नोट्स का उपयोग करते हैं, उस सत्र के लिए ब्राउज़र में ही रहते हैं और मुख्य एजेंट रन में कभी प्रवेश या हस्तक्षेप नहीं करते। यदि अवलोकनों में उत्तर नहीं है, तो ऑब्ज़र्वर बताता है कि वह इसे नहीं जान सकता।

पहला सारांश आने के बाद, अनुमान-आधारित लाइव गतिविधि के बजाय वही उस रन के साइडबार उपशीर्षक को नियंत्रित करता है। अंतिम पूर्ण या विफल सारांश सत्र के अपठित रहने तक दिखाई देता है, फिर पंक्ति अपने सामान्य कार्य उपशीर्षक पर लौट आती है।

सत्र अवलोकन डिफ़ॉल्ट रूप से सक्षम है। Settings > Appearance > Sidebar में, आप इसे पूरे Gateway के लिए बंद कर सकते हैं, निर्धारित छोटे मॉडल और उसके स्रोत की जाँच कर सकते हैं, या स्वचालित रूटिंग चुन सकते हैं, यूटिलिटी कार्य अक्षम कर सकते हैं अथवा कोई स्पष्ट agents.defaults.utilityModel चुन सकते हैं। इसके समकक्ष कॉन्फ़िग नियंत्रण gateway.controlUi.sessionObserver: false और agents.defaults.utilityModel: "" हैं।

तुरंत खोलें (स्थानीय)

यदि Gateway उसी कंप्यूटर पर चल रहा है, तो http://127.0.0.1:18789/ (या http://localhost:18789/) खोलें।

यदि पेज लोड नहीं होता, तो पहले Gateway शुरू करें: openclaw gateway

WebSocket हैंडशेक के दौरान प्रमाणीकरण इस प्रकार प्रदान किया जाता है:

  • connect.params.auth.token
  • connect.params.auth.password
  • जब gateway.auth.allowTailscale: true हो, तब Tailscale Serve पहचान हेडर
  • जब gateway.auth.mode: "trusted-proxy" हो, तब विश्वसनीय-प्रॉक्सी पहचान हेडर

Gateway प्रमाणीकरण डिवाइस पेयरिंग से पहले चलता है। सीधा लूपबैक कनेक्शन टोकन या पासवर्ड प्रमाणीकरण को बायपास नहीं करता। डैशबोर्ड सेटिंग पैनल वर्तमान ब्राउज़र टैब सत्र और चुने गए Gateway URL के लिए टोकन रखता है; पासवर्ड स्थायी रूप से संग्रहीत नहीं किए जाते। पेयरिंग के बाद, ब्राउज़र बाद के कनेक्शनों पर अपने संग्रहीत प्रति-डिवाइस टोकन का उपयोग कर सकता है।

ऑनबोर्डिंग सामान्यतः साझा-सीक्रेट प्रमाणीकरण के लिए Gateway टोकन कॉन्फ़िगर करती है। यदि Gateway बिना किसी कॉन्फ़िगर किए गए टोकन के टोकन मोड में शुरू होता है, तो वह उस प्रक्रिया के लिए एक अस्थायी रनटाइम टोकन उत्पन्न करता है। रनटाइम टोकन कॉन्फ़िग में नहीं लिखा जाता, इसलिए openclaw config get gateway.auth.token उसे प्राप्त नहीं कर सकता और उस टोकन के बिना लूपबैक ब्राउज़र अस्वीकार कर दिया जाता है। openclaw doctor --generate-gateway-token चलाएँ, Gateway पुनः शुरू करें, फिर कॉन्फ़िगर किया गया टोकन Control UI सेटिंग में पेस्ट करें। इसके बजाय पासवर्ड प्रमाणीकरण तब काम करता है, जब gateway.auth.mode, "password" हो।

डिवाइस पेयरिंग (पहला कनेक्शन)

Gateway प्रमाणीकरण सफल होने के बाद, किसी नए ब्राउज़र या डिवाइस से कनेक्ट करने के लिए सामान्यतः एक बार की पेयरिंग स्वीकृति आवश्यक होती है, जिसे disconnected (1008): pairing required के रूप में दिखाया जाता है।

  • लंबित अनुरोध सूचीबद्ध करें

    bash
    openclaw devices list
  • अनुरोध ID द्वारा स्वीकृत करें

    bash
    openclaw devices approve <requestId>
  • यदि ब्राउज़र बदले हुए प्रमाणीकरण विवरणों (भूमिका/स्कोप/सार्वजनिक कुंजी) के साथ पेयरिंग का पुनः प्रयास करता है, तो पिछला लंबित अनुरोध प्रतिस्थापित हो जाता है और नया requestId बनाया जाता है; स्वीकृति देने से पहले openclaw devices list दोबारा चलाएँ।

    पहले से पेयर किए गए रिमोट ब्राउज़र को पढ़ने की पहुँच से लेखन/व्यवस्थापक पहुँच पर बदलना मौन पुनः कनेक्शन नहीं, बल्कि स्वीकृति अपग्रेड माना जाता है: OpenClaw पुरानी स्वीकृति सक्रिय रखता है, व्यापक पुनः कनेक्शन अवरुद्ध करता है और आपसे नए स्कोप सेट को स्पष्ट रूप से स्वीकृत करने के लिए कहता है। योग्य सीधा-लूपबैक Control UI कनेक्शन प्रमाणीकरण के बाद अपग्रेड को स्वतः स्वीकृत कर सकता है।

    स्वीकृति मिलने के बाद, डिवाइस याद रखा जाता है और तब तक पुनः स्वीकृति की आवश्यकता नहीं होती, जब तक आप openclaw devices revoke --device <id> --role <role> से उसकी स्वीकृति निरस्त नहीं करते। टोकन रोटेशन, निरस्तीकरण और Paperclip / openclaw_gateway के प्रथम-रन स्वीकृति प्रवाह के लिए Devices CLI देखें।

    मोबाइल डिवाइस पेयर करें

    पहले से पेयर किया गया व्यवस्थापक टर्मिनल खोले बिना iOS/Android कनेक्शन QR बना सकता है:

  • मोबाइल पेयरिंग खोलें

    Devices चुनें, फिर Devices कार्ड में Pair mobile device पर क्लिक करें।

  • फ़ोन कनेक्ट करें

    OpenClaw मोबाइल ऐप में SettingsGateway खोलें और QR कोड स्कैन करें। इसके बजाय आप सेटअप कोड कॉपी और पेस्ट कर सकते हैं।

  • कनेक्शन की पुष्टि करें

    आधिकारिक iOS/Android ऐप स्वतः कनेक्ट हो जाता है। यदि Pending approval कोई अनुरोध दिखाता है, तो उसे स्वीकृत करने से पहले उसकी भूमिका और स्कोप की समीक्षा करें।

  • सेटअप कोड बनाने के लिए operator.admin आवश्यक है; इसके बिना सत्रों के लिए बटन अक्षम रहता है। सेटअप कोड में अल्पकालिक बूटस्ट्रैप क्रेडेंशियल होता है, इसलिए QR और कॉपी किए गए कोड के मान्य रहने तक उन्हें पासवर्ड की तरह सुरक्षित रखें। रिमोट पेयरिंग के लिए Gateway को wss:// पर रिज़ॉल्व होना चाहिए (उदाहरण के लिए, Tailscale Serve/Funnel के माध्यम से); सामान्य ws:// केवल लूपबैक और निजी LAN पतों तक सीमित है। संपूर्ण सुरक्षा और फ़ॉलबैक विवरण के लिए पेयरिंग देखें।

    व्यक्तिगत पहचान (ब्राउज़र-स्थानीय)

    Control UI साझा सत्रों में श्रेय के लिए, आउटगोइंग संदेशों से जुड़ी प्रति-ब्राउज़र व्यक्तिगत पहचान (प्रदर्शन नाम और अवतार) का समर्थन करता है। यह वर्तमान ब्राउज़र प्रोफ़ाइल तक सीमित ब्राउज़र स्टोरेज में रहती है और आपके भेजे संदेशों के सामान्य ट्रांसक्रिप्ट लेखकत्व मेटाडेटा के अतिरिक्त अन्य डिवाइसों से सिंक या सर्वर पर स्थायी रूप से संग्रहीत नहीं होती। साइट डेटा साफ़ करने या ब्राउज़र बदलने पर यह रिक्त हो जाती है।

    सहायक अवतार ओवरराइड भी इसी ब्राउज़र-स्थानीय तरीके का पालन करता है: अपलोड किए गए ओवरराइड Gateway द्वारा निर्धारित पहचान पर स्थानीय रूप से लागू होते हैं और कभी config.patch के माध्यम से राउंड-ट्रिप नहीं करते। साझा ui.assistant.avatar कॉन्फ़िग फ़ील्ड अब भी उन गैर-UI क्लाइंट के लिए उपलब्ध है, जो फ़ील्ड को सीधे लिखते हैं।

    रनटाइम कॉन्फ़िग एंडपॉइंट

    Control UI अपनी रनटाइम सेटिंग /control-ui-config.json से प्राप्त करता है, जिसे Gateway के Control UI बेस पथ के सापेक्ष निर्धारित किया जाता है (उदाहरण के लिए, बेस पथ /__openclaw__/ के अंतर्गत /__openclaw__/control-ui-config.json)। यह एंडपॉइंट भी HTTP सतह के शेष भाग के समान Gateway प्रमाणीकरण द्वारा सुरक्षित है: अप्रमाणित ब्राउज़र इसे प्राप्त नहीं कर सकते और सफल प्राप्ति के लिए मान्य Gateway टोकन/पासवर्ड, Tailscale Serve पहचान या विश्वसनीय-प्रॉक्सी पहचान आवश्यक है।

    Gateway होस्ट स्थिति

    Gateway मशीन, LAN पता, ऑपरेटिंग सिस्टम, रनटाइम, अपटाइम, CPU लोड, मेमोरी और स्टेट-वॉल्यूम डिस्क स्थान वाला Gateway Host कार्ड देखने के लिए Settings → General खोलें। दिखाई देने के दौरान कार्ड system.info Gateway RPC के माध्यम से हर 10 सेकंड में रीफ़्रेश होता है, जिसके लिए operator.read स्कोप आवश्यक है। पुराने Gateway और उस स्कोप के बिना कनेक्शन कार्ड को नहीं दिखाते।

    भाषा समर्थन

    Control UI पहली बार लोड होने पर आपके ब्राउज़र की लोकेल के आधार पर स्वयं को स्थानीयकृत करता है। इसे बाद में बदलने के लिए Settings -> General -> Language खोलें (चयनकर्ता General पेज पर है, Appearance के अंतर्गत नहीं)।

    • समर्थित लोकेल: en, ar, de, es, fa, fr, hi, id, it, ja-JP, ko, nl, pl, pt-BR, ru, th, tr, uk, vi, zh-CN, zh-TW
    • गैर-अंग्रेज़ी अनुवाद ब्राउज़र में लेज़ी-लोड किए जाते हैं।
    • चुनी गई लोकेल ब्राउज़र स्टोरेज में सहेजी जाती है और भविष्य की विज़िट पर फिर उपयोग की जाती है।
    • अनुपलब्ध अनुवाद कुंजियों के लिए अंग्रेज़ी का उपयोग किया जाता है।

    दस्तावेज़ अनुवाद भी समान गैर-अंग्रेज़ी लोकेल सेट के लिए उत्पन्न किए जाते हैं, लेकिन दस्तावेज़ साइट का अंतर्निहित Mintlify भाषा चयनकर्ता केवल वे लोकेल कोड सूचीबद्ध करता है जिन्हें Mintlify स्वीकार करता है। थाई (th) और फ़ारसी (fa) दस्तावेज़ अब भी प्रकाशन रिपॉज़िटरी में उत्पन्न किए जाते हैं; Mintlify द्वारा उन कोड का समर्थन किए जाने तक वे उस चयनकर्ता में दिखाई नहीं दे सकते।

    स्वरूप थीम

    Appearance पैनल में अंतर्निहित Claw, Knot और Dash थीम (Claw डिफ़ॉल्ट है) के साथ एक ब्राउज़र-स्थानीय tweakcn आयात स्लॉट है। किसी थीम को आयात करने के लिए tweakcn संपादक खोलें, कोई थीम चुनें या बनाएँ, Share पर क्लिक करें और कॉपी किया गया लिंक Appearance में पेस्ट करें। आयातक https://tweakcn.com/r/themes/<id> रजिस्ट्री URL, https://tweakcn.com/editor/theme?theme=amethyst-haze जैसे संपादक URL, सापेक्ष /themes/<id> पथ, कच्ची थीम ID और amethyst-haze जैसे डिफ़ॉल्ट थीम नाम भी स्वीकार करता है।

    आयातित थीम केवल वर्तमान ब्राउज़र प्रोफ़ाइल में संग्रहीत होती हैं; उन्हें Gateway कॉन्फ़िग में नहीं लिखा जाता और वे डिवाइसों के बीच सिंक नहीं होतीं। आयातित थीम बदलने पर एक स्थानीय स्लॉट अपडेट होता है; यदि आयातित थीम सक्रिय थी, तो उसे साफ़ करने पर Claw फिर सक्रिय हो जाती है।

    Appearance में Text size सेटिंग भी है। यह चैट टेक्स्ट, कंपोज़र टेक्स्ट, टूल कार्ड और चैट साइडबार पर लागू होती है तथा टेक्स्ट इनपुट को कम-से-कम 16px रखती है, ताकि मोबाइल Safari फ़ोकस होने पर स्वतः ज़ूम न करे।

    थीम, थीम मोड, टेक्स्ट आकार, भाषा और चैट प्रदर्शन प्राथमिकताएँ Gateway कॉन्फ़िगरेशन (ui.prefs) के माध्यम से सिंक होती हैं, इसलिए वे सभी डिवाइस पर आपके साथ रहती हैं और एजेंट अनुमोदन गेट के माध्यम से उन्हें बदल सकते हैं — कनेक्टेड क्लाइंट Gateway की config.changed सूचना के माध्यम से बदलावों को तुरंत लागू करते हैं। तत्काल आरंभ के लिए प्रत्येक ब्राउज़र एक स्थानीय प्रतिलिपि रखता है; जो क्लाइंट कॉन्फ़िगरेशन नहीं लिख सकते (व्यूअर स्कोप, ऑफ़लाइन), वे बदलावों को डिवाइस तक सीमित रखते हैं। कॉन्फ़िगरेशन संदर्भ देखें।

    OpenClaw सिस्टम की देखभाल

    सिस्टम सेटअप और मरम्मत एजेंट से बात करने के लिए Settings → Ask OpenClaw खोलें। ऑनबोर्डिंग के बाहर, यह पृष्ठ प्रत्येक विज़िट में अधिकतम एक बंद किया जा सकने वाला इवेंट चिप दिखा सकता है। यह नियमित Gateway ट्रैफ़िक के दौरान मौन रहता है और केवल उन स्वास्थ्य स्नैपशॉट पर प्रतिक्रिया करता है जो अक्षम कॉन्फ़िगरेशन रीलोडर, कॉन्फ़िगर किए गए चैनल के डिस्कनेक्शन/गुणवत्ता में गिरावट, विफल चैनल जाँच या अनुपलब्ध चैनल क्रेडेंशियल की रिपोर्ट करते हैं। कोई नया इवेंट लंबित चिप को केवल तभी बदलता है जब वह अधिक गंभीर हो; चिप को बंद करने या उपयोग करने पर उस विज़िट के लिए इवेंट संकेत मौन हो जाते हैं। चिप पर क्लिक करने से उसका निदान प्रश्न वास्तविक openclaw.chat संदेश के रूप में भेजा जाता है, इसलिए ट्रांसक्रिप्ट अनुरोध दर्ज करता है और OpenClaw निदान करता है। ऑनबोर्डिंग में ये इवेंट चिप कभी नहीं दिखते।

    प्लगइन प्रबंधित करें

    Control UI छोड़े बिना प्लगइन ब्राउज़ और प्रबंधित करने के लिए साइडबार में प्लगइन खोलें, या कॉन्फ़िगर किए गए Control UI बेस पाथ के सापेक्ष /settings/plugins का उपयोग करें। उदाहरण के लिए, /openclaw बेस पाथ /openclaw/settings/plugins का उपयोग करता है। प्रत्येक वैकल्पिक प्लगइन अक्षम होने पर भी यह पृष्ठ हमेशा उपलब्ध रहता है।

    प्लगइन चार टैब वाला एक हब है: इंस्टॉल किए गए और खोजें, /settings/plugins पर प्लगइन कोड प्रबंधित करते हैं, Skills, /skills पर प्रति-एजेंट स्किल मैनेजर होस्ट करता है, और वर्कशॉप, /skills/workshop पर Skill Workshop प्रस्ताव समीक्षा होस्ट करता है। प्रत्येक टैब अपना URL बनाए रखता है और साइडबार उन सभी के लिए एकल प्लगइन प्रविष्टि दिखाता है।

    इंस्टॉल किए गए टैब श्रेणी के अनुसार समूहीकृत पूरी स्थानीय सूची और अवलोकन संख्याएँ दिखाता है। प्रत्येक पंक्ति विस्तृत दृश्य खोलती है; उसका ओवरफ़्लो () मेनू प्लगइन को सक्षम या अक्षम करता है और बाहरी रूप से इंस्टॉल किए गए प्लगइन के लिए हटाएँ प्रदान करता है। यह कॉन्फ़िगर किए गए MCP सर्वर भी सूचीबद्ध करता है और उन्हें इनलाइन जोड़ने, अक्षम करने और हटाने की सुविधा देता है। यही सर्वर नियंत्रण Settings → MCP पर उपलब्ध हैं। खोजें टैब स्टोर है: OpenClaw के साथ शामिल चुनिंदा प्लगइन, आधिकारिक बाहरी प्लगइन और लोकप्रिय सेवाओं के लिए एक-क्लिक MCP कनेक्टर। खोज बॉक्स में टाइप करने पर इनलाइन ClawHub से क्वेरी होती है और डाउनलोड संख्या तथा स्रोत-सत्यापन बैज वाला ClawHub से अनुभाग जोड़ा जाता है। डीप लिंक /settings/plugins?tab=discover से सीधे स्टोर को लक्षित कर सकते हैं।

    Skills टैब चयनित एजेंट के दायरे में स्किल स्थिति रिपोर्ट, सक्षम/अक्षम टॉगल, API कुंजी प्रविष्टि और इनलाइन ClawHub स्किल खोज बनाए रखता है। वर्कशॉप टैब स्किल प्रस्तावों के लिए Skill Workshop बोर्ड और आज का समीक्षा प्रवाह बनाए रखता है। स्किल के विचार खोजें नवीनतम से सबसे पुराने क्रम में पर्याप्त सत्रों की सीमित विंडो की समीक्षा करता है और किसी भी परिणाम को लंबित प्रस्ताव के रूप में छोड़ता है। पैनल संचयी कवरेज दिखाता है; पहले का काम स्कैन करें संग्रहीत कर्सर से जारी रखता है, फिर पुराना इतिहास समाप्त होने के बाद नया काम स्कैन करें बन जाता है। स्वायत्त स्व-शिक्षण अक्षम होने पर मैन्युअल इतिहास समीक्षा काम करती है और चयनित एजेंट के कॉन्फ़िगर किए गए मॉडल का उपयोग करती है।

    शामिल प्लगइन पहले से Gateway पर मौजूद होते हैं और इंस्टॉल करें के बजाय सक्षम करें या अक्षम करें दिखाते हैं। उदाहरण के लिए, Workboard OpenClaw के साथ शामिल है लेकिन डिफ़ॉल्ट रूप से अक्षम है, इसलिए उसकी क्रिया सक्षम करें है। बंडल किए गए प्लगइन हटाए नहीं जा सकते, केवल अक्षम किए जा सकते हैं।

    कैटलॉग पढ़ने और ClawHub खोजने के लिए operator.read आवश्यक है। प्लगइन इंस्टॉल, सक्षम, अक्षम या हटाने और MCP सर्वर बदलने के लिए operator.admin आवश्यक है; केवल-पढ़ने वाले ऑपरेटरों के लिए वे क्रियाएँ अक्षम रहती हैं।

    ClawHub इंस्टॉलेशन Gateway के माध्यम से चलते हैं और अन्य Gateway-मध्यस्थ इंस्टॉलेशन के समान विश्वास, अखंडता और प्लगइन-इंस्टॉलेशन नीति जाँच बनाए रखते हैं। प्लगइन कोड इंस्टॉल या हटाने के लिए Gateway को पुनः आरंभ करना आवश्यक है। इंस्टॉल किए गए प्लगइन को सक्षम या अक्षम करना बिना पुनः आरंभ के लागू हो सकता है, यदि प्लगइन और वर्तमान Gateway रनटाइम इसका समर्थन करते हैं; अन्यथा UI सूचित करता है कि पुनः आरंभ आवश्यक है। OAuth-समर्थित MCP कनेक्टर जोड़ने के बाद CLI से एक बार openclaw mcp login <name> चलाना आवश्यक है।

    यह पृष्ठ जानबूझकर सूची, खोज, इंस्टॉलेशन, सक्षमता और हटाने पर केंद्रित है। मनमाने npm, git या लोकल-पाथ स्रोतों, अपडेट और उन्नत प्लगइन कॉन्फ़िगरेशन के लिए openclaw plugins का उपयोग करें।

    ऐप और एक्सटेंशन

    साइडबार के More मेनू, कमांड पैलेट या साइडबार एजेंट मेनू (Get the apps) से ऐप खोलें, या कॉन्फ़िगर किए गए Control UI बेस पाथ के सापेक्ष /apps का उपयोग करें। यह पृष्ठ प्रत्येक OpenClaw सहयोगी सतह के इंस्टॉलेशन लिंक एकत्र करता है: iOS और Android ऐप, उनके साथ बंडल किए गए Apple Watch और Wear OS सहयोगी, macOS, Windows और Linux डेस्कटॉप ऐप, Chrome एक्सटेंशन, ClawHub वाला इन-ऐप प्लगइन हब और Discord समुदाय तथा दस्तावेज़।

    साइडबार नेविगेशन

    साइडबार सब कुछ एजेंट के आसपास व्यवस्थित करता है। सबसे ऊपर की पहचान पंक्ति सक्रिय एजेंट है; उसके नीचे पृष्ठ अनुभाग होम से शुरू होता है — एजेंट का निरंतर मुख्य सत्र, जिस पर उसकी अपठित या चल रही स्थिति का बैज होता है — और उसके बाद पिन किए गए गंतव्य (डिफ़ॉल्ट रूप से ऑटोमेशन और प्लगइन) आते हैं। पृष्ठ हेडर पर अनुकूलित करें नियंत्रण एक मेनू खोलता है जिसमें उपयोग और प्लगइन-प्रदान किए गए टैब सहित हर अन्य गंतव्य तथा पिन किए गए आइटम संपादित करें होता है; नेविगेशन क्षेत्र पर राइट-क्लिक करने से पिन एडिटर सीधे खुलता है। नीचे की सत्र सूची क्षेत्रों में विभाजित होती है: एजेंट के चैट सत्रों के लिए थ्रेड (मुख्य सत्र होम के पीछे रहता है; उसके द्वारा बनाए गए सत्र यहाँ शीर्ष-स्तरीय थ्रेड के रूप में दिखाई देते हैं और नामित थ्रेड किसी प्रकार उपसर्ग के बिना दिखाई देते हैं), समूह और रूम वार्तालापों के लिए समूह, और प्रबंधित वर्कट्री या exec Node से बँधे सत्रों (पंक्तियाँ repo ⎇ branch पंक्ति और Node होस्ट दिखाती हैं), ACP-समर्थित हार्नेस सत्रों तथा Codex/Claude CLI कैटलॉग के लिए कोडिंग। पहली बार चलने पर कोडिंग संकुचित शुरू होता है और आपकी पसंद याद रखता है; उसका संकुचित हेडर वास्तविक संख्या बनाए रखता है और भीतर के सत्रों के काम करते समय चलने का संकेतक दिखाता है। कस्टम समूह (सत्र category) और पिन किए गए पंक्तियाँ थ्रेड के ऊपर रहती हैं, और किसी सत्र को कस्टम समूह में असाइन करना हमेशा स्वचालित क्षेत्र वर्गीकरण पर प्राथमिकता पाता है। थ्रेड हेडर में क्रम नियंत्रण (बनाए जाने का समय या अंतिम अपडेट, इसके अनुसार समूहित करें, और सक्रिय, संग्रहित या सभी के लिए संग्रहीत स्थिति फ़िल्टर) तथा नया सत्र पृष्ठ खोलने वाला + होता है। संग्रहित पंक्तियाँ संग्रह ग्लिफ़ के साथ धुंधली होकर इनलाइन रहती हैं; वे अपठित या ध्यान स्थिति में योगदान नहीं करतीं और वंशक्रम प्रोमोशन से बाहर रहती हैं। किसी सत्र को खोलने से पंक्तियों का क्रम बदले बिना चयन हाइलाइट स्थानांतरित होता है। हाल के चाइल्ड रन वाले पैरेंट सत्र एक प्रकटीकरण और चाइल्ड संख्या दिखाते हैं; साइडबार छोड़े बिना नेस्ट किए गए चाइल्ड सत्र, लाइव या अंतिम स्थिति और रनटाइम देखने के लिए इसे विस्तृत करें। किसी चाइल्ड को चुनने से उसकी चैट खुलती है और उसका पूर्वज पाथ अपने आप दिखाई देता है। चाइल्ड पंक्तियाँ रूट समूहीकरण, पिनिंग, ड्रैगिंग, बहु-चयन और पृष्ठांकन से बाहर रहती हैं; संकुचित क्षेत्र दृश्य पृष्ठ बजट का उपयोग नहीं करते। अंतिम बार पढ़े जाने के बाद नई गतिविधि वाले सत्र अपठित बिंदु दिखाते हैं और किसी को खोलने पर वह पढ़ा हुआ चिह्नित हो जाता है। कोई एजेंट छोटी, समय-सीमा वाली स्थिति पंक्ति भी प्रकाशित कर सकता है और वैकल्पिक रूप से चुने हुए ऐंबर आइकन के साथ ध्यान का अनुरोध कर सकता है; यह घोषणा तब हट जाती है जब आप सत्र खोलते हैं, अगला संदेश भेजते हैं, इसे स्पष्ट रूप से हटाते हैं या इसकी TTL समाप्त होती है। क्लाउड-वर्कर जीवनचक्र स्थितियाँ ग्लोब बैज का उपयोग करती हैं; स्थानीय और पुनः प्राप्त सत्र प्लेसमेंट बैज नहीं दिखाते क्योंकि स्थानीय निष्पादन डिफ़ॉल्ट है। प्रत्येक रूट सत्र पंक्ति में संदर्भ मेनू (कबाब बटन या राइट-क्लिक) होता है, जिसमें पिन करें/पिन हटाएँ, अपठित/पठित के रूप में चिह्नित करें, नाम बदलें, फ़ोर्क करें, समूह में ले जाएँ (नया समूह और समूह से हटाएँ सहित), संग्रहित करें या संग्रह से निकालें और हटाएँ होते हैं; टच लेआउट सीधे पिन और मेनू नियंत्रणों को दृश्यमान रखते हैं। Cmd/Ctrl-क्लिक रूट पंक्तियों को बहु-चयन में टॉगल करता है और Shift-क्लिक इसे दृश्य क्रम में विस्तारित करता है; फिर चयनित पंक्ति पर मेनू खोलने से बैच क्रियाएँ (N को अपठित/पठित चिह्नित करें, N को समूह में ले जाएँ, N संग्रहित करें, N हटाएँ) मिलती हैं, जो प्रत्येक चयनित सत्र पर लागू होती हैं और बैच हटाने के लिए एक ही पुष्टि होती है। किसी रूट सत्र को पिन करने के लिए पिन किए गए पर या स्थानांतरित करने के लिए किसी कस्टम समूह पर ड्रैग करें। कस्टम समूह हेडर संकुचित, विस्तारित या क्रम बदलने के लिए ड्रैग किए जा सकते हैं; समूह के नाम और उनका क्रम Gateway (sessions.groups.*) में रहते हैं, इसलिए वे सभी ब्राउज़र पर आपके साथ रहते हैं, जबकि संकुचित स्थिति ब्राउज़र प्रोफ़ाइल में रहती है। समूह हेडर में नाम बदलें, नया समूह और समूह हटाएँ वाला मेनू (कबाब बटन या राइट-क्लिक) भी होता है; किसी समूह का नाम बदलने या उसे हटाने से संग्रहित सत्रों सहित प्रत्येक सदस्य सत्र सर्वर की ओर अपडेट होता है, और समूह हटाने पर उसके सत्र बने रहते हैं तथा वापस थ्रेड में चले जाते हैं।

    नया सत्र पृष्ठ

    साइडबार सत्र-सूची हेडर में +, /new पर पूर्ण-पृष्ठ ड्राफ़्ट खोलता है: पहला संदेश भेजने तक कुछ भी नहीं बनाया जाता। एकीकृत स्थान पिकर कार्य फ़ोल्डर और एडमिन ऑपरेटरों के लिए निष्पादन गंतव्य चुनता है: Gateway · local, system.run उपलब्ध कराने वाला युग्मित Node या उपलब्ध क्लाउड प्रोफ़ाइल। फ़ोल्डर डिफ़ॉल्ट रूप से एजेंट वर्कस्पेस होता है; किसी अन्य निरपेक्ष Gateway पाथ के लिए operator.admin आवश्यक है, लेकिन वह Git चेकआउट हुए बिना सीधे चल सकता है। जब चयनित Gateway फ़ोल्डर Git चेकआउट होता है, तो यही पिकर worktrees.branches (कोई फ़ेच नहीं) द्वारा समर्थित बेस-ब्रांच पिकर और वैकल्पिक वर्कट्री नाम (ब्रांच openclaw/<name> बन जाती है) के साथ वैकल्पिक वर्कट्री पृथक्करण प्रदान करता है। क्लाउड वर्कर के लिए वह प्रबंधित-वर्कट्री पाथ आवश्यक है; युग्मित Node इसे कभी उपलब्ध नहीं कराते। कंपोज़र फ़ुटर नए सत्र का मॉडल और रीजनिंग स्तर चुनता है। उसका गुप्त टॉगल केवल-वेब थ्रेड बनाता है, जिसकी सत्र प्रविष्टि, ट्रांसक्रिप्ट और Compaction स्थिति Gateway के पुनः आरंभ होने तक मेमोरी में रहती है; OpenClaw इसकी स्वचालित मेमोरी फ़्लश भी छोड़ देता है। एजेंट अपने सामान्य टूल बनाए रखता है, इसलिए स्पष्ट सेव अनुरोध या टूल-चालित फ़ाइल लेखन अब भी डेटा को स्थायी बना सकता है। मॉडल प्रदाता अब भी संदेश संसाधित करता है और सामग्री-रहित ऑडिट मेटाडेटा अब भी दर्ज होता है। क्लाउड आरंभ अपने मॉडल और रीजनिंग विकल्पों को सत्र उसके वर्कर को भेजने से पहले स्थायी बनाते हैं।

    बहु-उपयोगकर्ता Gateway पर केवल एडमिन-स्कोप कनेक्शन गुप्त थ्रेड बना या देख सकते हैं, और अन्य सत्र एजेंट सत्र टूल या ट्रांसक्रिप्ट खोज के माध्यम से उन तक नहीं पहुँच सकते। गुप्त मोड संग्रहण और अन्य Gateway-मध्यस्थ उपयोगकर्ताओं से सुरक्षा देता है, Gateway के स्वामी या प्रोसेस ऑपरेटर से नहीं, जो हमेशा लाइव सत्र देख सकते हैं।

    फ़ोल्डर ब्राउज़ करें, स्थान पिकर का इनलाइन डायरेक्टरी ब्राउज़र खोलता है, जो केवल-एडमिन fs.listDir विधि द्वारा समर्थित और चयनित Gateway या Node तक सीमित होता है। Gateway और ब्राउज़-सक्षम Node अपना फ़ाइल सिस्टम सूचीबद्ध करते हैं; fs.listDir के बिना निष्पादन-सक्षम Node भी टाइप किया गया निरपेक्ष पाथ स्वीकार करता है। हाल के स्थान होस्ट के बीच पाथ ले जाए बिना फ़ोल्डर और उसके स्वामी Node को साथ पुनर्स्थापित कर सकते हैं। सबमिट करने पर पहले संदेश के साथ sessions.create कॉल होता है, इसलिए रन उसी राउंड-ट्रिप में शुरू होता है और UI नए सत्र की चैट पर चला जाता है। यदि Gateway सत्र बना देता है लेकिन पहला प्रेषण अस्वीकार करता है, तो चैट रीलोड के दौरान प्रॉम्प्ट और त्रुटि बनाए रखती है; पुनः प्रयास करें दूसरा सत्र बनाने के बजाय उसे पहले से बनाए गए सत्र के माध्यम से भेजता है।

    सेटिंग्स के भीतर समर्पित साइडबार में OpenClaw से पूछें शामिल है और यह सेटिंग्स अनुभागों को तेज़ी से खोजने के लिए सेटिंग्स खोजें फ़ील्ड से शुरू होता है।

    डेस्कटॉप वेब पर, सामग्री क्षेत्र के ऊपर-बाएँ एक स्थिर नियंत्रण समूह — macOS टाइटलबार पट्टी का वेब समकक्ष — साइडबार समेटने का टॉगल (⌘B) और कमांड-पैलेट खोज बटन (⌘K) रखता है। साइडबार के शीर्ष पर एजेंट पहचान पंक्ति पर क्लिक करने से एजेंट मेनू खुलता है; होम मुख्य सत्र खोलता है। जब किसी चीज़ पर कार्रवाई आवश्यक होती है — विफल या समय-सीमा पार कर चुके Cron कार्य, शीघ्र समाप्त होने वाला या समाप्त हो चुका मॉडल प्रमाणीकरण — तो साइडबार फुटर के ऊपर छोटे ध्यानाकर्षण चिप दिखाई देते हैं और क्लिक करने पर संबंधित पृष्ठ खोलते हैं। पहचान पंक्ति एजेंट का अवतार (पहचान छवि या इमोजी), नाम, कनेक्शन बिंदु और लाइव उपशीर्षक दिखाती है। इसके एजेंट-स्कोप वाले मेनू में इनलाइन एजेंट स्विचर (मल्टी-एजेंट सेटअप), नया एजेंट, "यह एजेंट क्या कर सकता है?", और एजेंट सेटिंग्स शामिल हैं। दस से अधिक एजेंट वाली सूचियों में फ़िल्टर फ़ील्ड होता है और पिन किए गए एजेंट पहले सूचीबद्ध होते हैं; एजेंट सेटिंग्स पृष्ठ से एजेंटों को पिन या अनपिन करें, और पिन किया गया समूह ब्राउज़र प्रोफ़ाइल में संग्रहीत होता है। किसी एजेंट को चुनने से चैट के साथ उपयोग, ऑटोमेशन, कार्य, वर्कबोर्ड और सत्रों का स्कोप उस एजेंट तक सीमित हो जाता है। प्रत्येक स्कोप वाला पृष्ठ एक एजेंट नियंत्रण उपलब्ध कराता है, जिसमें बाहर निकलने के विकल्प के रूप में सभी एजेंट होता है; यह वास्तविक चैट एजेंट को बदले बिना साझा पृष्ठ का स्कोप विस्तृत करता है, जबकि सीधे सत्र लिंक अब भी अपना लक्षित सत्र खोलते हैं। एजेंट सेटिंग्स पृष्ठ अपना स्वयं का ?agent= चयन बनाए रखता है और साझा पृष्ठ स्कोप का अनुसरण नहीं करता। फुटर एक पूर्ण-चौड़ाई वाला पहचान कार्ड है, जो ऑफ़लाइन भी उपलब्ध रहता है और अंतिम ज्ञात खाता नाम के नीचे फिर से कनेक्ट हो रहा है… दिखाता है। यह ऐप/खाता मेनू खोलता है, जिसमें प्रोफ़ाइल पहचान हेडर के बाद सेटिंग्स, उपयोग, मोबाइल पेयरिंग, ऐप्स प्राप्त करें, सहायता (सहायता, Discord, दस्तावेज़ और बदलाव-सूची), आवश्यकता होने पर ऑफ़लाइन पुनः प्रयास कार्रवाई, संस्करण/बिल्ड चिप और रंग-मोड टॉगल होते हैं। बिल्ड चिप परिचय पृष्ठ खोलता है। जब Gateway किसी स्रोत चेकआउट से main के अलावा किसी अन्य ब्रांच पर चलता है, तो फुटर उस ब्रांच का नाम भी लाल रंग में दिखाता है, ताकि गैर-रिलीज़ Gateway एक नज़र में स्पष्ट हो जाए (रिलीज़ इंस्टॉलेशन इसे कभी नहीं दिखाते)। Apple प्लेटफ़ॉर्म पर Shift-Command-Comma या अन्यत्र Ctrl-Shift-Comma ब्राउज़र के सामान्य Command-Comma शॉर्टकट को अधिलेखित किए बिना सेटिंग्स खोलता है। साइडबार को समेटने पर (⌘B या समूह के टॉगल से) वह पूरी तरह छिप जाता है और पूर्ण-चौड़ाई वाला कार्यक्षेत्र मिलता है; समेटे रहने पर ऊपर-बायाँ समूह विस्तृत करने का टॉगल और खोज बनाए रखता है तथा उसमें नया थ्रेड बटन जुड़ जाता है — ठीक वैसे ही जैसे macOS ऐप इसे अपने टाइटलबार में मूल रूप से होस्ट करता है। डेस्कटॉप पर साइडबार ही एकमात्र नेविगेशन क्रोम है और कोई शीर्ष बार नहीं है। संकरे व्यूपोर्ट में साइडबार के स्थान पर स्लाइड-ओवर ड्रॉअर आता है, जिसके पीछे एक संक्षिप्त हेडर पंक्ति में ड्रॉअर टॉगल, ब्रांड और कमांड-पैलेट खोज होती है; फ़ोन पर चैट उस नेविगेशन पंक्ति को अपने टाइटल बार में समाहित कर लेता है, जहाँ सत्र शीर्षक के पास मेनू और खोज नियंत्रण होते हैं। macOS ऐप में अलग हेडर पंक्ति टाइटलबार की खाली जगह को विंडो नियंत्रणों के पास एक संक्षिप्त पट्टी में समाहित कर देती है। नेविगेशन सामान्य ब्राउज़र इतिहास का उपयोग करता है, इसलिए ब्राउज़र के पीछे/आगे बटन इसमें आगे-पीछे जाते हैं; macOS ऐप विंडो नियंत्रणों के पास मूल साइडबार टॉगल और ट्रैकपैड स्वाइप जेस्चर जोड़ता है, साथ ही साइडबार विस्तृत होने पर उसके दाएँ किनारे पर पीछे/आगे बटन तथा समेटे होने पर मूल खोज (कमांड पैलेट) और नया-सत्र बटन देता है।

    लंबित अनुमोदन भी साइडबार फुटर के ऊपर एक ध्यानाकर्षण चिप जोड़ते हैं; संबंधित अनुमोदन पृष्ठ खोलने के लिए उसे चुनें।

    यह क्या कर सकता है (आज)

    चैट और बातचीत
    • Gateway WS (chat.history, chat.send, chat.abort, chat.inject) के माध्यम से मॉडल के साथ चैट करें। संग्रहित सत्रों में कंपोज़र अक्षम रहता है और बातचीत जारी रखने से पहले संग्रह से निकालें कार्रवाई वाला बैनर दिखाई देता है।
    • चैट इतिहास रीफ़्रेश प्रत्येक संदेश की पाठ सीमा के साथ हाल के संदेशों की सीमित विंडो का अनुरोध करता है, ताकि बड़े सत्र चैट के उपयोग योग्य होने से पहले ब्राउज़र को पूरा ट्रांसक्रिप्ट पेलोड रेंडर करने के लिए बाध्य न करें।
    • किसी सार्वजनिक GitHub इश्यू या पुल रिक्वेस्ट लिंक पर होवर करने या कीबोर्ड से फ़ोकस करने पर उसकी स्थिति, शीर्षक, लेखक, हाल की गतिविधि, टिप्पणियाँ और बदलाव के आँकड़े दिखाई देते हैं। कनेक्टेड Gateway लिंक का लक्ष्य बदले बिना सार्वजनिक मेटाडेटा प्राप्त और कैश करता है, उस स्थिति में भी जब UI किसी रिमोट Gateway का उपयोग करता है। रिपॉज़िटरी के सार्वजनिक होने की पुष्टि करने के बाद, उपलब्ध होने पर Gateway GH_TOKEN या GITHUB_TOKEN का उपयोग करता है; अन्यथा वह लंबे कैश के साथ GitHub की अनाम API का उपयोग करता है।
    • ब्राउज़र रीयलटाइम सत्रों के माध्यम से बातचीत करें। OpenAI सीधे WebRTC का उपयोग करता है, Google Live WebSocket पर सीमित एक-बार उपयोग होने वाले ब्राउज़र टोकन का उपयोग करता है, और केवल बैकएंड वाले रीयलटाइम वॉइस Plugin Gateway रिले ट्रांसपोर्ट का उपयोग करते हैं। वीडियो-सक्षम ब्राउज़र सत्र सेटिंग्स में डिवाइस-स्थानीय कैमरा चुन सकते हैं या लाइव पूर्वावलोकन से कैमरा बदल सकते हैं; ब्राउज़र Gateway के माध्यम से कैमरा वीडियो स्ट्रीम किए बिना रीयलटाइम प्रदाता के लिए JPEG फ़्रेम कैप्चर करता है। क्लाइंट-स्वामित्व वाले प्रदाता सत्र talk.client.create से शुरू होते हैं; Gateway रिले सत्र talk.session.create से शुरू होते हैं। रिले प्रदाता क्रेडेंशियल को Gateway पर रखता है, जबकि ब्राउज़र माइक्रोफ़ोन PCM को talk.session.appendAudio के माध्यम से स्ट्रीम करता है, openclaw_agent_consult प्रदाता टूल कॉल को Gateway नीति और बड़े कॉन्फ़िगर किए गए OpenClaw मॉडल के लिए talk.client.toolCall के माध्यम से अग्रेषित करता है, और सक्रिय-रन वॉइस निर्देशन को talk.client.steer या talk.session.steer के माध्यम से रूट करता है।
    • चैट में टूल कॉल और लाइव टूल आउटपुट कार्ड स्ट्रीम करें (एजेंट इवेंट)। टूल गतिविधि प्रकार-संवेदी पंक्तियों के रूप में रेंडर होती है: शेल कमांड टर्मिनल-शैली आउटपुट के साथ सिंटैक्स-हाइलाइट किया गया कमांड दिखाते हैं; समर्थित संपादन और लेखन कॉल सीमित इनलाइन डिफ़, उपलब्ध होने पर पंक्ति संख्याएँ और +added -removed आँकड़े दिखाते हैं; और लगातार कॉल "13 कमांड चलाए, 6 फ़ाइलें पढ़ीं, 9 फ़ाइलें संपादित कीं" जैसे सारांश में समेट दिए जाते हैं। रन के लाइव रहने के दौरान सबसे नया चल रहा कॉल समूह हेडर को नाम देता है। शेष आर्ग्युमेंट और कच्चा आउटपुट देखने के लिए पंक्ति विस्तृत करें।
    • जटिल टूल कॉल (लंबे शेल कमांड, बहुत से आर्ग्युमेंट वाले Plugin टूल) के लिए वैकल्पिक AI उद्देश्य शीर्षक, जिन्हें gateway.controlUi.toolTitles: true से सक्षम किया जाता है (डिफ़ॉल्ट रूप से बंद)। शीर्षक मानक उपयोगिता-मॉडल रूटिंग के माध्यम से बैच किए गए chat.toolTitles मेथड से आते हैं — स्पष्ट utilityModel (ऑपरेटर द्वारा चुना गया प्रदाता, अन्य उपयोगिता कार्यों की तरह), अन्यथा सत्र प्रदाता का घोषित छोटा-मॉडल डिफ़ॉल्ट — और प्रति एजेंट Gateway की ओर कैश होते हैं। जब ऑप्ट-इन बंद हो या कोई सस्ता मॉडल उपयोग योग्य न हो, तो पंक्तियाँ अपने नियतात्मक लेबल बनाए रखती हैं और कोई मॉडल कॉल नहीं होता।
    • मॉडल द्वारा सुझाए गए अस्थायी अनुवर्ती कार्य शुरू या खारिज करें; स्वीकार किए गए सुझाव प्रस्तावित प्रॉम्प्ट के साथ नया प्रबंधित-वर्कट्री सत्र खोलते हैं।
    • मौजूदा session.tool / टूल इवेंट डिलीवरी से लाइव टूल गतिविधि के ब्राउज़र-स्थानीय, पहले रिडैक्शन करने वाले सारांशों सहित गतिविधि टैब।
    चैनल, सत्र, मेमोरी
    • चैनल: अंतर्निहित तथा बंडल किए गए/बाहरी Plugin चैनलों की स्थिति, QR लॉगिन और प्रति-चैनल कॉन्फ़िगरेशन (channels.status, web.login.*, config.patch)।
    • चैनल जाँच रीफ़्रेश धीमी प्रदाता जाँच पूरी होने तक पिछला स्नैपशॉट दिखाई देते रहने देते हैं, और जाँच या ऑडिट के UI बजट से अधिक समय लेने पर आंशिक स्नैपशॉट को लेबल करते हैं।
    • थ्रेड ( /sessions पर एक कार्यक्षेत्र पृष्ठ, जिसके साथ वर्कट्री टैब है): डिफ़ॉल्ट रूप से कॉन्फ़िगर किए गए एजेंट के सत्र सूचीबद्ध करें, अक्सर उपयोग होने वाले सत्र पिन करें, उनके नाम बदलें, निष्क्रिय सत्र संग्रहित या पुनर्स्थापित करें, पुराने गैर-कॉन्फ़िगर एजेंट सत्र कुंजियों से फ़ॉलबैक करें, और प्रति-सत्र मॉडल/सोच/तेज़/विस्तृत/ट्रेस/रीज़निंग ओवरराइड लागू करें (sessions.list, sessions.patch)। तीन-तरफ़ा सक्रिय / संग्रहित / सभी फ़िल्टर इस पृष्ठ और साइडबार दोनों को नियंत्रित करता है; सभी संग्रहित पंक्तियों को मंद करता है और उन्हें स्पष्ट रूप से लेबल करता है। संग्रहित सत्र अपने ट्रांसक्रिप्ट बनाए रखते हैं, कभी स्वतः हटाए नहीं जाते और स्पष्ट रूप से संग्रह से निकाले या हटाए जाने तक अलग रखे रहते हैं। पंक्तियाँ उन सक्रिय सत्रों के लिए अपठित बिंदु दिखाती हैं जिनमें अंतिम बार पढ़े जाने के बाद गतिविधि हुई है, साथ ही अपठित-चिह्नित/पठित-चिह्नित कार्रवाइयाँ (sessions.patch { unread }) और एक फ़ोर्क कार्रवाई होती है, जो ट्रांसक्रिप्ट की शाखा बनाकर नया सत्र तैयार करती है (sessions.create { parentSessionKey, fork: true })। तालिका के ऊपर अवलोकन टाइलें लोड की गई सूची का सारांश देती हैं (सत्र संख्या, लाइव रन, अपठित सत्र, कुल टोकन और उपलब्ध होने पर संग्रहित संख्या), प्रत्येक पंक्ति में लाइव-रन बिंदु वाला प्रकार ग्लिफ़ होता है, स्थिति साधारण बिंदु और लेबल के रूप में रेंडर होती है, और सत्र द्वारा टोकन तथा संदर्भ आकार रिपोर्ट किए जाने पर टोकन कॉलम संदर्भ-विंडो उपयोग मीटर दिखाता है। पंक्ति प्रबंधन कार्रवाइयाँ प्रति-पंक्ति मेनू (कबाब बटन या राइट-क्लिक) में होती हैं, जो साइडबार के सत्र मेनू को प्रतिबिंबित करता है, और पंक्ति ड्रॉअर अन्य सत्र विवरणों के साथ एजेंट रनटाइम तथा रन अवधि दिखाता है।
    • मूल Claude और Codex साइडबार कैटलॉग एक समय में एक होस्ट को स्ट्रीम करते हैं, फिर Node कनेक्टिविटी में बदलाव के बाद, पृष्ठ पर फ़ोकस आने पर और दिखाई देते समय अधिकतम प्रत्येक 30 सेकंड में मिलान करते हैं। कैटलॉग में बदलाव तेज़ अनुवर्ती पास शुरू करते हैं, ताकि मूल टूल में बनाए गए सत्र Control UI को पुनः लोड किए बिना दिखाई दें। Claude Desktop पंक्तियाँ मौजूद होने पर अपना स्थानीय कस्टम-समूह लेबल भी बनाए रखती हैं; OpenClaw उस मैपिंग को Desktop के स्थानीय स्टोर से पढ़ता है और उसमें कभी लिखता नहीं है।
    • सत्र समूहीकरण: इसके अनुसार समूहित करें नियंत्रण सत्र तालिका को कस्टम समूह, चैनल, प्रकार, एजेंट या तारीख के अनुसार अनुभागों में व्यवस्थित करता है। कस्टम समूह sessions.patch (category) के माध्यम से प्रत्येक सत्र के लिए बने रहते हैं, इसलिए संदेश चैनलों (Discord, Telegram, WhatsApp, ...) से शुरू किए गए सत्र भी वर्गीकृत किए जा सकते हैं; पंक्तियों को किसी अनुभाग पर खींचकर या प्रति-पंक्ति समूह चयनकर्ता से समूह असाइन करें, और नया समूह कार्रवाई से समूह बनाएँ।
    • मेमोरी (एजेंट पृष्ठ का एक टैब, जिसका स्कोप चुने गए एजेंट तक सीमित है): Dreaming स्थिति, सक्षम/अक्षम टॉगल और ड्रीम डायरी रीडर (doctor.memory.status, doctor.memory.dreamDiary, config.patch)।
    • मेमोरी आयात करें (/memory-import, एजेंट पृष्ठ के मेमोरी टैब से पहुँचा जाता है): स्थानीय Claude Code ऑटो-मेमोरी, Codex समेकित मेमोरी या Hermes मेमोरी फ़ाइलों का पूर्वावलोकन करें और उन्हें चुने गए एजेंट कार्यक्षेत्र में कॉपी करें (migrations.memory.plan, migrations.memory.apply)।
    • ऑनबोर्डिंग मेमोरी प्रस्ताव: जब Control UI ऑनबोर्डिंग मोड में खुलता है (?onboarding=1, जिसका उपयोग Linux सहयोगी ऐप अपने प्रथम-रन इंस्टॉलेशन के बाद करता है), तो एक-पृष्ठीय डायलॉग समान योजना/लागू प्रवाह के साथ पता लगाई गई मेमोरी आयात करने का प्रस्ताव देता है; छोड़ने पर बाद में प्रवेश बिंदु के रूप में सेटिंग्स पृष्ठ उपलब्ध रहता है।
    Cron, कार्य, Plugins, Skills, डिवाइस, निष्पादन अनुमोदन
    • ऑटोमेशन (Cron जॉब): Automations/रन इतिहास टैब स्विच के ऊपर आँकड़ा कार्ड (ऑटोमेशन की संख्या, विफल ऑटोमेशन की संख्या, शेड्यूलर की स्थिति, अगला सक्रियण); Automations टैब फ़िल्टर की जा सकने वाली तालिका में जॉब सूचीबद्ध करता है (सभी/सक्रिय/रोके गए, खोज, शेड्यूल और अंतिम रन के फ़िल्टर, प्रत्येक पंक्ति का क्रिया मेनू), जिसके नीचे आरंभिक सुझाव होते हैं, और रन इतिहास टैब सभी ऑटोमेशन के हाल के रन दिखाता है (cron.*)।
    • कार्य: लिंक किए गए सत्रों और रद्द करने की सुविधा के साथ सक्रिय और हाल के बैकग्राउंड कार्यों का लाइव लेखा-जोखा (tasks.*)। चैट की बैकग्राउंड कार्य पट्टी चल रहे और पूर्ण हो चुके कार्यों को समूहित करती है; किसी पंक्ति को चुनकर उसका सीमित प्रॉम्प्ट और आउटपुट या त्रुटि सारांश देखें।
    • Plugins: इंस्टॉल की गई सूची और चयनित स्टोर ब्राउज़ करें, ClawHub में खोजें, Plugin कोड इंस्टॉल करें और हटाएँ, तथा इंस्टॉल किए गए Plugins को सक्षम या अक्षम करें (plugins.*); MCP सर्वर पंक्तियाँ कॉन्फ़िगरेशन विधियों के माध्यम से mcp.servers संपादित करती हैं।
    • Skills: स्थिति, सक्षम/अक्षम करना, इंस्टॉल करना, API कुंजी अपडेट (skills.*)।
    • डिवाइस: एक सूची युग्मित डिवाइस रिकॉर्ड, Node कैटलॉग और लाइव उपस्थिति को एक साथ जोड़ती है (device.pair.list, node.list, system-presence)। Gateway होस्ट सबसे पहले पिन किया जाता है; युग्मित क्लाइंट कनेक्शन की स्थिति, भूमिकाएँ, टोकन, क्षमताएँ और कमांड दिखाते हैं। डुप्लिकेट युग्मन एक विस्तार-योग्य समूह में सिमट जाते हैं, और N पुराने डिवाइस साफ़ करें उन ऑफ़लाइन डुप्लिकेट को सामूहिक रूप से हटाता है जिनकी एडमिन ने पुष्टि की है और जिन्हें स्वतः स्वीकृत किया गया था (मौन स्थानीय, विश्वसनीय-CIDR या SSH-सत्यापित), या जो अनुमोदन उद्गम से पहले के हैं। प्रविष्टियाँ हटाई जा सकती हैं (node.pair.remove, device.pair.remove), डिवाइस युग्मन और Node के पुनः अनुमोदन इनलाइन संभाले जाते हैं (device.pair.*, node.pair.approve/reject), और उसी कार्ड से मोबाइल सेटअप कोड बनाए जाते हैं।
    • निष्पादन अनुमोदन: exec host=gateway/node के लिए Gateway या Node की अनुमति-सूचियाँ और पूछने की नीति संपादित करें (exec.approvals.*)।
    कॉन्फ़िगरेशन
    • ~/.openclaw/openclaw.json देखें/संपादित करें (config.get, config.set)।
    • सेटिंग्स नेविगेशन Ask OpenClaw से शुरू होता है, फिर पृष्ठों को प्राथमिकता के अनुसार समूहित करता है: सबसे ऊपर सामान्य, स्वरूप और सूचनाएँ; कनेक्शन (कनेक्शन, चैनल, संचार, डिवाइस); एजेंट और टूल (एजेंट, AI और एजेंट, मॉडल प्रदाता, MCP, ऑटोमेशन, लैब्स); गोपनीयता और सुरक्षा (सुरक्षा, अनुमोदन); और सिस्टम (अवसंरचना, उन्नत, डीबग, लॉग, परिचय)। सामान्य पृष्ठ मॉडल डिफ़ॉल्ट, भाषा और Gateway होस्ट के आँकड़ों वाला एक संक्षिप्त केंद्र है; प्रत्येक अन्य सेटिंग ठीक एक पृष्ठ पर रहती है।
    • गोपनीयता और सुरक्षा: स्कीमा-समर्थित security/approvals अनुभागों के ऊपर Gateway प्रमाणीकरण, निष्पादन नीति, ब्राउज़र सक्षमता, टूल प्रोफ़ाइल, डिवाइस प्रमाणीकरण और मोबाइल युग्मन के लिए चयनित पंक्तियाँ।
    • अनुमोदन में समाधान किए गए निष्पादन, Plugin और सिस्टम-एजेंट अनुरोधों का नवीनतम-पहले क्रम में 30-दिन का इतिहास शामिल है। निर्णय, कारण, स्रोत सत्र और Gateway द्वारा रिकॉर्ड किए गए समाधानकर्ता के श्रेय की समीक्षा करने के लिए प्रकार के अनुसार फ़िल्टर करें या पुरानी पंक्तियों के पृष्ठ देखें।
    • लैब्स जारी किए गए प्रयोगात्मक स्विच उपलब्ध कराता है। Code Mode और Swarm वर्तमान प्रविष्टियाँ हैं और tools.codeMode.enabled तथा tools.swarm.enabled को तुरंत सहेजते हैं; जो प्रयोग जारी नहीं किए गए हैं वे दिखाई नहीं देते और न ही काल्पनिक कॉन्फ़िगरेशन कुंजियाँ लिखते हैं।
    • सूचनाएँ: ब्राउज़र वेब-पुश स्थिति, सदस्यता लेना/रद्द करना और एक परीक्षण प्रेषण।
    • उन्नत: प्रत्येक वह कॉन्फ़िगरेशन अनुभाग जिसका कोई चयनित स्थान नहीं है, साथ ही रॉ JSON5 संपादक (पहले सामान्य पृष्ठ का उन्नत मोड)।
    • मॉडल सेटअप (/settings/model-setup) मॉडल प्रदाता का एक उपपृष्ठ है, जिसे उसके हेडर से खोला जाता है।
    • एजेंट: प्रत्येक एजेंट के टैब (अवलोकन, फ़ाइलें, टूल, Skills, चैनल, ऑटोमेशन, मेमोरी) वाला एक सेटिंग्स पृष्ठ (सेटिंग्स → एजेंट, /settings/agents)। अवलोकन टैब एजेंट की पहचान—प्रदर्शन नाम, इमोजी और अवतार छवि—संपादित करता है; अवतार छवि को agents.update से पहले ब्राउज़र में छोटा और आकार-सीमित किया जाता है। सहेजने पर कॉन्फ़िगर किए गए पहचान फ़ील्ड संग्रहीत होते हैं और उन्हें कार्यक्षेत्र के IDENTITY.md में प्रतिबिंबित किया जाता है; कॉन्फ़िगर किए गए मान उन्हीं फ़ाइल फ़ील्ड में किए गए मैन्युअल संपादनों पर प्राथमिकता लेते हैं।
    • प्रोफ़ाइल: डिफ़ॉल्ट एजेंट की पहचान के साथ अब तक के उपयोग के आँकड़े—कुल जीवनकाल टोकन, सर्वाधिक उपयोग वाला दिन, सबसे लंबा सत्र, गतिविधि क्रम, पूरे वर्ष का टोकन हीटमैप, प्रमुख टूल और चैनल की मुख्य बातें—दिखाने वाला सेटिंग्स पृष्ठ (usage.cost, sessions.usage)।
    • MCP का एक समर्पित सेटिंग्स पृष्ठ है, जिसमें सर्वर पंक्तियाँ (ट्रांसपोर्ट, सक्षमता, OAuth/फ़िल्टर/समानांतरता सारांश), सीधे जोड़ने/सक्षम करने/अक्षम करने/हटाने के नियंत्रण, सामान्य ऑपरेटर कमांड और सीमित mcp कॉन्फ़िगरेशन संपादक शामिल हैं। एक-क्लिक कनेक्टर और खोज के लिए Plugins पृष्ठ ही मुख्य स्थान बना रहता है।
    • मॉडल प्रदाता: प्रत्येक कॉन्फ़िगर किए गए मॉडल प्रदाता को उसके ब्रांड आइकन, प्रमाणीकरण स्थिति (models.authStatus), मॉडल उपलब्धता (models.list), प्रदाता द्वारा रिपोर्ट किए जाने पर लाइव योजना/कोटा/बिलिंग डेटा (usage.status), और पिछले 30 दिनों के स्थानीय सत्र खर्च (sessions.usage) के साथ सूचीबद्ध करने वाला सेटिंग्स पृष्ठ। Refresh क्रिया क्रेडेंशियल की स्थिति और प्रदाता उपयोग को फिर से पढ़ती है।
    • कनेक्शन: Connections के अंतर्गत एक सेटिंग्स पृष्ठ, जो डैशबोर्ड के अपने Gateway लिंक—WebSocket URL, Gateway टोकन, पासवर्ड और डिफ़ॉल्ट सत्र कुंजी—के साथ नवीनतम हैंडशेक स्नैपशॉट (स्थिति, अपटाइम, टिक अंतराल, चैनलों का अंतिम रीफ़्रेश) का स्वामी है। ऑफ़लाइन लॉगिन गेट डिस्कनेक्ट स्थिति संभालता है; यह पृष्ठ कनेक्ट रहते हुए कनेक्शन संपादित करता है।
    • सत्यापन के साथ लागू करें और पुनः आरंभ करें (config.apply), फिर अंतिम सक्रिय सत्र को सक्रिय करें।
    • समवर्ती संपादनों को अधिलेखित होने से रोकने के लिए लेखन में बेस-हैश सुरक्षा शामिल है।
    • लेखन (config.set/config.apply/config.patch) सबमिट किए गए कॉन्फ़िगरेशन पेलोड में संदर्भों के लिए सक्रिय SecretRef समाधान की पूर्व-जाँच करता है; समाधान न किए जा सकने वाले सक्रिय सबमिट किए गए संदर्भ लेखन से पहले अस्वीकार कर दिए जाते हैं।
    • फ़ॉर्म सहेजते समय उन पुराने संपादित प्लेसहोल्डर को हटा देता है जिन्हें सहेजे गए कॉन्फ़िगरेशन से पुनर्स्थापित नहीं किया जा सकता, जबकि उन संपादित मानों को सुरक्षित रखता है जो अब भी सहेजे गए सीक्रेट से मैप होते हैं।
    • स्कीमा और फ़ॉर्म रेंडरिंग config.schema / config.schema.lookup से आते हैं, जिनमें फ़ील्ड title/description, मेल खाते UI संकेत, तत्काल चाइल्ड सारांश, नेस्टेड ऑब्जेक्ट/वाइल्डकार्ड/ऐरे/कंपोज़िशन Node पर दस्तावेज़ मेटाडेटा, तथा उपलब्ध होने पर Plugin और चैनल स्कीमा शामिल हैं। रॉ JSON संपादक केवल तभी उपलब्ध होता है जब स्नैपशॉट सुरक्षित रॉ राउंड-ट्रिप कर सकता हो; अन्यथा Control UI फ़ॉर्म मोड लागू करता है।
    • रॉ JSON संपादक का "Reset to saved" एक समतल स्नैपशॉट को फिर से रेंडर करने के बजाय रॉ-लेखित आकार (फ़ॉर्मेटिंग, टिप्पणियाँ, $include लेआउट) सुरक्षित रखता है, ताकि स्नैपशॉट के सुरक्षित रूप से राउंड-ट्रिप कर सकने पर बाहरी संपादन रीसेट के बाद भी बने रहें।
    • संरचित SecretRef ऑब्जेक्ट मान फ़ॉर्म टेक्स्ट इनपुट में केवल-पढ़ने योग्य रूप में रेंडर होते हैं, ताकि ऑब्जेक्ट का अनजाने में स्ट्रिंग में रूपांतरण और दूषण रोका जा सके।
    उपयोग
    • सत्र से प्राप्त टोकन और अनुमानित लागत का विश्लेषण प्रदाता बिलिंग से अलग रहता है।
    • प्रदाता कार्ड usage.status को कॉल करते हैं और कॉन्फ़िगर किए गए प्रदाता Plugins द्वारा रिपोर्ट किए गए लाइव योजना नाम, कोटा अवधि, शेष राशि, खर्च और बजट दिखाते हैं।
    • प्रदाता उपयोग की विफलता सत्र/लागत डैशबोर्ड को अवरुद्ध नहीं करती; अनुपलब्ध प्रदाता कार्ड अपनी अलग त्रुटि स्थिति दिखाते हैं।
    डीबग, लॉग, अपडेट
    • डीबग: स्थिति/स्वास्थ्य/मॉडल स्नैपशॉट, इवेंट लॉग और मैन्युअल RPC कॉल (status, health, models.list)।
    • इवेंट लॉग में Control UI रीफ़्रेश/RPC समय, धीमे चैट/कॉन्फ़िगरेशन रेंडर समय और लंबे एनीमेशन फ़्रेम या लंबे कार्यों के लिए ब्राउज़र प्रत्युत्तरशीलता प्रविष्टियाँ शामिल हैं, जब ब्राउज़र वे PerformanceObserver प्रविष्टि प्रकार उपलब्ध कराता है।
    • लॉग: फ़िल्टर/निर्यात के साथ Gateway फ़ाइल लॉग का लाइव अंतिम भाग (logs.tail)।
    • अपडेट: पुनः आरंभ रिपोर्ट के साथ पैकेज/git अपडेट और पुनः आरंभ करें (update.run), फिर दोबारा कनेक्ट होने के बाद update.status का पोल करके चल रहे Gateway संस्करण की पुष्टि करें।
    ऑटोमेशन पैनल संबंधी टिप्पणियाँ
    • किसी पंक्ति को चुनने पर पूर्ण-पृष्ठ विवरण दृश्य खुलता है, जिसके हेडर में Active/Paused स्विच और Run now होता है (उसके मेनू में नियत होने पर चलाएँ, क्लोन करें और हटाएँ); सेटिंग्स टैब ऑटोमेशन को इनलाइन संपादित करता है (प्रॉम्प्ट, विवरण, आवृत्ति, उन्नत ओवरराइड) और रन इतिहास टैब उस ऑटोमेशन के रन दिखाता है।
    • तालिका के नीचे आरंभिक ऑटोमेशन संपादन योग्य प्रॉम्प्ट और शेड्यूल के साथ निर्माण फ़ॉर्म को पहले से भर देते हैं।
    • पृथक कार्यों के लिए डिलीवरी डिफ़ॉल्ट रूप से घोषणा सारांश होती है; केवल आंतरिक रन के लिए इसे none पर बदलें।
    • announce चुने जाने पर चैनल/लक्ष्य फ़ील्ड दिखाई देते हैं।
    • Webhook मोड delivery.mode = "webhook" का उपयोग करता है, जिसमें delivery.to को एक मान्य HTTP(S) Webhook URL पर सेट किया जाता है।
    • मुख्य-सत्र कार्यों के लिए Webhook और none डिलीवरी मोड उपलब्ध हैं।
    • उन्नत संपादन नियंत्रणों में रन के बाद हटाना, एजेंट ओवरराइड साफ़ करना, Cron सटीक/क्रम-विचलन विकल्प, एजेंट मॉडल/विचार ओवरराइड और सर्वोत्तम-प्रयास डिलीवरी टॉगल शामिल हैं।
    • फ़ॉर्म सत्यापन फ़ील्ड-स्तरीय त्रुटियों के साथ इनलाइन होता है; अमान्य मान ठीक किए जाने तक सहेजें बटन अक्षम रहता है।
    • एक समर्पित bearer टोकन भेजने के लिए cron.webhookToken सेट करें; इसे छोड़ने पर Webhook बिना प्रमाणीकरण हेडर के भेजा जाता है।
    • cron.webhook एक सेवानिवृत्त पुराना फ़ॉलबैक है जिसे वर्तमान कॉन्फ़िगरेशन सत्यापन अस्वीकार करता है। उन संग्रहीत जॉब को स्पष्ट प्रति-जॉब Webhook या पूर्णता डिलीवरी में माइग्रेट करने और पुरानी कुंजी हटाने के लिए openclaw doctor --fix चलाएँ, जो अब भी notify: true का उपयोग करते हैं।

    सहायक मेमोरी आयात करें

    स्थानीय Codex या Claude Code मेमोरी को OpenClaw एजेंट में लाने के लिए SettingsImport Memory खोलें। Gateway अपने होस्ट पर समर्थित स्थानीय मेमोरी स्वयं खोजता है, इसलिए दूरस्थ Control UI ब्राउज़र कंप्यूटर के बजाय Gateway कंप्यूटर से आयात करता है।

    1. गंतव्य एजेंट चुनें।
    2. खोजे गए स्रोत संग्रहों और Markdown फ़ाइल नामों की समीक्षा करें। फ़ाइल की सामग्री योजना प्रतिक्रिया में नहीं भेजी जाती और न ही पृष्ठ पर दिखाई जाती है।
    3. आयात करने के लिए संग्रह चुनें और पुष्टि करें। लागू करने की प्रक्रिया लिखने से पहले योजना को फिर से बनाती है, ताकि पुराने चयन सुरक्षित रूप से विफल हों।
    4. यदि फ़ाइलें पहले से मौजूद हैं, तो Replace existing imports सक्षम करें, पूर्वावलोकन रीफ़्रेश करें और प्रतिस्थापन की पुष्टि करें।

    Codex केवल अपने समेकित MEMORY.md और memory_summary.md आयात करता है। Claude Code परियोजना की स्वतः-मेमोरी डायरेक्टरी और कॉन्फ़िगर किए गए autoMemoryDirectory से Markdown आयात करता है; यह इस पृष्ठ के माध्यम से सत्र, सेटिंग्स, निर्देश या क्रेडेंशियल आयात नहीं करता। फ़ाइलें चुने गए कार्यक्षेत्र में memory/imports/ के नीचे कॉपी की जाती हैं, जहाँ सक्रिय मेमोरी Plugin उन्हें इंडेक्स कर सकता है। स्रोतों को कभी बदला नहीं जाता।

    योजना बनाने और लागू करने के लिए operator.admin आवश्यक है। स्थिति मौजूद होने पर प्रत्येक लागू प्रक्रिया एक सत्यापित OpenClaw बैकअप बनाती है, एक संपादित माइग्रेशन रिपोर्ट लिखती है और मौजूदा गंतव्य फ़ाइलों को बदलने से पहले प्रत्येक आइटम का बैकअप रखती है। पथों और स्मरण व्यवहार के लिए मेमोरी का अवलोकन देखें।

    MCP पृष्ठ

    समर्पित MCP पृष्ठ mcp.servers के अंतर्गत OpenClaw द्वारा प्रबंधित MCP सर्वरों के लिए एक ऑपरेटर दृश्य है। यह स्वयं MCP ट्रांसपोर्ट आरंभ नहीं करता; सहेजे गए कॉन्फ़िगरेशन का निरीक्षण और संपादन करने के लिए इसका उपयोग करें, फिर लाइव सर्वर प्रमाण की आवश्यकता होने पर openclaw mcp doctor --probe का उपयोग करें।

    सामान्य कार्यप्रवाह:

    1. साइडबार से MCP खोलें।
    2. कुल, सक्षम, OAuth और फ़िल्टर किए गए सर्वरों की संख्या के लिए सारांश कार्ड देखें।
    3. ट्रांसपोर्ट, सक्षमता, प्रमाणीकरण, फ़िल्टर, टाइमआउट और कमांड संकेतों के लिए प्रत्येक सर्वर पंक्ति की समीक्षा करें।
    4. सीधे MCP पृष्ठ पर सर्वर जोड़ें, सक्षम करें, अक्षम करें या हटाएँ। Streamable HTTP, SSE या stdio को स्पष्ट रूप से चुनें; stdio कमांड पंक्तियाँ उद्धृत आर्ग्युमेंट स्वीकार करती हैं, जैसे रिक्त स्थान वाले पथ। एक-क्लिक कनेक्टर और खोज के लिए Plugins पृष्ठ का उपयोग करें।
    5. पर्यावरण चर, कार्यशील डायरेक्टरी, हेडर, TLS/mTLS पथ, OAuth मेटाडेटा, टूल फ़िल्टर और Codex प्रोजेक्शन मेटाडेटा जैसे उन्नत सर्वर फ़ील्ड के लिए स्कोप किए गए mcp कॉन्फ़िग अनुभाग को संपादित करें।
    6. कॉन्फ़िग लिखने के लिए Save या चल रहे Gateway द्वारा बदला हुआ कॉन्फ़िग लागू कराने के लिए Save & Publish का उपयोग करें।
    7. स्थिर निदान, लाइव प्रमाण या कैश किए गए रनटाइम को हटाने के लिए टर्मिनल से openclaw mcp status --verbose, openclaw mcp doctor --probe या openclaw mcp reload चलाएँ।

    पृष्ठ रेंडर करने से पहले क्रेडेंशियल वाले URL-जैसे मानों को संशोधित करता है और कमांड स्निपेट में सर्वर नामों को उद्धृत करता है, ताकि कॉपी किए गए कमांड रिक्त स्थान या शेल मेटाकैरेक्टर के साथ भी काम करें। पूर्ण CLI और कॉन्फ़िग संदर्भ: MCP

    गतिविधि टैब

    गतिविधि टैब Settings › System में Logs और Debug के पास स्थित है। यह लाइव टूल गतिविधि के लिए एक अस्थायी, ब्राउज़र-स्थानीय पर्यवेक्षक है, जो उसी Gateway session.tool / टूल इवेंट स्ट्रीम से प्राप्त होता है जिससे Chat टूल कार्ड संचालित होते हैं। यह कोई अन्य Gateway इवेंट परिवार, एंडपॉइंट, स्थायी गतिविधि स्टोर, मेट्रिक्स फ़ीड या बाहरी पर्यवेक्षक स्ट्रीम नहीं जोड़ता।

    गतिविधि प्रविष्टियाँ केवल स्वच्छ किए गए सारांश और संशोधित, संक्षिप्त किए गए आउटपुट पूर्वावलोकन रखती हैं। टूल आर्ग्युमेंट के मान गतिविधि स्थिति में संग्रहीत नहीं किए जाते; UI बताता है कि आर्ग्युमेंट छिपे हुए हैं और केवल आर्ग्युमेंट फ़ील्ड की संख्या दर्ज करता है। इन-मेमोरी सूची वर्तमान ब्राउज़र टैब के साथ चलती है, Control UI में नेविगेशन के दौरान बनी रहती है और पृष्ठ रीलोड, सत्र बदलने या Clear करने पर रीसेट हो जाती है।

    ऑपरेटर टर्मिनल

    डॉक किया जा सकने वाला ऑपरेटर टर्मिनल डिफ़ॉल्ट रूप से अक्षम होता है। इसे सक्षम करने के लिए gateway.terminal.enabled: true सेट करें और Gateway पुनः आरंभ करें। टर्मिनल को operator.admin कनेक्शन की आवश्यकता होती है और यह सक्रिय एजेंट कार्यस्थान में होस्ट PTY खोलता है। नए टैब वर्तमान में चुने गए चैट एजेंट का अनुसरण करते हैं।

    डॉक को टॉगल करने के लिए Ctrl + backtick का उपयोग करें। लेआउट नीचे और दाईं ओर डॉकिंग का समर्थन करता है, ब्राउज़र व्यूपोर्ट के साथ आकार बदलता है और कई शेल टैब बनाए रखता है। gateway.terminal.enabled और वैकल्पिक gateway.terminal.shell ओवरराइड के लिए Gateway कॉन्फ़िगरेशन देखें।

    स्वामी द्वारा अधिकृत, सैंडबॉक्स-रहित एजेंट लंबे या इंटरैक्टिव कार्य के लिए terminal टूल का उपयोग कर सकते हैं, जिसे ऑपरेटर को देखना चाहिए। प्रत्येक टूल कॉल एजेंट के अपने Gateway PTY खोल, पढ़, लिख, उनका आकार बदल, बंद या सूचीबद्ध कर सकती है। नए सत्र डिफ़ॉल्ट रूप से सह-संलग्न Control UI टैब खोलते हैं, ताकि एजेंट और ऑपरेटर आउटपुट साझा करें और दोनों में से कोई भी टाइप या आकार बदल सके। एजेंट की पहुँच सटीक-सत्र तक सीमित होती है: कोई एजेंट ऑपरेटर द्वारा बनाए गए टर्मिनल या किसी अन्य एजेंट सत्र द्वारा खोले गए टर्मिनल को पढ़ या नियंत्रित नहीं कर सकता।

    एक या अधिक फ़ाइलें सक्रिय टर्मिनल पर खींचें, या फ़ाइलें चुनने के लिए पेपरक्लिप बटन का उपयोग करें। OpenClaw प्रत्येक फ़ाइल को PTY के स्वामी वाली मशीन पर स्टेज करता है और कर्सर पर शेल-उद्धृत निरपेक्ष पथ पेस्ट करता है; यह कभी Enter नहीं दबाता या इनपुट निष्पादित नहीं करता। एक संक्षिप्त बैच संकेतक वर्तमान फ़ाइल और पूर्ण की गई फ़ाइलों की संख्या दिखाता है। रद्द करने पर पथ पेस्ट किए बिना शेष बैच रुक जाता है; विफल स्थानांतरण दिखाई देता रहता है, ताकि पूर्ण की गई फ़ाइलों को दोबारा अपलोड किए बिना उसी फ़ाइल से पुनः प्रयास किया जा सके। चित्र, PDF, आर्काइव और अन्य फ़ाइल प्रकार प्रति फ़ाइल 16 MiB तक स्वीकार किए जाते हैं। स्टेज की गई फ़ाइलें POSIX होस्ट पर निजी सिस्टम-अस्थायी डायरेक्टरी (डायरेक्टरी मोड 0700, फ़ाइल मोड 0600) या Windows पर उपयोगकर्ता-प्रोफ़ाइल ACL सीमा के अंतर्गत किसी डायरेक्टरी का उपयोग करती हैं और उनमें 24-घंटे का सफ़ाई टाइमर होता है, इसलिए जिसे रखना हो उसे स्थानांतरित या कॉपी कर लें।

    पथ प्रविष्टि PowerShell, cmd.exe और पहचाने गए POSIX शेल (sh, Bash, Dash, Ash, Ksh, Zsh और Fish), जिसमें Windows पर Git Bash भी शामिल है, का समर्थन करती है। अन्य शेल ओवरराइड अस्वीकार कर दिए जाते हैं, क्योंकि उनके उद्धरण नियमों का सुरक्षित रूप से अनुमान नहीं लगाया जा सकता; नेटिव WSL टर्मिनल और Linux अपलोड पथों के लिए Gateway को WSL के भीतर चलाएँ। % या ! वाले cmd.exe पथ भी अस्वीकार कर दिए जाते हैं, क्योंकि वह शेल दोहरे उद्धरण चिह्नों के भीतर भी उन वर्णों का विस्तार करता है।

    सत्र साइडबार में खोजे गए Codex और Claude Code सत्र उसी टर्मिनल पैनल में अपने नेटिव CLI में खुल सकते हैं। सामान्य पंक्ति पर क्लिक करने से codex resume या claude --resume खुलवाने के लिए Settings › Chat में Open Codex/Claude threads in को Terminal पर सेट करें; डिफ़ॉल्ट केवल-पढ़ने योग्य OpenClaw व्यूअर ही रहता है। किसी पंक्ति का राइट-क्लिक या कबाब मेनू हमेशा दोनों विकल्प प्रस्तुत करता है और सत्र योग्य होने पर व्यूअर हेडर में Open in terminal शामिल होता है।

    योग्यता प्रति सत्र और प्रति होस्ट निर्धारित होती है। Gateway-स्थानीय सत्र Gateway होस्ट पर प्रदाता-स्वामित्व वाला रिज़्यूम कमांड आरंभ करते हैं। युग्मित-Node सत्र स्वामी Node पर अनुमत-सूचीबद्ध प्रदाता कमांड आरंभ करते हैं और केवल उस PTY के आउटपुट, इनपुट और आकार-बदलाव इवेंट रिले करते हैं; इससे सामान्य Node शेल उजागर नहीं होता और न ही ब्राउज़र द्वारा दिए गए कमांड स्वीकार किए जाते हैं। फ़ाइल अपलोड अलग, आकार-सीमित terminal.upload Node कमांड का उपयोग करते हैं और पहले से खुले टर्मिनल सत्र तक सीमित रहते हैं। जब वह कमांड पहली बार दिखाई दे, तब Node युग्मन अपग्रेड को स्वीकृत करें। जो Node मेल खाने वाले टर्मिनल-रिज़्यूम कमांड का विज्ञापन नहीं करते, जिनमें डुप्लेक्स स्ट्रीमिंग के बिना एम्बेड किए गए वर्कर ब्रिज भी शामिल हैं, वे व्यूअर उपलब्ध रखते हैं और टर्मिनल खोलना अनुपलब्ध दिखाते हैं; पुराने Node अब भी टर्मिनल चला सकते हैं, लेकिन खींची गई फ़ाइलें प्राप्त नहीं कर सकते।

    कनेक्शन-स्वामित्व वाले सत्र डिस्कनेक्ट होने पर भी बने रहते हैं: पृष्ठ रीलोड, लैपटॉप स्लीप या नेटवर्क में क्षणिक व्यवधान सत्र को समाप्त करने के बजाय Gateway पर अलग कर देता है और पुनः कनेक्ट होने पर वही ब्राउज़र टैब हाल का आउटपुट दोबारा चलाते हुए पुनः संलग्न हो जाता है। अलग किए गए कनेक्शन-स्वामित्व वाले सत्र gateway.terminal.detachedSessionTimeoutSeconds के बाद समाप्त कर दिए जाते हैं (डिफ़ॉल्ट 300 सेकंड; 0 डिस्कनेक्ट पर समाप्ति को पुनर्स्थापित करता है)। इनमें से किसी सत्र को संलग्न करना tmux-शैली का नियंत्रण-अधिग्रहण बना रहता है।

    एजेंट-स्वामित्व वाले सत्र किसी ब्राउज़र कनेक्शन से बंधे नहीं होते। terminal.attach स्वामित्व लिए बिना प्रत्येक ब्राउज़र को व्यूअर के रूप में जोड़ता है और व्यूअर टैब बंद करने पर केवल वह ब्राउज़र अलग होता है। PTY तब तक बना रहता है, जब तक स्वामी एजेंट उसे बंद नहीं करता, उसकी प्रक्रिया समाप्त नहीं होती, नीति उसे अक्षम नहीं करती या Gateway बंद नहीं होता। terminal.list प्रत्येक प्रविष्टि को कनेक्शन- या एजेंट-स्वामित्व वाली के रूप में चिह्नित करता है और terminal.text किसी एडमिन कनेक्शन को संलग्न हुए बिना हाल का सादा-पाठ आउटपुट पढ़ने देता है।

    टर्मिनल /?view=terminal पर पूर्ण-स्क्रीन, केवल-टर्मिनल दस्तावेज़ के रूप में भी उपलब्ध है। iOS और Android ऐप अपने Terminal स्क्रीन में इस पृष्ठ को एम्बेड करते हैं और संग्रहीत Gateway क्रेडेंशियल का पुनः उपयोग करते हैं; उपलब्धता समान gateway.terminal.enabled और operator.admin गेट का अनुसरण करती है और कनेक्ट किया गया Gateway टर्मिनल उपलब्ध न कराने पर पृष्ठ एक सूचना दिखाता है।

    ब्राउज़र पैनल

    Control UI में डॉक किया जा सकने वाला ब्राउज़र पैनल शामिल है, जो Gateway-नियंत्रित ब्राउज़र—वही जिसे एजेंट ब्राउज़र टूल के माध्यम से चलाते हैं—को किसी भी सामान्य वेब ब्राउज़र में रेंडर करता है; नेटिव वेबव्यू की आवश्यकता नहीं होती। यह तब दिखाई देता है, जब कनेक्ट किया गया Gateway किसी operator.admin कनेक्शन को browser.request का विज्ञापन करता है; थ्रेड कार्यस्थान रेल में ग्लोब बटन इसे टॉगल करता है। पैनल टैब, संपादन योग्य URL बार, पीछे/आगे/रीलोड और अपने ब्राउज़र में खोलने के विकल्प के साथ लाइव पृष्ठ स्नैपशॉट दिखाता है, दाईं ओर या नीचे डॉक होता है और क्लिक, व्हील स्क्रॉलिंग तथा बुनियादी टाइपिंग को रिमोट पृष्ठ पर अग्रेषित करता है।

    दो कैप्चर मोड एजेंट के लिए पृष्ठ संदर्भ पैकेज करते हैं:

    • एनोटेट (पेंसिल): पृष्ठ पर मुक्तहस्त चिह्नांकन बनाएँ। Send to chat स्ट्रोक को स्क्रीनशॉट में संयोजित करता है, चित्र को सक्रिय चैट कंपोज़र से संलग्न करता है और पृष्ठ का URL, शीर्षक तथा प्रत्येक चिह्नित क्षेत्र बताने वाला प्रॉम्प्ट पहले से भरता है, ताकि एजेंट को ठीक-ठीक पता हो कि आपने किसे घेरा है।
    • निरीक्षण (पॉइंटर): कर्सर के नीचे मौजूद एलिमेंट (सिलेक्टर, सुलभ नाम, भूमिका, आकार) देखने के लिए उस पर होवर करें; उसी कंपोज़र प्रवाह से उस एलिमेंट का विवरण और हाइलाइट किया गया स्क्रीनशॉट भेजने के लिए क्लिक करें। निरीक्षण, व्हील स्क्रॉलिंग और पीछे/आगे के लिए browser.evaluateEnabled आवश्यक है (डिफ़ॉल्ट रूप से चालू)।

    macOS ऐप डैशबोर्ड में क्लिक किए गए लिंक के लिए अपना नेटिव लिंक-ब्राउज़र साइडबार बनाए रखता है; ब्राउज़र पैनल वहाँ भी काम करता है और अन्य सभी प्लेटफ़ॉर्म पर पृष्ठों को एनोटेट करने का यही तरीका है।

    चैट व्यवहार

    Send and history semantics
    • chat.send नॉन-ब्लॉकिंग है: यह { runId, status: "started" } के साथ तुरंत पुष्टि करता है और प्रतिक्रिया chat इवेंट के माध्यम से स्ट्रीम होती है। विश्वसनीय Control UI क्लाइंट स्थानीय निदान के लिए वैकल्पिक ACK समय-संबंधी मेटाडेटा भी प्राप्त कर सकते हैं।
    • चैट अपलोड में चित्रों के साथ गैर-वीडियो फ़ाइलें स्वीकार की जाती हैं। चित्र मूल इमेज पथ बनाए रखते हैं; अन्य फ़ाइलें प्रबंधित मीडिया के रूप में संग्रहीत होती हैं और इतिहास में अटैचमेंट लिंक के रूप में दिखाई जाती हैं।
    • उसी idempotencyKey के साथ दोबारा भेजने पर, चलने के दौरान { status: "in_flight" } और पूरा होने के बाद { status: "ok" } लौटता है।
    • UI सुरक्षा के लिए chat.history प्रतिक्रियाओं का आकार सीमित होता है। ट्रांसक्रिप्ट प्रविष्टियाँ बहुत बड़ी होने पर, Gateway लंबे टेक्स्ट फ़ील्ड को छोटा कर सकता है, भारी मेटाडेटा ब्लॉक हटा सकता है और अत्यधिक बड़े संदेशों को प्लेसहोल्डर ([chat.history omitted: message too large]) से बदल सकता है।
    • जब chat.history में कोई दृश्यमान सहायक संदेश छोटा किया गया हो, तो साइड रीडर आवश्यकता होने पर sessionKey, सक्रिय agentId और ट्रांसक्रिप्ट messageId के अनुसार chat.message.get के माध्यम से पूरी, प्रदर्शन-सामान्यीकृत ट्रांसक्रिप्ट प्रविष्टि प्राप्त कर सकता है। यदि Gateway तब भी अधिक सामग्री नहीं लौटा सकता, तो रीडर छोटे किए गए पूर्वावलोकन को चुपचाप दोहराने के बजाय स्पष्ट अनुपलब्ध स्थिति दिखाता है।
    • सहायक द्वारा बनाए गए चित्र प्रबंधित मीडिया संदर्भों के रूप में सहेजे जाते हैं और प्रमाणीकृत Gateway मीडिया URL के माध्यम से वापस उपलब्ध कराए जाते हैं, इसलिए पुनः लोड करना चैट इतिहास प्रतिक्रिया में कच्चे base64 इमेज पेलोड के बने रहने पर निर्भर नहीं करता।
    • chat.history को रेंडर करते समय, Control UI दृश्यमान सहायक टेक्स्ट से केवल प्रदर्शन हेतु इनलाइन डायरेक्टिव टैग (उदाहरण के लिए [[reply_to_*]] और [[audio_as_voice]]), सादे-टेक्स्ट वाले टूल-कॉल XML पेलोड (<tool_call>...</tool_call>, <function_call>...</function_call>, <tool_calls>...</tool_calls>, <function_calls>...</function_calls> और छोटे किए गए टूल-कॉल ब्लॉक सहित), तथा लीक हुए ASCII/पूर्ण-चौड़ाई मॉडल नियंत्रण टोकन हटा देता है। यह उन सहायक प्रविष्टियों को छोड़ देता है जिनका संपूर्ण दृश्यमान टेक्स्ट केवल सटीक मौन टोकन NO_REPLY / no_reply या Heartbeat अभिस्वीकृति टोकन HEARTBEAT_OK होता है।
    • सक्रिय प्रेषण और अंतिम इतिहास रीफ़्रेश के दौरान, यदि chat.history थोड़ी देर के लिए पुराना स्नैपशॉट लौटाता है, तो चैट दृश्य स्थानीय आशावादी उपयोगकर्ता/सहायक संदेशों को दृश्यमान रखता है; Gateway इतिहास के अद्यतित होते ही प्रामाणिक ट्रांसक्रिप्ट उन स्थानीय संदेशों को बदल देता है।
    • लाइव chat इवेंट डिलीवरी स्थिति हैं, जबकि chat.history टिकाऊ सत्र ट्रांसक्रिप्ट से दोबारा बनाया जाता है। टूल-अंतिम इवेंट के बाद Control UI इतिहास को पुनः लोड करता है और केवल एक छोटी आशावादी अंतिम शृंखला को मर्ज करता है; ट्रांसक्रिप्ट सीमा का दस्तावेज़ीकरण WebChat में किया गया है।
    • chat.inject सत्र ट्रांसक्रिप्ट में एक सहायक नोट जोड़ता है और केवल UI अपडेट के लिए chat इवेंट प्रसारित करता है (कोई एजेंट रन नहीं, कोई चैनल डिलीवरी नहीं)।
    • साइडबार प्रत्येक लोड किए गए सक्रिय सत्र को एजेंट अनुभाग और पिन किए गए/चैनल/कार्य/कस्टम/चैट बकेट के अनुसार सूचीबद्ध करता है, जिसमें एक ही नया सत्र क्रिया ड्राफ़्ट संवाद खोलती है। दृश्यमान पंक्ति खोलने पर केवल हाइलाइट स्थानांतरित होता है। सत्रों को पिन करने के लिए Pinned पर, या स्थानांतरित करने के लिए किसी कस्टम समूह अथवा Chats पर छोड़ा जा सकता है; कस्टम समूह संक्षिप्त किए जा सकते हैं और ड्रैग करके पुनः क्रमित किए जा सकते हैं, समूह नाम और क्रम Gateway के माध्यम से सिंक होते हैं, और संक्षिप्त स्थिति ब्राउज़र में बनी रहती है। किसी नए डैशबोर्ड सत्र को उसके पहले गैर-कमांड संदेश से एसिंक्रोनस रूप से एक संक्षिप्त जनरेट किया गया शीर्षक मिलता है; स्पष्ट नाम और प्रमाणीकृत प्रेषक पहचान अलग रहते हैं, इसलिए खाता नाम कभी भी जनरेट किए गए शीर्षक के रूप में उपयोग नहीं होते। इस अलग मॉडल कॉल को कम लागत वाले मॉडल पर रूट करने के लिए agents.defaults.utilityModel (या agents.entries.*.utilityModel) सेट करें; यदि वह विशिष्ट मॉडल विफल होता है, तो शीर्षक निर्माण प्राथमिक मॉडल के साथ एक बार पुनः प्रयास करता है। किसी अन्य एजेंट अनुभाग को विस्तृत करने पर खुली चैट छोड़े बिना उस एजेंट के सत्र ब्राउज़ किए जा सकते हैं।
    • थ्रेड खोज कमांड पैलेट (⌘K, या ऊपरी-बाएँ नियंत्रण क्लस्टर में खोज बटन) में होती है: क्वेरी टाइप करने पर यह सभी एजेंटों में मेल खाने वाले पृष्ठों की सीमित संख्या का अनुसरण करती है, आंतरिक चाइल्ड/Cron पंक्तियों को फ़िल्टर करती है और नेविगेशन कमांड के पास दृश्यमान मिलान सूचीबद्ध करती है। Threads पृष्ठ फ़िल्टर के साथ संपूर्ण खोज योग्य सूची बनाए रखता है।
    • प्रत्येक साइडबार पंक्ति सीधे पिन की सुविधा के साथ अपठित स्थिति, नाम बदलने, फ़ोर्क, समूहीकरण, संग्रह और हटाने के लिए पूर्ण संदर्भ मेन्यू रखती है। एक से अधिक चुनी गई पंक्तियों (Cmd/Ctrl-क्लिक, श्रेणियों के लिए Shift-क्लिक) को अपठित स्थिति, समूहीकरण, संग्रह और हटाने वाला बैच मेन्यू मिलता है; जब तक प्रत्येक चयनित सत्र संग्रहण योग्य न हो, बैच संग्रह/हटाना अक्षम रहता है। किसी सक्रिय रन और एजेंट के मुख्य सत्र को संग्रहित नहीं किया जा सकता। वर्तमान में चयनित सत्र को संग्रहित या हटाने पर Chat उस एजेंट के मुख्य सत्र पर वापस चला जाता है।
    • macOS ऐप में, OpenClaw चिह्न साइडबार की एक पंक्ति लेने के बजाय विंडो नियंत्रणों के पास सामान्यतः खाली रहने वाली नेटिव टाइटलबार पट्टी का उपयोग करता है।
    • डेस्कटॉप चौड़ाई पर, चैट नियंत्रण एक संक्षिप्त पंक्ति में बने रहते हैं और ट्रांसक्रिप्ट में नीचे स्क्रॉल करते समय संक्षिप्त हो जाते हैं; ऊपर स्क्रॉल करने, शीर्ष पर लौटने या नीचे तक पहुँचने पर नियंत्रण पुनः दिखाई देते हैं।
    • जब अन्य लोग वही सत्र देख रहे हों, तो सत्र हेडर कार्यक्षेत्र चिप के पास चेहरों का एक छोटा समूह दिखाता है; यह अधिकतम चार दर्शक अवतार और अतिरिक्त संख्या सूचीबद्ध करता है तथा आपके अकेले होने पर गायब हो जाता है।
    • लगातार आने वाले समान, केवल-टेक्स्ट संदेश संख्या बैज के साथ एक बबल के रूप में रेंडर होते हैं। चित्र, अटैचमेंट, टूल आउटपुट या कैनवास पूर्वावलोकन वाले संदेश संक्षिप्त नहीं किए जाते।
    • उपयोगकर्ता-संदेश बबल में ट्रांसक्रिप्ट क्रियाएँ होती हैं: होवर रिवाइंड बटन ("Don't ask again" विकल्प वाले पुष्टिकरण पॉपओवर के साथ) तथा राइट-क्लिक यहाँ तक रिवाइंड करें और यहाँ से फ़ोर्क करें। रिवाइंड सत्र को उस संदेश से ठीक पहले की स्थिति पर पुनर्निर्देशित करता है और उसका टेक्स्ट संपादन तथा दोबारा भेजने के लिए कंपोज़र में लौटाता है (sessions.rewind, operator.admin); फ़ोर्क संदेश से पहले सक्रिय-पथ प्रीफ़िक्स से एक नया सत्र बनाता है, उसे खोलता है और उसके कंपोज़र में वही टेक्स्ट भरता है (sessions.fork, operator.write)। एजेंट के कार्यरत होने पर दोनों क्रियाएँ व्याख्यात्मक टूलटिप के साथ अक्षम रहती हैं, केवल सहेजे गए उपयोगकर्ता संदेशों पर लागू होती हैं और उन सत्रों के लिए अस्वीकार की जाती हैं जिनकी बातचीत किसी बाहरी एजेंट हार्नेस के स्वामित्व में होती है। रिवाइंड केवल चैट संदर्भ को स्थानांतरित करता है — फ़ाइलें और टूल के अन्य दुष्प्रभाव वापस नहीं किए जाते — और रिवाइंड से पहले का ट्रांसक्रिप्ट केवल-जोड़ने योग्य सत्र स्टोर में सुरक्षित रहता है। जब उस स्टोर में कई ट्रांसक्रिप्ट शाखाएँ होती हैं, तो चैट टाइटल बार प्रत्येक शाखा के नवीनतम संदेश, संदेश संख्या और हाल की स्थिति वाला शाखा मेन्यू दिखाता है; किसी निष्क्रिय शाखा को चुनने पर वर्तमान सत्र उस सुरक्षित पथ पर वापस चला जाता है (sessions.branches.list, operator.read; sessions.branches.switch, operator.admin)। एजेंट के कार्यरत होने पर शाखा बदलना भी अनुपलब्ध रहता है और पहले से सक्रिय शाखा चुनना RPC सीमा पर टाइप की गई नो-ऑप त्रुटि है। उपयोगकर्ता बबल पर अलग छिपाने की क्रिया किसी संदेश को केवल वर्तमान ब्राउज़र में छिपाती है; संदेश ट्रांसक्रिप्ट में बना रहता है और एजेंट उसे तब भी देखता है।
    • जब किसी सत्र का चेकआउट GitHub रिपॉज़िटरी की गैर-डिफ़ॉल्ट शाखा पर होता है, तो चैट दृश्य कंपोज़र के ऊपर पुल रिक्वेस्ट चिप पिन करता है: PR संख्या, रिपॉज़िटरी, शाखा, डिफ़ गणना, CI पिल और ड्राफ़्ट/मर्ज/बंद स्थिति, जिनमें से प्रत्येक PR से लिंक होता है। पंक्ति अधिकतम दो चिप दिखाती है — लाइव (खुले/ड्राफ़्ट) PR पहले — और "Show more" बटन संक्षिप्त किए गए मर्ज/बंद इतिहास को प्रकट करता है। CI पिल एक छोटा CI निगरानी पॉपओवर खोलता है, जिसमें पास/विफल/चल रही/छोड़ी गई जाँचों की संख्या और PR के जाँच पृष्ठ का लिंक होता है। पहचान सर्वर-साइड पर controlUi.sessionPullRequests के माध्यम से चलती है, जो सेट होने पर Gateway के GH_TOKEN/GITHUB_TOKEN का पुनः उपयोग करती है। GitHub API दर सीमा पूरी होने पर, चिप अंतिम ज्ञात स्थिति बनाए रखते हैं और चेतावनी दिखाते हैं कि स्थिति पुरानी हो सकती है; किसी चिप को खारिज करने पर वह वर्तमान ब्राउज़र प्रोफ़ाइल में उस सत्र के लिए छिप जाती है। कोई PR मौजूद होने से पहले, पंक्ति स्वयं शाखा दिखाती है — रिपॉज़िटरी, शाखा नाम और डिफ़ॉल्ट-शाखा मर्ज बेस के सापेक्ष डिफ़ का +/− आकार (कमिट किया गया और बिना कमिट वाला कार्य)। पुश की गई शाखा में तुलना के लिए कमिट होने पर, पंक्ति एक Create PR बटन जोड़ती है जो GitHub का नया-पुल-रिक्वेस्ट पृष्ठ खोलता है; उससे पहले, बदली हुई फ़ाइलों (कमिट की गई, बिना कमिट वाली या अनट्रैक की गई) वाले सत्र को तब भी बटन के बिना पंक्ति मिलती है। खुला या ड्राफ़्ट PR मौजूद होने पर पंक्ति स्वयं छिप जाती है। शाखा पंक्ति केवल स्थानीय git से आती है, इसलिए GitHub की दर सीमा लागू होने पर भी उपलब्ध रहती है और वही पुरानी-स्थिति चेतावनी दिखाती है, क्योंकि सीमा रीसेट होने तक "कोई PR नहीं मिला" पर भरोसा नहीं किया जा सकता।
    • सत्र डिफ़ पैनल दिखाता है कि किसी सत्र के चेकआउट ने वास्तव में क्या बदला है: कार्यक्षेत्र रेल या चैट टाइटल बार का शाखा बटन विवरण पैनल खोलता है, जिसमें चेकआउट के डिफ़ॉल्ट-शाखा मर्ज बेस के सापेक्ष शाखा, बिना कमिट और अनट्रैक किए गए कार्य का प्रति-फ़ाइल डिफ़ होता है — स्थिति बिंदु, नाम-परिवर्तन तीर, प्रति-फ़ाइल +/− गणना, संक्षिप्त की जा सकने वाली फ़ाइलें और हंक के बीच "N unmodified lines" चिह्न। डिफ़ की गणना sessions.diff Gateway विधि (operator.read स्कोप) के माध्यम से सर्वर-साइड पर की जाती है; बाइनरी और अत्यधिक बड़ी फ़ाइलें केवल आँकड़े वाली प्रविष्टियों में बदल जाती हैं, और बटन केवल तभी दिखाई देता है जब कनेक्टेड Gateway sessions.diff को विज्ञापित करता है।
    • प्रत्येक Chat पेन में टाइटल बार होता है। सत्र का नाम बदलने के लिए सत्र शीर्षक पर क्लिक करें; कार्यक्षेत्र चिप चेकआउट पथ या शाखा को कॉपी करती है और होस्ट फ़ाइल मैनेजर में स्थानीय Gateway कार्यक्षेत्र दिखा सकती है। रिमोट और exec-node सत्र कॉपी क्रियाएँ बनाए रखते हैं लेकिन दिखाने की क्रिया छिपाते हैं।
    • प्रत्येक Chat पेन में थ्रेड कार्यक्षेत्र रेल थ्रेड फ़ाइलें, प्रोजेक्ट फ़ाइलें और आर्टिफ़ैक्ट सूचीबद्ध करती है। डिफ़ॉल्ट रूप से यह पेन के दाएँ किनारे पर डॉक होती है; इसे नीचे ले जाने के लिए इसका हेडर ड्रैग करें (या डॉक बटन का उपयोग करें), और यह चुनाव वर्तमान ब्राउज़र प्रोफ़ाइल में संग्रहीत होता है। संक्षिप्त रेल बिल्कुल भी जगह नहीं लेती: इसे ⇧⌘B या टाइटल बार में फ़ाइल टॉगल से फिर खोलें, जिस पर बदली हुई फ़ाइलों की संख्या का बैज होता है। अलग फ़ाइल, टूल और Canvas विवरण पैनल अप्रभावित रहता है।
    • चैट में किसी फ़ाइल संदर्भ, विस्तृत read/edit/write टूल कार्ड में फ़ाइल पथ या कार्यक्षेत्र रेल में फ़ाइल पंक्ति पर क्लिक करने से फ़ाइल विवरण पैनल खुलता है: सिंटैक्स हाइलाइटिंग, पंक्ति संख्याओं, पंक्ति पर जाने, फ़ाइल के भीतर खोज, कॉपी क्रियाओं और बाहरी संपादक में खोलने वाले मेन्यू के साथ CodeMirror-आधारित कोड दृश्य। जब Gateway किसी operator.admin कनेक्शन के लिए sessions.files.set विज्ञापित करता है, तो पैनल डर्टी ट्रैकिंग और Cmd/Ctrl-S से सहेजने वाला Edit मोड जोड़ता है; बिना सहेजे ड्राफ़्ट वर्तमान ब्राउज़र टैब में फ़ाइल, पैनल और सत्र नेविगेशन के दौरान तब तक बने रहते हैं, जब तक उन्हें स्पष्ट रूप से सहेजा या छोड़ा न जाए। सेव sessions.files.get द्वारा लौटाए गए सामग्री हैश पर compare-and-swap होते हैं: यदि फ़ाइल लोड होने के बाद डिस्क पर बदल गई हो (उदाहरण के लिए क्योंकि एजेंट काम करता रहा), तो पैनल Reload (नवीनतम सामग्री लें) और Overwrite (स्थानीय संपादन रखें) क्रियाओं वाली टकराव सूचना दिखाता है। लेखन, पठन के समान fs-सुरक्षित कार्यक्षेत्र सुरक्षा उपायों — पथ परिसीमन, सिमलिंक/हार्डलिंक अस्वीकृति और 256 KB UTF-8 सीमा — से होकर जाता है और केवल मौजूदा फ़ाइलों को अधिलेखित करता है; संपादक उन्हें कभी बनाता या हटाता नहीं है।
    • प्रत्येक Chat पेन में पृष्ठभूमि कार्य रेल वर्तमान एजेंट के पृष्ठभूमि कार्य और उप-एजेंट सूचीबद्ध करती है (एजेंट के अनुसार स्कोप किया गया tasks.list, जिसे task इवेंट लाइव रखते हैं): चल रहे कार्य में लाइव बीता हुआ टाइमर, टूल-उपयोग संख्या, वर्तमान में उपयोग हो रहा टूल और रोकने का नियंत्रण दिखता है; संक्षिप्त किया जा सकने वाला समाप्त अनुभाग रन अवधियाँ जोड़ता है; और View transcript लिंक पेन में कार्य का चाइल्ड सत्र खोलता है। इसे टाइटल-बार गतिविधि टॉगल से खोलें; कार्य स्नैपशॉट पहले से लोड होता है, इसलिए रेल को पहले खोले बिना भी उस पर चल रहे कार्यों की संख्या का बैज होता है। Tasks पृष्ठ सभी एजेंटों का संपूर्ण लेखा बना रहता है।
    • वर्कस्पेस रेल, बैकग्राउंड टास्क रेल और विवरण पैनल विंडो के बजाय प्रत्येक पेन की अपनी चौड़ाई के अनुसार अनुकूलित होते हैं: संकरे पेन या कॉम्पैक्ट विंडो में दोनों रेल नीचे की पट्टियों के रूप में दिखाई देते हैं (पेन के चौड़ा होने तक साइड-डॉक नियंत्रण छिपे रहते हैं; जब केवल एक कॉलम समा सकता है, तो साइड स्लॉट पर पहला अधिकार वर्कस्पेस रेल का रहता है), और विवरण पैनल थ्रेड के साथ एक ही पंक्ति साझा करने के बजाय क्षैतिज आकार-परिवर्तन हैंडल के साथ उसके नीचे व्यवस्थित होता है। फ़ोन के आकार के व्यूपोर्ट में विवरण पैनल अब भी पूर्ण-स्क्रीन खुलता है।
    • चैट हेडर के मॉडल और थिंकिंग पिकर sessions.patch के माध्यम से सक्रिय सेशन को तुरंत पैच करते हैं; वे स्थायी सेशन ओवरराइड हैं, केवल एक टर्न के लिए भेजने के विकल्प नहीं।
    • स्प्लिट व्यू: इसे चैट टाइटल बार से खोलें (थ्रेड डिफ़, बैकग्राउंड टास्क और थ्रेड फ़ाइल टॉगल के पास), फिर जितने पेन समा सकें, उनके लिए सक्रिय पेन को दाईं ओर या नीचे विभाजित करें। प्रत्येक पेन का अपना थ्रेड, ट्रांसक्रिप्ट, कंपोज़र और टूल स्ट्रीम होता है।
    • screen टूल वाले एजेंट, सक्षम Control UI के कनेक्ट रहने के दौरान समान पेन, साइडबार, टर्मिनल, ब्राउज़र, फ़ोकस और नेविगेशन परिवर्तन का अनुरोध कर सकते हैं। प्रोटोकॉल v1 प्रत्येक कनेक्टेड सक्षम Control UI पर कमांड लागू करता है; स्क्रीन देखें।
    • किसी सेशन को पेन में खोलने के लिए उसे साइडबार से चैट में खींचें। एक एनिमेटेड ड्रॉप पूर्वावलोकन ज़ोन के बीच सरकता है और परिणाम को लेबल करता है—नए पेन द्वारा घेरे जाने वाले सटीक आधे भाग पर "Split", पूरे पेन पर "Open here"—और ड्रॉप एकल-पेन मोड से भी काम करते हैं।
    • सक्रिय स्प्लिट पेन साइडबार चयन और URL को नियंत्रित करता है। उसके टाइटल बार में स्प्लिट और बंद करने के नियंत्रण जुड़ जाते हैं; डिवाइडर कॉलम और एक के ऊपर एक रखे पेन का आकार बदलते हैं, और ब्राउज़र रीलोड के बाद भी लेआउट को स्थानीय रूप से संग्रहीत रखता है।
    • संकरी स्क्रीन पर स्प्लिट व्यू लेआउट बनाए रखता है, लेकिन केवल सक्रिय पेन को रेंडर करता है, जिसमें बंद करने के नियंत्रण वाला उसका हेडर भी शामिल है।
    • यदि आप उसी सेशन के मॉडल पिकर में किया गया परिवर्तन सहेजे जाते समय संदेश भेजते हैं, तो कंपोज़र chat.send को कॉल करने से पहले उस सेशन पैच की प्रतीक्षा करता है, ताकि भेजने के लिए चयनित मॉडल का उपयोग हो।
    • /new टाइप करने पर New Chat की तरह ही नया डैशबोर्ड सेशन बनता है और उस पर स्विच हो जाता है, सिवाय इसके कि जब session.dmScope: "main" कॉन्फ़िगर हो और वर्तमान पैरेंट एजेंट का मुख्य सेशन हो; तब यह मुख्य सेशन को उसी स्थान पर रीसेट करता है। /reset टाइप करने पर वर्तमान सेशन के लिए Gateway का स्पष्ट इन-प्लेस रीसेट बना रहता है।
    • चैट मॉडल पिकर Gateway के कॉन्फ़िगर किए गए मॉडल व्यू का अनुरोध करता है। यदि agents.defaults.modelPolicy.allow रिक्त नहीं है, तो वही नीति पिकर को संचालित करती है, जिसमें वे provider/* प्रविष्टियाँ भी शामिल हैं जो प्रदाता-स्कोप वाले कैटलॉग को डायनेमिक बनाए रखती हैं। अन्यथा पिकर कॉन्फ़िगर की गई प्रविष्टियों के साथ उपयोग योग्य प्रमाणीकरण वाले प्रदाता दिखाता है; agents.defaults.models के अंतर्गत उपनाम और सेटिंग इसे प्रतिबंधित नहीं करते। पूरा कैटलॉग view: "all" के साथ डीबग models.list RPC के माध्यम से उपलब्ध रहता है।
    • जब Gateway की नई सेशन-उपयोग रिपोर्ट में वर्तमान कॉन्टेक्स्ट टोकन शामिल होते हैं, तो चैट कंपोज़र टूलबार उपयोग किए गए प्रतिशत के साथ कॉन्टेक्स्ट उपयोग की एक छोटी रिंग दिखाता है। वर्तमान कॉन्टेक्स्ट विंडो, नवीनतम रन की टोकन संख्या और अनुमानित कुल लागत, प्रदाता/मॉडल पहचान तथा रिपोर्ट किए जाने पर नवीनतम प्रदाता प्रतिक्रिया की इनपुट/आउटपुट/कैश लागत का विवरण देखने के लिए रिंग खोलें। अधिक कॉन्टेक्स्ट दबाव होने पर रिंग चेतावनी शैली अपना लेती है और अनुशंसित Compaction स्तरों पर एक कॉम्पैक्ट बटन दिखाती है, जो सामान्य सेशन Compaction पथ चलाता है। Gateway द्वारा फिर से नया उपयोग रिपोर्ट किए जाने तक पुराने टोकन स्नैपशॉट छिपे रहते हैं।
    Talk मोड (ब्राउज़र रियलटाइम)

    Talk मोड एक पंजीकृत रियलटाइम वॉइस प्रदाता का उपयोग करता है। OpenAI को talk.realtime.provider: "openai" के साथ एक openai API-कुंजी प्रोफ़ाइल, talk.realtime.providers.openai.apiKey, या OPENAI_API_KEY से कॉन्फ़िगर करें। OpenAI Realtime सार्वजनिक Platform API का उपयोग करता है और इसके लिए Platform API कुंजी आवश्यक है; Codex OAuth लॉगिन इस सतह की आवश्यकता पूरी नहीं करता। Google को talk.realtime.provider: "google" के साथ talk.realtime.providers.google.apiKey से कॉन्फ़िगर करें। ब्राउज़र को कभी भी कोई मानक प्रदाता API कुंजी प्राप्त नहीं होती: OpenAI को WebRTC के लिए एक अल्पकालिक Realtime क्लाइंट सीक्रेट मिलता है, और Google Live को ब्राउज़र WebSocket सत्र के लिए एक बार उपयोग किया जा सकने वाला सीमित Live API प्रमाणीकरण टोकन मिलता है, जिसमें निर्देश और टूल घोषणाएँ Gateway द्वारा टोकन में लॉक कर दी जाती हैं। जो प्रदाता केवल बैकएंड रियलटाइम ब्रिज उपलब्ध कराते हैं, वे Gateway रिले ट्रांसपोर्ट के माध्यम से चलते हैं, इसलिए क्रेडेंशियल और विक्रेता सॉकेट सर्वर-साइड पर रहते हैं, जबकि ब्राउज़र ऑडियो प्रमाणीकृत Gateway RPC के माध्यम से जाता है। Realtime सत्र प्रॉम्प्ट Gateway द्वारा संयोजित किया जाता है; talk.client.create कॉलर द्वारा दिए गए निर्देश ओवरराइड स्वीकार नहीं करता।

    स्थायी प्रदाता, मॉडल, वॉइस, ट्रांसपोर्ट, रीजनिंग प्रयास, सटीक VAD थ्रेशोल्ड, मौन अवधि और प्रीफ़िक्स पैडिंग के डिफ़ॉल्ट Settings → Communications → Talk में होते हैं; उन्हें बदलने के लिए operator.admin एक्सेस आवश्यक है। Gateway रिले कॉन्फ़िगर करने से बैकएंड रिले पथ अनिवार्य हो जाता है; WebRTC कॉन्फ़िगर करने पर सत्र का स्वामित्व क्लाइंट के पास रहता है और यदि प्रदाता ब्राउज़र सत्र नहीं बना सकता, तो रिले पर चुपचाप फ़ॉलबैक करने के बजाय यह विफल हो जाता है।

    Talk नियंत्रण स्वयं कंपोज़र टूलबार में माइक्रोफ़ोन बटन है। इसके कैरेट में System default और ब्राउज़र द्वारा उपलब्ध कराया गया प्रत्येक माइक्रोफ़ोन सूचीबद्ध होता है, जिसमें USB, Bluetooth और वर्चुअल इनपुट शामिल हैं। चुनी गई डिवाइस ID ब्राउज़र में ही रहती है और कभी Gateway को नहीं भेजी जाती; यदि वही डिवाइस गायब हो जाती है, तो Talk किसी अन्य माइक्रोफ़ोन से चुपचाप रिकॉर्ड करने के बजाय आपसे दूसरा इनपुट चुनने को कहता है। Talk के सक्रिय रहने पर माइक्रोफ़ोन बटन एक पिल में बदल जाता है, जो लाइव इनपुट-स्तर मीटर दिखाता है; उस पर क्लिक करने से वॉइस इनपुट रुक जाता है और उस पर होवर करने से स्टॉप ग्लिफ़ दिखाई देता है। जब कोई रियलटाइम टूल कॉल talk.client.toolCall के माध्यम से कॉन्फ़िगर किए गए बड़े मॉडल से परामर्श कर रही होती है, तब स्क्रीन रीडर Connecting voice input..., Listening..., या Asking OpenClaw... की घोषणा करते हैं। चल रही एजेंट प्रतिक्रिया को रोकने के लिए पिल के बगल में अलग चौकोर Stop नियंत्रण रहता है।

    वीडियो Talk OpenAI Realtime WebRTC और Google Live ब्राउज़र सत्रों के लिए उपलब्ध है। कैमरा बटन पर क्लिक करें, कैमरा और माइक्रोफ़ोन एक्सेस की अनुमति दें और स्थानीय पूर्वावलोकन की पुष्टि करें। जब describe_view दृश्य संदर्भ का अनुरोध करता है, तो OpenAI अपने ब्राउज़र डेटा चैनल पर एक सीमित JPEG फ़्रेम भेजता है। Google Live ब्राउज़र से सीधे प्रदाता को प्रति सेकंड अधिकतम एक फ़्रेम की समर्थित दर पर सीमित JPEG फ़्रेम भेजता है और describe_view फ़ंक्शन कॉल का उत्तर कैमरा-स्ट्रीम स्थिति से देता है। कैमरा फ़्रेम कभी Gateway से होकर नहीं जाते। Talk रोकने पर पूर्वावलोकन बंद हो जाता है और दोनों मीडिया ट्रैक रिलीज़ हो जाते हैं। प्रदाता वायर अनुबंधों के लिए Google की Live API क्षमताएँ और फ़ंक्शन-कॉलिंग मार्गदर्शिका देखें।

    मेंटेनर लाइव स्मोक: OPENAI_API_KEY=... GEMINI_API_KEY=... node --import tsx scripts/dev/realtime-talk-live-smoke.ts OpenAI बैकएंड WebSocket ब्रिज, OpenAI ब्राउज़र WebRTC SDP एक्सचेंज, JPEG फ़्रेम और describe_view फ़ंक्शन राउंडट्रिप सहित Google Live सीमित-टोकन ब्राउज़र सेटअप, और नकली माइक्रोफ़ोन मीडिया सहित Gateway रिले ब्राउज़र अडैप्टर का सत्यापन करता है। कमांड केवल प्रदाता स्थिति प्रिंट करता है और सीक्रेट लॉग नहीं करता।

    रोकना और निरस्त करना
    • Stop पर क्लिक करें। सटीक स्थानीय रन ID वाले रन chat.abort को कॉल करते हैं; जब चयनित-सत्र स्थिति सक्रिय कार्य की रिपोर्ट करती है, लेकिन Control UI के पास कोई स्थानीय रन ID नहीं होती, तो इसके बजाय यह sessions.abort को कॉल करता है। गैर-ग्लोबल सत्रों के लिए, वह चयनित-सत्र पथ कतारबद्ध फ़ॉलो-अप भी हटा देता है, ताकि वे रोकने के बाद कार्य को दोबारा शुरू न कर सकें।
    • रन सक्रिय होने के दौरान सामान्य फ़ॉलो-अप Gateway के प्रभावी messages.queue मोड का उपयोग करते हैं। steer उन्हें चल रहे टर्न में इंजेक्ट करता है; अन्य मोड ब्राउज़र की टिकाऊ कतारबद्ध डिलीवरी बनाए रखते हैं। स्टीयरिंग अस्वीकार होने पर भी उसी कतार का फ़ॉलबैक उपयोग होता है। किसी कतारबद्ध संदेश को मैन्युअल रूप से इंजेक्ट करने के लिए उस पर Steer क्लिक करें।
    • Settings → Appearance → Chat → Follow-ups while the agent is working वर्तमान ब्राउज़र के लिए उस सर्वर डिफ़ॉल्ट को ओवरराइड कर सकता है। पृष्ठ ओवरराइड को स्पष्ट रूप से चिह्नित करता है और Reset to server default विकल्प देता है। Steer into the active run फ़ॉलो-अप तुरंत भेजता है, जबकि Queue until the run ends उन्हें रन समाप्त होने तक रोके रखता है।
    • आउट-ऑफ़-बैंड निरस्त करने के लिए /stop (या stop, stop action, stop run, stop openclaw, please stop जैसे स्वतंत्र निरस्तीकरण वाक्यांश) टाइप करें।
    • chat.abort उस सत्र के सभी सक्रिय रन निरस्त करने के लिए { sessionKey } (कोई runId नहीं) का समर्थन करता है। स्थानीय रन ID न होने पर Control UI sessions.abort का उपयोग करता है।
    निरस्तीकरण के बाद आंशिक सामग्री बनाए रखना
    • जब कोई रन निरस्त किया जाता है, तब भी सहायक का आंशिक टेक्स्ट UI में दिखाया जा सकता है।
    • बफ़र किया गया आउटपुट मौजूद होने पर Gateway निरस्त किए गए सहायक के आंशिक टेक्स्ट को ट्रांस्क्रिप्ट इतिहास में बनाए रखता है।
    • बनाए रखी गई प्रविष्टियों में निरस्तीकरण मेटाडेटा शामिल होता है, ताकि ट्रांस्क्रिप्ट उपभोक्ता निरस्तीकरण के आंशिक आउटपुट को सामान्य पूर्णता आउटपुट से अलग पहचान सकें।

    कनेक्शन टूटना और पुनः कनेक्ट होना

    सत्र स्थापित होने के बाद Gateway कनेक्शन टूटने से आप लॉग आउट नहीं होते। क्लाइंट द्वारा बैकऑफ़ (800 ms से 15 s तक) के साथ स्वचालित रूप से पुनः प्रयास किए जाने के दौरान डैशबोर्ड दिखाई देता रहता है और शीर्ष बार के नीचे एक तैरता हुआ एम्बर "Gateway कनेक्शन टूट गया — पुनः कनेक्ट हो रहा है…" पिल दिखाई देता है। कनेक्शन वापस आने तक लाइव अपडेट और रियलटाइम/सत्र कार्रवाइयाँ रुक जाती हैं; पिल में Retry now तुरंत प्रयास करने के लिए बाध्य करता है। चैट संपादन योग्य रहती है: सामान्य टेक्स्ट और अटैचमेंट भेजने की कार्रवाइयाँ वर्तमान टैब के Gateway/सत्र-स्कोप वाले ब्राउज़र स्टोरेज में रखी जाती हैं, पुनः कनेक्शन की प्रतीक्षा में दिखाई जाती हैं और Gateway वापस आने पर स्वचालित रूप से भेज दी जाती हैं। ऑफ़लाइन रहने के दौरान लाइव नियंत्रण और स्लैश कमांड अनुपलब्ध रहते हैं, सिवाय इसके कि Stop पुनः चलाने के लिए सटीक स्थानीय रन ID को कतारबद्ध कर सकता है। केवल-सत्र स्टॉप को पुनः नहीं चलाया जाता, क्योंकि कनेक्शन वापस आने से पहले उस सत्र में नया कार्य शुरू हो सकता है।

    जब इस ब्राउज़र में पहले से क्रेडेंशियल मौजूद हों (कॉन्फ़िगर किया गया टोकन/पासवर्ड या स्वीकृत डिवाइस टोकन), तो पहली बार खोलने और पुनः लोड करने पर लॉगिन गेट की क्षणिक झलक दिखाने के बजाय कनेक्शन स्थापित होने तक एक छोटा एनिमेटेड OpenClaw चिह्न दिखाई देता है। लॉगिन गेट केवल तभी दिखाई देता है, जब अभी तक कोई क्रेडेंशियल संग्रहीत न हों या Gateway उन्हें सक्रिय रूप से अस्वीकार कर दे (गलत टोकन/पासवर्ड, निरस्त पेयरिंग)—ऐसी स्थितियाँ जिनमें प्रतीक्षा करने के बजाय आपका इनपुट आवश्यक होता है।

    PWA इंस्टॉलेशन और वेब पुश

    Control UI में एक manifest.webmanifest और एक सर्विस वर्कर शामिल है, इसलिए आधुनिक ब्राउज़र इसे स्टैंडअलोन PWA के रूप में इंस्टॉल कर सकते हैं। वेब पुश Gateway को सूचनाओं के साथ इंस्टॉल किए गए PWA को सक्रिय करने देता है, भले ही टैब या ब्राउज़र विंडो खुली न हो।

    macOS ऐप के अंदर, Notifications सेटिंग पृष्ठ ब्राउज़र पुश के बजाय ऐप की मूल सूचना अनुमति दिखाता है, क्योंकि ऐप सूचनाएँ मूल रूप से वितरित करता है।

    यदि OpenClaw अपडेट के ठीक बाद पृष्ठ Protocol mismatch दिखाता है, तो पहले openclaw dashboard के साथ डैशबोर्ड दोबारा खोलें और हार्ड-रिफ़्रेश करें। यदि यह फिर भी विफल हो, तो डैशबोर्ड ओरिजिन का साइट डेटा साफ़ करें या निजी ब्राउज़र विंडो में परीक्षण करें; कोई पुराना टैब या ब्राउज़र सर्विस-व worker कैश नए Gateway के विरुद्ध अपडेट से पहले वाला Control UI बंडल चलाता रह सकता है।

    सतह यह क्या करता है
    ui/public/manifest.webmanifest PWA मैनिफ़ेस्ट। इसके पहुँच योग्य होते ही ब्राउज़र "Install app" का विकल्प देते हैं।
    ui/public/sw.js push इवेंट और सूचना क्लिक संभालने वाला सर्विस वर्कर।
    state/openclaw.sqliteweb_push_vapid_keys वेब पुश पेलोड पर हस्ताक्षर करने के लिए उपयोग की जाने वाली स्वतः-जनित VAPID कुंजी-जोड़ी।
    state/openclaw.sqliteweb_push_subscriptions बनाए रखे गए ब्राउज़र सदस्यता एंडपॉइंट, कुंजियाँ और पंजीकरण टाइमस्टैम्प।

    सेवानिवृत्त push/vapid-keys.json और push/web-push-subscriptions.json स्टोर से अपग्रेड को openclaw doctor --fix द्वारा आयात किया जाता है। वह मरम्मत चलाने से पहले Gateway रोकें, ताकि कोई पुरानी प्रक्रिया आयात के दौरान सेवानिवृत्त स्थिति को दोबारा न बना सके। अपग्रेड के बाद वेब पुश का उपयोग करने से पहले मरम्मत चलाएँ; जब तक कोई सेवानिवृत्त स्रोत या बाधित Doctor दावा मौजूद है, तब तक पंजीकरण, डिलीवरी, हटाना और कुंजी समाधान आगे बढ़ने से इनकार करते हैं। Gateway रनटाइम केवल SQLite को पढ़ता और लिखता है।

    जब आप कुंजियों को स्थिर रखना चाहते हैं (मल्टी-होस्ट डिप्लॉयमेंट, सीक्रेट रोटेशन या परीक्षण), तब Gateway प्रक्रिया पर एनवायरनमेंट वेरिएबल के माध्यम से VAPID कुंजी-जोड़ी ओवरराइड करें:

    • OPENCLAW_VAPID_PUBLIC_KEY
    • OPENCLAW_VAPID_PRIVATE_KEY
    • OPENCLAW_VAPID_SUBJECT (डिफ़ॉल्ट https://openclaw.ai)

    Control UI ब्राउज़र सदस्यताओं को पंजीकृत और परीक्षण करने के लिए इन स्कोप-गेटेड Gateway विधियों का उपयोग करता है:

    • push.web.vapidPublicKey सक्रिय VAPID सार्वजनिक कुंजी प्राप्त करता है।
    • push.web.subscribe एक endpoint के साथ keys.p256dh/keys.auth पंजीकृत करता है।
    • push.web.unsubscribe पंजीकृत एंडपॉइंट हटाता है।
    • push.web.test कॉलर की सदस्यता को एक परीक्षण सूचना भेजता है।

    होस्ट किए गए एम्बेड

    सहायक संदेश [embed ...] शॉर्टकोड के साथ होस्ट की गई वेब सामग्री को इनलाइन रेंडर कर सकते हैं। iframe सैंडबॉक्स नीति gateway.controlUi.embedSandbox द्वारा नियंत्रित होती है:

    मुख्य show_widget टूल किसी टूल कॉल से सीधे स्व-निहित SVG या HTML रेंडर करता है। ब्राउज़र और समर्थित मूल चैट क्लाइंट inline-widgets Gateway क्षमता की घोषणा करते हैं, और चैट इतिहास पुनः लोड होने पर परिणामी Canvas दस्तावेज़ उपलब्ध रहता है। Discord Activities, Discord पर यही टूल नाम उपलब्ध कराती हैं; अन्य चैनल से शुरू किए गए रन इसे प्राप्त नहीं करते।

    सख्त

    होस्ट किए गए एम्बेड के अंदर स्क्रिप्ट निष्पादन अक्षम करता है।

    स्क्रिप्ट (डिफ़ॉल्ट)

    ओरिजिन आइसोलेशन बनाए रखते हुए इंटरैक्टिव एम्बेड की अनुमति देता है; सामान्यतः स्व-निहित ब्राउज़र गेम/विजेट के लिए पर्याप्त है।

    विश्वसनीय

    समान-साइट दस्तावेज़ों के लिए allow-scripts के ऊपर allow-same-origin जोड़ता है, जिन्हें जानबूझकर अधिक शक्तिशाली विशेषाधिकारों की आवश्यकता होती है।

    json5
    {  gateway: {    controlUi: {      embedSandbox: "scripts",    },  },}

    पूर्ण बाहरी http(s) एम्बेड URL डिफ़ॉल्ट रूप से अवरुद्ध रहते हैं। [embed url="https://..."] को तृतीय-पक्ष पृष्ठ लोड करने देने के लिए gateway.controlUi.allowExternalEmbedUrls: true सेट करें।

    चैट ट्रांस्क्रिप्ट लेआउट

    चैट ट्रांसक्रिप्ट कंपोज़र के अनुरूप एक केंद्रित, सुपाठ्य फ़्रेम का उपयोग करता है। Assistant और टूल आउटपुट बाईं ओर संरेखित रहते हैं, जबकि आपके अपने संदेश उस फ़्रेम के भीतर दाईं ओर संरेखित रहते हैं। बहु-उपयोगकर्ता सत्रों में (उदाहरण के लिए, किसी चैनल Plugin से रिले की गई समूह चैट), अन्य पहचाने गए प्रतिभागियों के संदेश लेखक के अवतार, नाम और प्रत्येक पहचान के लिए स्थिर रंग के साथ बाईं ओर संरेखित होकर रेंडर होते हैं, ताकि केवल साइन-इन किए हुए दर्शक के संदेश ही "मेरे" प्रतीत हों। जब दो या अधिक पहचाने गए प्रतिभागी मौजूद होते हैं, तो Assistant के उत्तरों में एक छोटा "नाम को उत्तर दिया जा रहा है" चिह्न होता है, जो उस प्रतिभागी का नाम बताता है जिसके संदेश ने यह टर्न शुरू किया। स्थानीय स्लैश-कमांड आउटपुट जैसी सिस्टम प्रविष्टियाँ बिना अवतार वाली केंद्रित सूचना पंक्तियों के रूप में रेंडर होती हैं।

    चैट संदेश की चौड़ाई

    चौड़े मॉनिटर के उपयोगकर्ता सेटिंग्स → चैट → संदेश की चौड़ाई के अंतर्गत ट्रांसक्रिप्ट की चौड़ाई बदल सकते हैं। यह प्राथमिकता उस ब्राउज़र के स्थानीय स्टोरेज में बनी रहती है। समर्थित रूपों में 960px या 82% जैसी साधारण लंबाइयाँ और प्रतिशत, साथ ही सीमित min(...), max(...), clamp(...), calc(...), और fit-content(...) चौड़ाई एक्सप्रेशन शामिल हैं।

    Tailnet एक्सेस (अनुशंसित)

    एकीकृत Tailscale Serve (वरीय)

    Gateway को लूपबैक पर रखें और Tailscale Serve को HTTPS के माध्यम से उसका प्रॉक्सी बनाने दें:

    bash
    openclaw gateway --tailscale serve

    https://<magicdns>/ (या आपका कॉन्फ़िगर किया हुआ gateway.controlUi.basePath) खोलें।

    डिफ़ॉल्ट रूप से, जब gateway.auth.allowTailscale, true होता है, तब Control UI/WebSocket Serve अनुरोध Tailscale पहचान हेडर (tailscale-user-login) के माध्यम से प्रमाणित हो सकते हैं। OpenClaw, x-forwarded-for पते को tailscale whois से रिज़ॉल्व करके और उसे हेडर से मिलाकर पहचान सत्यापित करता है, और इन्हें केवल तब स्वीकार करता है जब अनुरोध Tailscale के x-forwarded-* हेडर के साथ लूपबैक पर पहुँचता है। ब्राउज़र डिवाइस पहचान वाले Control UI ऑपरेटर सत्रों के लिए, यह सत्यापित Serve पथ डिवाइस-पेयरिंग की राउंड ट्रिप भी छोड़ देता है; डिवाइस-रहित ब्राउज़र और Node-भूमिका कनेक्शन अब भी सामान्य डिवाइस जाँच का पालन करते हैं। यदि आप Serve ट्रैफ़िक के लिए भी स्पष्ट साझा-सीक्रेट क्रेडेंशियल आवश्यक बनाना चाहते हैं, तो gateway.auth.allowTailscale: false सेट करें, फिर gateway.auth.mode: "token" या "password" का उपयोग करें।

    उस एसिंक्रोनस Serve पहचान पथ के लिए, समान क्लाइंट IP और प्रमाणीकरण दायरे के विफल प्रमाणीकरण प्रयासों को दर-सीमा राइट से पहले क्रमबद्ध किया जाता है। इसलिए समान ब्राउज़र से एक साथ होने वाले अमान्य पुनः प्रयासों में, समानांतर रूप से प्रतिस्पर्धा करने वाले दो साधारण बेमेल के बजाय दूसरे अनुरोध पर retry later दिखाई दे सकता है।

    Tailnet से बाइंड करें + टोकन

    bash
    openclaw gateway --bind tailnet --token "$(openssl rand -hex 32)"

    http://<tailscale-ip>:18789/ (या आपका कॉन्फ़िगर किया हुआ gateway.controlUi.basePath) खोलें।

    मेल खाने वाला साझा सीक्रेट UI सेटिंग्स में पेस्ट करें (connect.params.auth.token या connect.params.auth.password के रूप में भेजा जाता है)।

    असुरक्षित HTTP

    यदि आप डैशबोर्ड को साधारण HTTP (http://<lan-ip> या http://<tailscale-ip>) पर खोलते हैं, तो ब्राउज़र एक असुरक्षित संदर्भ में चलता है और WebCrypto को ब्लॉक करता है। डिफ़ॉल्ट रूप से, OpenClaw डिवाइस पहचान के बिना Control UI कनेक्शन ब्लॉक करता है

    समर्थित डिवाइस-रहित अपवाद gateway.auth.mode: "trusted-proxy" के माध्यम से सफल ऑपरेटर Control UI प्रमाणीकरण है। डिवाइस पहचान अक्षम करने वाला कोई स्थायी कॉन्फ़िगरेशन स्विच नहीं है।

    अनुशंसित समाधान: HTTPS (Tailscale Serve) का उपयोग करें या UI को स्थानीय रूप से https://<magicdns>/ (Serve) या http://127.0.0.1:18789/ (Gateway होस्ट पर) खोलें।

    विश्वसनीय प्रॉक्सी संबंधी टिप्पणी
    • सफल विश्वसनीय-प्रॉक्सी प्रमाणीकरण डिवाइस पहचान के बिना ऑपरेटर Control UI सत्रों को प्रवेश दे सकता है।
    • यह Node-भूमिका Control UI सत्रों तक विस्तारित नहीं होता।
    • समान-होस्ट लूपबैक रिवर्स प्रॉक्सी अब भी विश्वसनीय-प्रॉक्सी प्रमाणीकरण को संतुष्ट नहीं करते; विश्वसनीय प्रॉक्सी प्रमाणीकरण देखें।

    HTTPS सेटअप मार्गदर्शन के लिए Tailscale देखें।

    सामग्री सुरक्षा नीति

    Control UI एक सख्त img-src नीति के साथ आता है: केवल समान-ओरिजिन एसेट, data: URL और स्थानीय रूप से जनरेट किए गए blob: URL की अनुमति है। दूरस्थ http(s) और प्रोटोकॉल-सापेक्ष इमेज URL ब्राउज़र द्वारा अस्वीकार कर दिए जाते हैं और कभी नेटवर्क फ़ेच आरंभ नहीं करते।

    व्यवहार में:

    • सापेक्ष पथों (उदाहरण के लिए /avatars/<id>) के अंतर्गत सर्व किए गए अवतार और इमेज अब भी रेंडर होते हैं, जिनमें वे प्रमाणित अवतार रूट भी शामिल हैं जिन्हें UI फ़ेच करके स्थानीय blob: URL में बदलता है।
    • इनलाइन data:image/... URL अब भी रेंडर होते हैं।
    • Control UI द्वारा बनाए गए स्थानीय blob: URL अब भी रेंडर होते हैं।
    • GitHub लिंक पूर्वावलोकन अवतारों को Gateway, GitHub के निश्चित अवतार होस्ट से फ़ेच करके सीमित data: URL के रूप में लौटाता है; ऑपरेटर का ब्राउज़र कभी दूरस्थ अवतार होस्ट से संपर्क नहीं करता।
    • चैनल मेटाडेटा द्वारा दिए गए दूरस्थ अवतार URL, Control UI के अवतार हेल्पर पर हटा दिए जाते हैं और उनकी जगह अंतर्निर्मित लोगो/बैज लगा दिया जाता है, ताकि कोई समझौता-ग्रस्त या दुर्भावनापूर्ण चैनल ऑपरेटर के ब्राउज़र से मनमाने दूरस्थ इमेज फ़ेच न करवा सके।

    यह हमेशा सक्रिय रहता है और कॉन्फ़िगर करने योग्य नहीं है।

    अवतार रूट प्रमाणीकरण

    जब Gateway प्रमाणीकरण कॉन्फ़िगर होता है, तो Control UI अवतार एंडपॉइंट को शेष API के समान Gateway टोकन की आवश्यकता होती है:

    • GET /avatar/<agentId> केवल प्रमाणित कॉलर को अवतार इमेज लौटाता है। GET /avatar/<agentId>?meta=1 समान नियम के अंतर्गत अवतार मेटाडेटा लौटाता है।
    • किसी भी रूट के अप्रमाणित अनुरोध अस्वीकार कर दिए जाते हैं (सहवर्ती Assistant-मीडिया रूट के अनुरूप), इसलिए अवतार रूट उन होस्ट पर एजेंट पहचान लीक नहीं कर सकता जो अन्यथा सुरक्षित हैं।
    • Control UI अवतार फ़ेच करते समय Gateway टोकन को bearer हेडर के रूप में अग्रेषित करता है और प्रमाणित blob URL का उपयोग करता है, ताकि इमेज डैशबोर्ड में अब भी रेंडर हो।

    यदि आप Gateway प्रमाणीकरण अक्षम करते हैं (साझा होस्ट पर अनुशंसित नहीं), तो शेष Gateway के अनुरूप अवतार रूट भी अप्रमाणित हो जाता है।

    Assistant मीडिया रूट प्रमाणीकरण

    जब Gateway प्रमाणीकरण कॉन्फ़िगर होता है, तो Assistant के स्थानीय-मीडिया पूर्वावलोकन दो-चरणीय रूट का उपयोग करते हैं:

    • GET /__openclaw__/assistant-media?meta=1&source=<path> को सामान्य Control UI ऑपरेटर प्रमाणीकरण की आवश्यकता होती है; उपलब्धता जाँचते समय ब्राउज़र Gateway टोकन को bearer हेडर के रूप में भेजता है।
    • सफल मेटाडेटा प्रतिक्रियाओं में उस सटीक स्रोत पथ तक सीमित अल्पकालिक mediaTicket शामिल होता है।
    • ब्राउज़र द्वारा रेंडर किए गए इमेज, ऑडियो, वीडियो और दस्तावेज़ URL सक्रिय Gateway टोकन या पासवर्ड के बजाय mediaTicket=<ticket> का उपयोग करते हैं। टिकट शीघ्र समाप्त हो जाता है और किसी भिन्न स्रोत को अधिकृत नहीं कर सकता।

    इससे मीडिया रेंडरिंग ब्राउज़र के मूल मीडिया एलिमेंट के अनुकूल रहती है और पुनः उपयोग योग्य Gateway क्रेडेंशियल दृश्यमान मीडिया URL में नहीं आते।

    अनुमोदन लिंक

    ऑपरेटर अनुमोदन सूचनाएँ आरक्षित ${controlUiBasePath}/approve/{approvalId} नेमस्पेस के अंतर्गत सर्व किए गए स्वतंत्र अनुमोदन दस्तावेज़ से डीप-लिंक कर सकती हैं (उदाहरण के लिए /approve/<approvalId>, या कॉन्फ़िगर किए गए आधार पथ के साथ /openclaw/approve/<approvalId>)। URL अनुमोदन के जीवनकाल तक स्थिर रहता है और आपके अपने डिवाइसों के बीच अग्रेषित करना सुरक्षित है: यह अनुमोदन की पहचान करता है, उसे कभी अधिकृत नहीं करता।

    • एक-सेगमेंट वाला /approve/<approvalId> नेमस्पेस Gateway द्वारा Plugin HTTP रूटों से पहले सभी HTTP विधियों के लिए आरक्षित होता है, इसलिए कोई Plugin रूट कभी अनुमोदन दस्तावेज़ को छिपा या इंटरसेप्ट नहीं कर सकता।
    • अनुमोदन दस्तावेज़ खोलने के लिए शेष Control UI के समान Gateway प्रमाणीकरण (टोकन/पासवर्ड, Tailscale Serve पहचान या विश्वसनीय-प्रॉक्सी पहचान) आवश्यक है; क्रेडेंशियल कभी अनुमोदन URL का हिस्सा नहीं होते।
    • जब Control UI सर्विंग अक्षम होती है, तो नेमस्पेस के अनुरोध Plugin हैंडलर तक पहुँचने के बजाय 404 लौटाते हैं।
    • अनुमोदन दस्तावेज़ पर साइन इन करना उस पृष्ठ के लिए अस्थायी होता है: यह उसी ब्राउज़र में पूर्ण Control UI द्वारा सहेजे गए Gateway चयन या सेटिंग्स को ओवरराइट नहीं करता।

    Gateway, dist/control-ui से स्थिर फ़ाइलें सर्व करता है:

    bash
    pnpm ui:build

    वैकल्पिक निरपेक्ष आधार (निश्चित एसेट URL):

    bash
    OPENCLAW_CONTROL_UI_BASE_PATH=/openclaw/ pnpm ui:build

    स्थानीय विकास (अलग डेवलपमेंट सर्वर):

    bash
    pnpm ui:dev

    फिर UI को आपके Gateway WS URL (जैसे ws://127.0.0.1:18789) की ओर इंगित करें।

    रिक्त Control UI पृष्ठ

    यदि ब्राउज़र रिक्त डैशबोर्ड लोड करता है और DevTools कोई उपयोगी त्रुटि नहीं दिखाता, तो संभव है कि किसी एक्सटेंशन या शुरुआती कंटेंट स्क्रिप्ट ने JavaScript मॉड्यूल ऐप का मूल्यांकन होने से रोक दिया हो। स्थिर पृष्ठ में एक साधारण HTML पुनर्प्राप्ति पैनल शामिल है, जो स्टार्टअप के बाद <openclaw-app> पंजीकृत न होने पर दिखाई देता है।

    ब्राउज़र परिवेश बदलने के बाद पैनल की फिर से प्रयास करें क्रिया का उपयोग करें, या इन जाँचों के बाद मैन्युअल रूप से पुनः लोड करें:

    • सभी पृष्ठों में इंजेक्ट होने वाले एक्सटेंशन अक्षम करें, विशेष रूप से <all_urls> कंटेंट स्क्रिप्ट वाले एक्सटेंशन।
    • निजी विंडो, साफ़ ब्राउज़र प्रोफ़ाइल या किसी अन्य ब्राउज़र का प्रयास करें।
    • Gateway को चालू रखें और ब्राउज़र बदलने के बाद उसी डैशबोर्ड URL को सत्यापित करें।

    डीबगिंग/परीक्षण: डेवलपमेंट सर्वर + दूरस्थ Gateway

    Control UI स्थिर फ़ाइलों से बना है; WebSocket लक्ष्य कॉन्फ़िगर करने योग्य है और HTTP ओरिजिन से भिन्न हो सकता है। यह तब उपयोगी है जब आप Vite डेवलपमेंट सर्वर को स्थानीय रूप से चलाना चाहते हैं, लेकिन Gateway कहीं और चल रहा हो।

  • UI डेवलपमेंट सर्वर शुरू करें

    bash
    pnpm ui:dev
  • gatewayUrl के साथ खोलें

    text
    http://localhost:5173/?gatewayUrl=ws%3A%2F%2F<gateway-host>%3A18789

    वैकल्पिक एक-बार का प्रमाणीकरण (यदि आवश्यक हो):

    text
    http://localhost:5173/?gatewayUrl=wss%3A%2F%2F<gateway-host>%3A18789#token=<gateway-token>
  • टिप्पणियाँ
    • gatewayUrl लोड होने के बाद localStorage में संग्रहित होता है और URL से हटा दिया जाता है।
    • यदि आप gatewayUrl के माध्यम से पूर्ण ws:// या wss:// एंडपॉइंट देते हैं, तो मान को URL-एन्कोड करें ताकि ब्राउज़र क्वेरी स्ट्रिंग को सही ढंग से पार्स करे।
    • जहाँ भी संभव हो, token को URL फ़्रैगमेंट (#token=...) के माध्यम से दिया जाना चाहिए। फ़्रैगमेंट सर्वर को नहीं भेजे जाते, जिससे अनुरोध-लॉग और Referer लीक होने से बचते हैं। पुराने ?token= क्वेरी पैरामीटर अब भी संगतता के लिए एक बार आयात किए जाते हैं, लेकिन केवल फ़ॉलबैक के रूप में, और बूटस्ट्रैप के तुरंत बाद हटा दिए जाते हैं।
    • password केवल मेमोरी में रखा जाता है।
    • जब gatewayUrl सेट होता है, तो UI कॉन्फ़िगरेशन या परिवेश क्रेडेंशियल पर फ़ॉलबैक नहीं करता। token (या password) स्पष्ट रूप से दें; स्पष्ट क्रेडेंशियल का न होना एक त्रुटि है।
    • जब Gateway TLS (Tailscale Serve, HTTPS प्रॉक्सी आदि) के पीछे हो, तो wss:// का उपयोग करें।
    • gatewayUrl केवल शीर्ष-स्तरीय विंडो में स्वीकार किया जाता है (एम्बेड होने पर नहीं), ताकि क्लिकजैकिंग रोकी जा सके।
    • सार्वजनिक गैर-लूपबैक Control UI परिनियोजन को gateway.controlUi.allowedOrigins स्पष्ट रूप से सेट करना आवश्यक है (पूर्ण ओरिजिन)। लूपबैक, RFC1918/लिंक-लोकल, .local, .ts.net, या Tailscale CGNAT होस्ट से निजी समान-ओरिजिन LAN/Tailnet लोड, Host-header फ़ॉलबैक सक्षम किए बिना स्वीकार किए जाते हैं।
    • Gateway स्टार्टअप प्रभावी रनटाइम बाइंड और पोर्ट से http://localhost:<port> और http://127.0.0.1:<port> जैसे स्थानीय ओरिजिन सीड कर सकता है, लेकिन दूरस्थ ब्राउज़र ओरिजिन को अब भी स्पष्ट प्रविष्टियों की आवश्यकता होती है।
    • कड़े नियंत्रण वाले स्थानीय परीक्षण को छोड़कर gateway.controlUi.allowedOrigins: ["*"] का उपयोग न करें; इसका अर्थ किसी भी ब्राउज़र ओरिजिन को अनुमति देना है, न कि "मैं जिस भी होस्ट का उपयोग कर रहा हूँ उससे मिलान करें।"
    • gateway.controlUi.dangerouslyAllowHostHeaderOriginFallback=true Host-header ओरिजिन फ़ॉलबैक मोड सक्षम करता है, लेकिन यह एक खतरनाक सुरक्षा मोड है।
    json5
    {  gateway: {    controlUi: {      allowedOrigins: ["http://localhost:5173"],    },  },}

    रिमोट एक्सेस सेटअप का विवरण: रिमोट एक्सेस

    संबंधित

    Was this useful?
    On this page

    On this page