CLI commands
کانالها
openclaw channels
حسابهای کانالهای گفتوگو و وضعیت زمان اجرای آنها را در 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 allchannels 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 sessions، فرمان sessions.list در Gateway یا ابزار 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 در حال اجرا میخواهد حساب انتخابشده را متوقف کند؛ بنابراین غیرفعالسازی یا حذف حساب باعث نمیشود شنونده قدیمی تا راهاندازی مجدد فعال بماند.
پرچمهای افزودن غیرتعاملی مشترک میان کانالها: --account <id>، --name <name>، --token، --token-file، --bot-token، --app-token، --secret، --secret-file، --password، --cli-path، --url، --base-url، --http-url، --auth-dir و --use-env (احراز هویت متکی به متغیر محیطی، فقط برای حساب پیشفرض و در صورت پشتیبانی). پرچمهای ویژه کانال شامل موارد زیر هستند:
| کانال | پرچمها |
|---|---|
| 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، --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 را بدون پرچم اجرا میکنید، جادوگر تعاملی میتواند موارد زیر را درخواست کند:
- شناسههای حساب برای هر کانال انتخابشده
- نامهای نمایشی اختیاری برای آن حسابها
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 محلی در دسترس میخواهد حساب را راهاندازی کند؛ در حالت راهدور، احراز هویت را بهصورت محلی ذخیره میکند و یادآور میشود که زمان اجرای راهدور دوباره راهاندازی نشده است.
channels loginرا از یک پایانه روی میزبان Gateway اجرا کنید.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 resolvePluginهای کانال را نصب نمیکند. پیش از تفکیک نامها برای یک کانال کاتالوگی قابلنصب، ازchannels add --channel <name>استفاده کنید.