CLI commands
चैनल
openclaw channels
Gateway पर चैट चैनल खातों और उनकी रनटाइम स्थिति को प्रबंधित करें।
संबंधित दस्तावेज़:
- चैनल मार्गदर्शिकाएँ: चैनल
- Gateway कॉन्फ़िगरेशन: कॉन्फ़िगरेशन
सामान्य कमांड
openclaw channels listopenclaw channels list --allopenclaw channels statusopenclaw channels capabilitiesopenclaw channels capabilities --channel discord --target channel:123openclaw channels resolve --channel slack "#general" "@jane"openclaw channels logs --channel allopenclaw channels dead-letters list --channel telegram --account defaultchannels list केवल चैट चैनल दिखाता है: डिफ़ॉल्ट रूप से कॉन्फ़िगर किए गए खाते, प्रत्येक खाते के लिए installed, configured, और enabled स्थिति टैग के साथ (मशीन आउटपुट के लिए --json)। उन बंडल किए गए चैनलों को भी दिखाने के लिए --all दें जिनका अभी कोई कॉन्फ़िगर किया गया खाता नहीं है और उन इंस्टॉल-योग्य कैटलॉग चैनलों को भी, जो अभी डिस्क पर नहीं हैं। प्रदाता प्रमाणीकरण और मॉडल उपयोग की जानकारी अन्य स्थानों पर उपलब्ध है: प्रदाता प्रमाणीकरण प्रोफ़ाइल के लिए openclaw models auth list, उपयोग/कोटा के लिए openclaw status या openclaw models list।
स्थिति / क्षमताएँ / समाधान / लॉग
channels status:--channel <name>,--probe,--timeout <ms>(डिफ़ॉल्ट10000),--jsonchannels capabilities:--channel <name>,--account <id>(--channelआवश्यक),--target <dest>(--channelआवश्यक),--timeout <ms>(डिफ़ॉल्ट10000, अधिकतम30000),--jsonchannels resolve <entries...>:--channel <name>,--account <id>,--kind <auto|user|group>(डिफ़ॉल्टauto),--jsonchannels logs:--channel <name|all>(डिफ़ॉल्टall),--lines <n>(डिफ़ॉल्ट200),--json
channels status --probe लाइव पथ है: पहुँच योग्य Gateway पर यह प्रत्येक खाते के लिए
probeAccount और वैकल्पिक auditAccount जाँच चलाता है, इसलिए आउटपुट में ट्रांसपोर्ट
स्थिति के साथ works, probe failed, audit ok, या audit failed जैसे प्रोब परिणाम शामिल हो सकते हैं।
यदि Gateway पहुँच योग्य नहीं है, तो channels status लाइव प्रोब आउटपुट के बजाय
केवल-कॉन्फ़िगरेशन सारांश पर वापस चला जाता है।
इनबाउंड डेड लेटर
जिन इनबाउंड इवेंट की पुनःप्रयास नीति समाप्त हो जाती है, वे क्यू की मौजूदा विफल-प्रविष्टि अवधारण अवधि तक साझा स्थिति डेटाबेस में बने रहते हैं। इस कमांड से किसी एक चैनल खाते का निरीक्षण करें:
openclaw channels dead-letters list --channel telegram --account defaultopenclaw channels dead-letters list --channel telegram --account default --jsonटेक्स्ट दृश्य इवेंट आईडी, विफलता के कारण, प्रयासों की संख्या और विफलता की अवधि दिखाता है। निदान के लिए JSON आउटपुट में संरक्षित पेलोड, मेटाडेटा, लेन और प्रयासों के टाइमस्टैम्प भी शामिल होते हैं।
मूल समस्या सुधारने के बाद, किसी एक इवेंट को उसकी मूल इवेंट आईडी के साथ फिर से क्यू में डालें:
openclaw channels dead-letters resubmit <event-id> --channel telegram --account defaultइन कमांड को Gateway होस्ट पर चलाएँ, ताकि वे चैनल रनटाइम वाले उसी साझा स्थिति डेटाबेस को एक्सेस करें। पुनःसबमिशन पेलोड, मेटाडेटा और लेन को सुरक्षित रखता है, लेकिन प्रयास काउंटर और क्यू अवधि को रीसेट कर देता है। यह उस इवेंट के विफलता चिह्न को परमाण्विक रूप से बदलता है, इसलिए इवेंट के लंबित या क्लेम किए हुए होने पर कमांड दोहराने से दूसरा डिस्पैच बनाने के बजाय अनुरोध अस्वीकार हो जाता है। चल रहा चैनल इसे अपने अगले इनग्रेस ड्रेन पर उठा लेता है। पूर्ण हो चुके इवेंट टर्मिनल बने रहते हैं और उन्हें पुनःसबमिट नहीं किया जा सकता। पेलोड अवधारण जोड़े जाने से पहले बनाई गई विफल पंक्तियाँ अब भी सूची में दिखाई दे सकती हैं, लेकिन उनका पेलोड अनुपलब्ध होने के कारण पुनःसबमिशन उन्हें अस्वीकार कर देता है।
openclaw health प्रत्येक चैनल खाते के लिए डेड-लेटर की संख्या और सबसे पुरानी विफलता की अवधि रिपोर्ट करता है। openclaw doctor प्रभावित खातों के नाम बताता है और निरीक्षण कमांड की ओर इंगित करता है।
चैनल सॉकेट स्वास्थ्य संकेत के रूप में openclaw sessions, Gateway sessions.list, या एजेंट
sessions_list टूल का उपयोग न करें। ये सतहें प्रदाता रनटाइम स्थिति नहीं, बल्कि
संग्रहीत वार्तालाप पंक्तियाँ रिपोर्ट करती हैं। Discord प्रदाता के
पुनःआरंभ होने के बाद, जुड़ा हुआ लेकिन निष्क्रिय खाता स्वस्थ हो सकता है, भले ही अगले इनबाउंड या आउटबाउंड वार्तालाप इवेंट तक
कोई Discord सेशन पंक्ति दिखाई न दे।
खाते जोड़ना / हटाना
openclaw channels add --channel telegram --token <bot-token>openclaw channels add --channel nostr --private-key "$NOSTR_PRIVATE_KEY"openclaw channels remove --channel telegram --deletechannels remove केवल इंस्टॉल/कॉन्फ़िगर किए गए चैनल Plugin पर काम करता है। इंस्टॉल-योग्य कैटलॉग चैनलों के लिए पहले channels add का उपयोग करें। --delete के बिना यह खाता अक्षम करने के लिए पूछता है और उसका कॉन्फ़िगरेशन बनाए रखता है; --delete बिना संकेत दिए कॉन्फ़िगरेशन प्रविष्टियाँ हटा देता है।
रनटाइम-समर्थित चैनल Plugin के लिए, channels remove कॉन्फ़िगरेशन अपडेट करने से पहले चल रहे Gateway से चयनित खाता रोकने को भी कहता है, ताकि खाता अक्षम करने या हटाने के बाद पुराना लिसनर पुनःआरंभ होने तक सक्रिय न रहे।
साझा नियंत्रण एनवेलप में केवल --channel, --account, और वैकल्पिक खाता डिस्प्ले --name होते हैं। प्रत्येक आधुनिक चैनल Plugin अपने क्रेडेंशियल, ट्रांसपोर्ट और प्रदाता-विशिष्ट अर्थविज्ञान का स्वामी होता है। पोज़िशनल आईडी या --channel <id> से चैनल चुने जाने के बाद, CLI चैनल रनटाइम कोड लोड किए बिना केवल बंडल किए गए या इंस्टॉल किए गए Plugin पैकेज मेटाडेटा से उस चैनल के विकल्प बनाता है।
--token, --url, या --use-env जैसे सामान्य दिखने वाले फ़्लैग भी आधुनिक अनुबंध द्वारा संभाले जाने पर चैनल के स्वामित्व में रहते हैं। जब चयनित तृतीय-पक्ष Plugin अब भी पुराने साझा सेटअप अडैप्टर का उपयोग करता है, तो कोर केवल उस चैनल के लिए जारी किया गया संगतता फ़्लैग सेट उसके पुराने cliAddOptions के साथ पंजीकृत करता है। असंबंधित पुराने फ़ील्ड अन्य चैनलों में लीक नहीं होते, और चयनित आधुनिक चैनल उन संगतता फ़्लैग को अस्वीकार करता है जिन्हें उसने घोषित नहीं किया है।
चैनल के स्वामित्व वाले फ़्लैग के उदाहरण:
| चैनल | फ़्लैग |
|---|---|
| Google Chat | --webhook-path, --webhook-url, --audience-type, --audience |
| iMessage | --cli-path, --db-path, --service, --region |
| Matrix | --homeserver, --user-id, --access-token, --password, --device-name, --initial-sync-limit |
| Nostr | --private-key, --relay-urls |
| Signal | --signal-number, --signal-transport, --cli-path, --http-url, --http-host, --http-port |
| Tlon | --ship, --url, --code, --group-channels, --dm-allowlist, --auto-discover-channels |
--auth-dir |
यदि फ़्लैग-आधारित जोड़ने के कमांड के दौरान किसी चैनल Plugin को इंस्टॉल करना आवश्यक हो, तो OpenClaw इंटरैक्टिव Plugin इंस्टॉल संकेत खोले बिना चैनल के डिफ़ॉल्ट इंस्टॉल स्रोत का उपयोग करता है।
निर्देशित सेटअप और फ़्लैग-आधारित सेटअप, दोनों चयनित चैनल के पार्सर, सत्यापन, खाता समाधान, कॉन्फ़िगरेशन राइटर और लेखन-पश्चात हुक से होकर गुजरते हैं। असमर्थित फ़्लैग वैश्विक इनपुट बैग के माध्यम से स्वीकार किए जाने के बजाय स्वामी चैनल की सेटअप त्रुटि के साथ विफल होते हैं।
जब आप बिना किसी प्रत्यक्ष खाते, क्रेडेंशियल या चैनल-कॉन्फ़िगरेशन फ़्लैग के openclaw channels add चलाते हैं, तो इंटरैक्टिव विज़ार्ड संकेत दे सकता है। पोज़िशनल चैनल आईडी और --channel <id>, दोनों मार्गदर्शन को छोड़े बिना उस चैनल को पहले से चुनते हैं:
openclaw channels add telegramopenclaw channels add --channel telegramविज़ार्ड इनके लिए संकेत दे सकता है:
- प्रत्येक चयनित चैनल के लिए खाता आईडी
- उन खातों के लिए वैकल्पिक प्रदर्शन नाम
Route these channel accounts to agents now?
यदि आप अभी बाइंड करने की पुष्टि करते हैं, तो विज़ार्ड पूछता है कि प्रत्येक कॉन्फ़िगर किए गए चैनल खाते का स्वामी कौन-सा एजेंट होना चाहिए और खाता-स्कोप्ड रूटिंग बाइंडिंग लिखता है।
आप बाद में openclaw agents bindings, openclaw agents bind, और openclaw agents unbind से भी उन्हीं रूटिंग नियमों को प्रबंधित कर सकते हैं (एजेंट देखें)।
जब आप ऐसे चैनल में गैर-डिफ़ॉल्ट खाता जोड़ते हैं जो अब भी एकल-खाता शीर्ष-स्तरीय सेटिंग्स का उपयोग कर रहा है, तो OpenClaw नया खाता लिखने से पहले उन शीर्ष-स्तरीय मानों को चैनल के खाता मैप में प्रोमोट करता है। यदि चैनल में ठीक एक नामित खाता है, या defaultAccount किसी खाते की ओर इंगित करता है, तो प्रोमोशन मौजूदा नामित खाते का पुनः उपयोग करता है; अन्यथा मान channels.<channel>.accounts.default में पहुँचते हैं।
रूटिंग व्यवहार सुसंगत रहता है:
- मौजूदा केवल-चैनल बाइंडिंग (
accountIdके बिना) डिफ़ॉल्ट खाते से मेल खाती रहती हैं। channels addगैर-इंटरैक्टिव मोड में बाइंडिंग को स्वतः बनाता या फिर से लिखता नहीं है।- इंटरैक्टिव सेटअप वैकल्पिक रूप से खाता-स्कोप्ड बाइंडिंग जोड़ सकता है।
यदि आपका कॉन्फ़िगरेशन पहले से मिश्रित स्थिति में था (नामित खाते मौजूद थे और शीर्ष-स्तरीय एकल-खाता मान अब भी सेट थे), तो खाता-स्कोप्ड मानों को उस चैनल के लिए चुने गए प्रोमोटेड खाते में ले जाने हेतु openclaw doctor --fix चलाएँ।
लॉगिन और लॉगआउट (इंटरैक्टिव)
openclaw channels login --channel whatsappopenclaw channels logout --channel whatsappchannels login,--account <id>और--verboseका समर्थन करता है;channels logout,--account <id>का समर्थन करता है।- जब केवल एक कॉन्फ़िगर किया गया चैनल उस क्रिया का समर्थन करता है, तो
channels loginऔरlogoutचैनल का अनुमान लगा सकते हैं; कई चैनल होने पर--channelदें। - पहुँच योग्य होने पर
channels logoutलाइव Gateway पथ को प्राथमिकता देता है, ताकि लॉगआउट चैनल प्रमाणीकरण स्थिति साफ़ करने से पहले किसी भी सक्रिय लिसनर को रोक दे। यदि स्थानीय Gateway पहुँच योग्य नहीं है, तो यह स्थानीय प्रमाणीकरण सफ़ाई पर वापस चला जाता है;gateway.mode: "remote"के साथ Gateway त्रुटि के कारण कमांड विफल हो जाता है। - सफल लॉगिन के बाद, CLI पहुँच योग्य स्थानीय Gateway से खाता शुरू करने को कहता है; रिमोट मोड में यह प्रमाणीकरण को स्थानीय रूप से सहेजता है और सूचित करता है कि रिमोट रनटाइम पुनःआरंभ नहीं किया गया।
- Gateway होस्ट के टर्मिनल से
channels loginचलाएँ। एजेंटexecइस इंटरैक्टिव लॉगिन प्रवाह को अवरुद्ध करता है; उपलब्ध होने पर चैट सेwhatsapp_loginजैसे चैनल-नेटिव एजेंट लॉगिन टूल का उपयोग किया जाना चाहिए।
समस्या निवारण
- व्यापक प्रोब के लिए
openclaw status --deepचलाएँ। - निर्देशित सुधारों के लिए
openclaw doctorका उपयोग करें। - Gateway पहुँच योग्य न होने पर
openclaw channels statusकेवल-कॉन्फ़िगरेशन सारांश पर वापस चला जाता है। यदि समर्थित चैनल क्रेडेंशियल SecretRef के माध्यम से कॉन्फ़िगर किया गया है, लेकिन वर्तमान कमांड पथ में उपलब्ध नहीं है, तो वह खाते को कॉन्फ़िगर नहीं दिखाने के बजाय निम्नीकृत टिप्पणियों के साथ कॉन्फ़िगर किया हुआ रिपोर्ट करता है।
क्षमता प्रोब
प्रदाता क्षमता संकेत (जहाँ उपलब्ध हों, वहाँ इंटेंट/स्कोप) और स्थिर सुविधा समर्थन प्राप्त करें:
openclaw channels capabilitiesopenclaw channels capabilities --channel discord --target channel:123टिप्पणियाँ:
--channelवैकल्पिक है; प्रत्येक चैनल (Plugin द्वारा उपलब्ध कराए गए चैनलों सहित) को सूचीबद्ध करने के लिए इसे छोड़ दें।--accountकेवल--channelके साथ मान्य है।--targetमेंchannel:<id>या अपरिष्कृत संख्यात्मक चैनल आईडी स्वीकार की जाती है और यह केवल Discord पर लागू होता है। Discord वॉइस चैनलों के लिए, अनुमति जाँच अनुपलब्धViewChannel,Connect,Speak,SendMessages, औरReadMessageHistoryको चिह्नित करती है।- जाँचें प्रदाता-विशिष्ट होती हैं: Discord बॉट पहचान + इंटेंट और वैकल्पिक चैनल अनुमतियाँ; Slack बॉट + उपयोगकर्ता स्कोप; Telegram बॉट फ़्लैग + Webhook; Signal डेमन संस्करण; Microsoft Teams ऐप टोकन + Graph भूमिकाएँ/स्कोप (जहाँ ज्ञात हों, वहाँ टिप्पणी सहित)। जिन चैनलों के लिए जाँच उपलब्ध नहीं है, वे
Probe: unavailableरिपोर्ट करते हैं।
नामों को आईडी में बदलें
प्रदाता निर्देशिका का उपयोग करके चैनल/उपयोगकर्ता नामों को आईडी में बदलें:
openclaw channels resolve --channel slack "#general" "@jane"openclaw channels resolve --channel discord "My Server/#support" "@someone"openclaw channels resolve --channel matrix "Project Room"टिप्पणियाँ:
- लक्ष्य प्रकार को बाध्य करने के लिए
--kind user|group|autoका उपयोग करें। - जब एक ही नाम वाली एकाधिक प्रविष्टियाँ होती हैं, तो समाधान सक्रिय मिलानों को प्राथमिकता देता है।
channels resolveकेवल पढ़ने योग्य है। यदि कोई चयनित खाता SecretRef के माध्यम से कॉन्फ़िगर किया गया है, लेकिन वह क्रेडेंशियल वर्तमान कमांड पथ में उपलब्ध नहीं है, तो कमांड पूरा निष्पादन निरस्त करने के बजाय टिप्पणियों सहित सीमित अनसुलझे परिणाम लौटाता है।channels resolveचैनल Plugin इंस्टॉल नहीं करता। इंस्टॉल किए जा सकने वाले कैटलॉग चैनल के नाम हल करने से पहलेchannels add --channel <name>का उपयोग करें।