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 all

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 вместо результатов проверки в реальном времени возвращает сводки только по конфигурации.

Не используйте 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 работает только с установленными и настроенными плагинами каналов. Для доступных для установки каналов из каталога сначала используйте channels add. Без --delete команда предлагает отключить учётную запись и сохраняет её конфигурацию; --delete удаляет записи конфигурации без запроса подтверждения. Для плагинов каналов, использующих среду выполнения, 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
WhatsApp --auth-dir

Если при добавлении с помощью флагов требуется установить плагин канала, OpenClaw использует источник установки канала по умолчанию, не открывая интерактивный запрос установки плагина.

При запуске 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, чтобы переместить значения для отдельной учётной записи в перенесённую учётную запись, выбранную для этого канала.

Вход и выход (интерактивно)

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 запуск учётной записи; в удалённом режиме он сохраняет данные аутентификации локально и сообщает, что удалённая среда выполнения не была перезапущена.
  • Запустите channels login из терминала на узле Gateway. Агент exec блокирует этот интерактивный процесс входа; для входа из чата следует использовать собственные инструменты входа агента для канала, например whatsapp_login, если они доступны.

Устранение неполадок

  • Выполните openclaw status --deep для комплексной проверки.
  • Используйте openclaw doctor для пошагового исправления.
  • openclaw channels status возвращает сводки только по конфигурации, если Gateway недоступен. Если учётные данные поддерживаемого канала настроены через SecretRef, но недоступны в текущем пути выполнения команды, учётная запись указывается как настроенная с примечаниями об ограниченной работоспособности, а не как ненастроенная.

Проверка возможностей

Получение сведений о возможностях провайдера (намерения и области доступа, если доступны), а также о поддержке статических функций:

bash
openclaw channels capabilitiesopenclaw channels capabilities --channel discord --target channel:123

Примечания:

  • --channel необязателен; не указывайте его, чтобы вывести все каналы (включая предоставляемые плагинами).
  • --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 не устанавливает плагины каналов. Перед разрешением имён для доступного для установки канала из каталога используйте channels add --channel <name>.

Связанные материалы

Was this useful?
On this page

On this page