CLI commands

चैनल

openclaw channels

Gateway पर चैट चैनल खातों और उनकी रनटाइम स्थिति को प्रबंधित करें।

संबंधित दस्तावेज़:

सामान्य कमांड

bash
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 default

channels list केवल चैट चैनल दिखाता है: डिफ़ॉल्ट रूप से कॉन्फ़िगर किए गए खाते, प्रत्येक खाते के लिए installed, configured, और enabled स्थिति टैग के साथ (मशीन आउटपुट के लिए --json)। उन बंडल किए गए चैनलों को भी दिखाने के लिए --all दें जिनका अभी कोई कॉन्फ़िगर किया गया खाता नहीं है और उन इंस्टॉल-योग्य कैटलॉग चैनलों को भी, जो अभी डिस्क पर नहीं हैं। प्रदाता प्रमाणीकरण और मॉडल उपयोग की जानकारी अन्य स्थानों पर उपलब्ध है: प्रदाता प्रमाणीकरण प्रोफ़ाइल के लिए openclaw models auth list, उपयोग/कोटा के लिए openclaw status या openclaw models list

स्थिति / क्षमताएँ / समाधान / लॉग

  • channels status: --channel <name>, --probe, --timeout <ms> (डिफ़ॉल्ट 10000), --json
  • channels capabilities: --channel <name>, --account <id> (--channel आवश्यक), --target <dest> (--channel आवश्यक), --timeout <ms> (डिफ़ॉल्ट 10000, अधिकतम 30000), --json
  • channels resolve <entries...>: --channel <name>, --account <id>, --kind <auto|user|group> (डिफ़ॉल्ट auto), --json
  • channels 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 लाइव प्रोब आउटपुट के बजाय केवल-कॉन्फ़िगरेशन सारांश पर वापस चला जाता है।

इनबाउंड डेड लेटर

जिन इनबाउंड इवेंट की पुनःप्रयास नीति समाप्त हो जाती है, वे क्यू की मौजूदा विफल-प्रविष्टि अवधारण अवधि तक साझा स्थिति डेटाबेस में बने रहते हैं। इस कमांड से किसी एक चैनल खाते का निरीक्षण करें:

bash
openclaw channels dead-letters list --channel telegram --account defaultopenclaw channels dead-letters list --channel telegram --account default --json

टेक्स्ट दृश्य इवेंट आईडी, विफलता के कारण, प्रयासों की संख्या और विफलता की अवधि दिखाता है। निदान के लिए JSON आउटपुट में संरक्षित पेलोड, मेटाडेटा, लेन और प्रयासों के टाइमस्टैम्प भी शामिल होते हैं।

मूल समस्या सुधारने के बाद, किसी एक इवेंट को उसकी मूल इवेंट आईडी के साथ फिर से क्यू में डालें:

bash
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 सेशन पंक्ति दिखाई न दे।

खाते जोड़ना / हटाना

bash
openclaw channels add --channel telegram --token <bot-token>openclaw channels add --channel nostr --private-key "$NOSTR_PRIVATE_KEY"openclaw channels remove --channel telegram --delete

channels 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
WhatsApp --auth-dir

यदि फ़्लैग-आधारित जोड़ने के कमांड के दौरान किसी चैनल Plugin को इंस्टॉल करना आवश्यक हो, तो OpenClaw इंटरैक्टिव Plugin इंस्टॉल संकेत खोले बिना चैनल के डिफ़ॉल्ट इंस्टॉल स्रोत का उपयोग करता है।

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

जब आप बिना किसी प्रत्यक्ष खाते, क्रेडेंशियल या चैनल-कॉन्फ़िगरेशन फ़्लैग के openclaw channels add चलाते हैं, तो इंटरैक्टिव विज़ार्ड संकेत दे सकता है। पोज़िशनल चैनल आईडी और --channel <id>, दोनों मार्गदर्शन को छोड़े बिना उस चैनल को पहले से चुनते हैं:

bash
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 चलाएँ।

लॉगिन और लॉगआउट (इंटरैक्टिव)

bash
openclaw channels login --channel whatsappopenclaw channels logout --channel whatsapp
  • channels 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 के माध्यम से कॉन्फ़िगर किया गया है, लेकिन वर्तमान कमांड पथ में उपलब्ध नहीं है, तो वह खाते को कॉन्फ़िगर नहीं दिखाने के बजाय निम्नीकृत टिप्पणियों के साथ कॉन्फ़िगर किया हुआ रिपोर्ट करता है।

क्षमता प्रोब

प्रदाता क्षमता संकेत (जहाँ उपलब्ध हों, वहाँ इंटेंट/स्कोप) और स्थिर सुविधा समर्थन प्राप्त करें:

bash
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 रिपोर्ट करते हैं।

नामों को आईडी में बदलें

प्रदाता निर्देशिका का उपयोग करके चैनल/उपयोगकर्ता नामों को आईडी में बदलें:

bash
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> का उपयोग करें।

संबंधित

Was this useful?
On this page

On this page