Слэш-команды
Команды обрабатываются Шлюзом. Большинство команд должно отправляться как отдельное сообщение, начинающееся с /. Команда bash только для хоста использует ! <cmd> (с /bash <cmd> в качестве алиаса). Существует две связанные системы:
- Команды: отдельные сообщения
/.... - Директивы:
/think,/verbose,/reasoning,/elevated,/exec,/model,/queue.- Директивы удаляются из сообщения до того, как модель их увидит.
- В обычных сообщениях чата (не только директивы) они рассматриваются как «встроенные подсказки» и не сохраняют настройки сессии.
- В сообщениях, содержащих только директивы, они сохраняются для сессии и отвечают подтверждением.
- Директивы применяются только для авторизованных отправителей. Если задан
commands.allowFrom, используется только этот список разрешений; в противном случае авторизация происходит из списков разрешений/привязок канала плюсcommands.useAccessGroups. Неавторизованные отправители видят директивы, обработанные как обычный текст.
Также есть несколько встроенных сокращений (только для авторизованных отправителей): /help, /commands, /status, /whoami (/id). Они выполняются немедленно, удаляются до того, как модель увидит сообщение, а оставшийся текст продолжает проходить через обычный поток.
Конфигурация
{
commands: {
native: "auto",
nativeSkills: "auto",
text: true,
bash: false,
bashForegroundMs: 2000,
config: false,
debug: false,
restart: false,
allowFrom: {
"*": ["user1"],
discord: ["user:123"],
},
useAccessGroups: true,
},
}
commands.text(по умолчаниюtrue) включает разбор/...в сообщениях чата.- На поверхностях без нативных команд (WhatsApp/WebChat/Signal/iMessage/Google Chat/MS Teams) текстовые команды всё равно работают, даже если вы установите это значение в
false.
- На поверхностях без нативных команд (WhatsApp/WebChat/Signal/iMessage/Google Chat/MS Teams) текстовые команды всё равно работают, даже если вы установите это значение в
commands.native(по умолчанию"auto") регистрирует нативные команды.- Auto: включено для Discord/Telegram; выключено для Slack (пока вы не добавите слэш-команды); игнорируется для провайдеров без нативной поддержки.
- Установите
channels.discord.commands.native,channels.telegram.commands.nativeилиchannels.slack.commands.native, чтобы переопределить для каждого провайдера (bool или"auto"). falseочищает ранее зарегистрированные команды на Discord/Telegram при запуске. Команды Slack управляются в приложении Slack и не удаляются автоматически.
commands.nativeSkills(по умолчанию"auto") регистрирует навыки как нативные команды, когда это поддерживается.- Auto: включено для Discord/Telegram; выключено для Slack (Slack требует создания слэш-команды для каждого навыка).
- Установите
channels.discord.commands.nativeSkills,channels.telegram.commands.nativeSkillsилиchannels.slack.commands.nativeSkills, чтобы переопределить для каждого провайдера (bool или"auto").
commands.bash(по умолчаниюfalse) включает! <cmd>для выполнения команд оболочки хоста (/bash <cmd>является алиасом; требует списков разрешенийtools.elevated).commands.bashForegroundMs(по умолчанию2000) контролирует, как долго bash ждёт перед переключением в фоновый режим (0переводит в фон немедленно).commands.config(по умолчаниюfalse) включает/config(чтение/записьopenclaw.json).commands.debug(по умолчаниюfalse) включает/debug(переопределения только во время выполнения).commands.allowFrom(опционально) устанавливает список разрешений для каждого провайдера для авторизации команд. При настройке это единственный источник авторизации для команд и директив (списки разрешений/привязки канала иcommands.useAccessGroupsигнорируются). Используйте"*"для глобального значения по умолчанию; специфичные для провайдера ключи переопределяют его.commands.useAccessGroups(по умолчаниюtrue) применяет списки разрешений/политики для команд, когдаcommands.allowFromне задан.
Список команд
Текстовые + нативные (когда включены):
/help/commands/skill <name> [input](запустить навык по имени)/status(показать текущий статус; включает использование/квоту провайдера для текущего провайдера модели, когда доступно)/allowlist(список/добавление/удаление записей списка разрешений)/approve <id> allow-once|allow-always|deny(разрешить запросы на подтверждение exec)/context [list|detail|json](объяснить «контекст»;detailпоказывает размер на файл + на инструмент + на навык + системного промпта)/export-session [path](алиас:/export) (экспортировать текущую сессию в HTML с полным системным промптом)/whoami(показать ваш идентификатор отправителя; алиас:/id)/session idle <duration|off>(управление автоматическим снятием фокуса из-за бездействия для привязанных тредов с фокусом)/session max-age <duration|off>(управление автоматическим снятием фокуса по максимальному возрасту для привязанных тредов с фокусом)/subagents list|kill|log|info|send|steer|spawn(проверить, контролировать или создавать запуски под-агентов для текущей сессии)/acp spawn|cancel|steer|close|status|set-mode|set|cwd|permissions|timeout|model|reset-options|doctor|install|sessions(проверять и контролировать сессии выполнения ACP)/agents(список агентов, привязанных к треду, для этой сессии)/focus <target>(Discord: привязать этот тред или новый тред к цели сессии/под-агента)/unfocus(Discord: удалить текущую привязку треда)/kill <id|#|all>(немедленно прервать один или все запущенные под-агенты для этой сессии; без сообщения подтверждения)/steer <id|#> <message>(немедленно направить запущенного под-агента: во время выполнения, когда возможно, иначе прервать текущую работу и перезапустить с сообщением направления)/tell <id|#> <message>(алиас для/steer)/config show|get|set|unset(сохранить конфигурацию на диск, только для владельца; требуетcommands.config: true)/debug show|set|unset|reset(переопределения во время выполнения, только для владельца; требуетcommands.debug: true)/usage off|tokens|full|cost(подвал использования на ответ или локальная сводка стоимости)/tts off|always|inbound|tagged|status|provider|limit|summary|audio(управление TTS; см. /tts)- Discord: нативная команда —
/voice(Discord резервирует/tts); текстовый/ttsвсё равно работает.
- Discord: нативная команда —
/stop/restart/dock-telegram(алиас:/dock_telegram) (переключить ответы на Telegram)/dock-discord(алиас:/dock_discord) (переключить ответы на Discord)/dock-slack(алиас:/dock_slack) (переключить ответы на Slack)/activation mention|always(только группы)/send on|off|inherit(только владелец)/resetили/new [model](опциональная подсказка модели; остаток передаётся дальше)/think <off|minimal|low|medium|high|xhigh>(динамический выбор моделью/провайдером; алиасы:/thinking,/t)/verbose on|full|off(алиас:/v)/reasoning on|off|stream(алиас:/reason; когда включено, отправляет отдельное сообщение с префиксомReasoning:;stream= только черновик Telegram)/elevated on|off|ask|full(алиас:/elev;fullпропускает подтверждения exec)/exec host=<sandbox|gateway|node> security=<deny|allowlist|full> ask=<off|on-miss|always> node=<id>(отправить/execдля показа текущих)/model <name>(алиас:/models; или/<alias>изagents.defaults.models.*.alias)/queue <mode>(плюс опции типаdebounce:2s cap:25 drop:summarize; отправьте/queue, чтобы увидеть текущие настройки)/bash <command>(только хост; алиас для! <command>; требуетcommands.bash: true+ списки разрешенийtools.elevated)
Только текстовые:
/compact [instructions](см. /concepts/compaction)! <command>(только хост; по одной за раз; используйте!poll+!stopдля долгих задач)!poll(проверить вывод / статус; принимает опциональныйsessionId;/bash pollтакже работает)!stop(остановить запущенную bash-задачу; принимает опциональныйsessionId;/bash stopтакже работает)
Примечания:
- Команды принимают опциональный
:между командой и аргументами (например,/think: high,/send: on,/help:). /new <model>принимает алиас модели,provider/modelили имя провайдера (нечёткое совпадение); если совпадений нет, текст рассматривается как тело сообщения.- Для полной разбивки использования провайдера используйте
openclaw status --usage. /allowlist add|removeтребуетcommands.config=trueи учитываетconfigWritesканала./usageконтролирует подвал использования на ответ;/usage costвыводит локальную сводку стоимости из логов сессий OpenClaw./restartвключён по умолчанию; установитеcommands.restart: false, чтобы отключить его.- Нативная команда только для Discord:
/vc join|leave|statusуправляет голосовыми каналами (требуетchannels.discord.voiceи нативные команды; недоступна как текст). - Команды привязки тредов Discord (
/focus,/unfocus,/agents,/session idle,/session max-age) требуют, чтобы эффективные привязки тредов были включены (session.threadBindings.enabledи/илиchannels.discord.threadBindings.enabled). - Справочник команд ACP и поведение выполнения: ACP Agents.
/verboseпредназначен для отладки и дополнительной видимости; держите его выключенным при обычном использовании.- Сводки сбоев инструментов всё равно показываются, когда это уместно, но подробный текст сбоя включается только когда
/verboseв состоянииonилиfull. /reasoning(и/verbose) рискованны в групповых настройках: они могут раскрыть внутренние рассуждения или вывод инструментов, которые вы не собирались показывать. Предпочтительно оставлять их выключенными, особенно в групповых чатах.- Быстрый путь: сообщения, содержащие только команды, от авторизованных отправителей обрабатываются немедленно (обход очереди + модели).
- Ограничение упоминаний в группах: сообщения, содержащие только команды, от авторизованных отправителей обходят требования упоминаний.
- Встроенные сокращения (только авторизованные отправители): некоторые команды также работают, когда встроены в обычное сообщение, и удаляются до того, как модель увидит оставшийся текст.
- Пример:
hey /statusвызывает ответ со статусом, а оставшийся текст продолжает проходить через обычный поток.
- Пример:
- В настоящее время:
/help,/commands,/status,/whoami(/id). - Неавторизованные сообщения, содержащие только команды, молча игнорируются, а встроенные токены
/...обрабатываются как обычный текст. - Команды навыков: навыки с
user-invocableдоступны как слэш-команды. Имена очищаются доa-z0-9_(макс. 32 символа); коллизии получают числовые суффиксы (например,_2)./skill <name> [input]запускает навык по имени (полезно, когда ограничения нативных команд мешают создавать команды для каждого навыка).- По умолчанию команды навыков пересылаются модели как обычный запрос.
- Навыки могут опционально объявлять
command-dispatch: tool, чтобы направлять команду напрямую инструменту (детерминированно, без модели). - Пример:
/prose(плагин OpenProse) — см. OpenProse.
- Аргументы нативных команд: Discord использует автодополнение для динамических опций (и меню кнопок, когда вы опускаете обязательные аргументы). Telegram и Slack показывают меню кнопок, когда команда поддерживает выбор и вы опускаете аргумент.
Поверхности использования (что где показывается)
- Использование/квота провайдера (пример: «Claude 80% left») появляется в
/statusдля текущего провайдера модели, когда включено отслеживание использования. - Токены/стоимость на ответ контролируется
/usage off|tokens|full(добавляется к обычным ответам). /model statusкасается моделей/авторизации/конечных точек, а не использования.
Выбор модели (/model)
/model реализован как директива. Примеры:
/model
/model list
/model 3
/model openai/gpt-5.2
/model opus@anthropic:default
/model status
Примечания:
/modelи/model listпоказывают компактный нумерованный выборщик (семейство моделей + доступные провайдеры).- В Discord
/modelи/modelsоткрывают интерактивный выборщик с выпадающими списками провайдера и модели плюс шаг отправки. /model <#>выбирает из этого выборщика (и предпочитает текущего провайдера, когда возможно)./model statusпоказывает детализированный вид, включая настроенную конечную точку провайдера (baseUrl) и режим API (api), когда доступно.
Отладочные переопределения
/debug позволяет установить переопределения конфигурации только во время выполнения (память, не диск). Только для владельца. Отключено по умолчанию; включите с commands.debug: true. Примеры:
/debug show
/debug set messages.responsePrefix="[openclaw]"
/debug set channels.whatsapp.allowFrom=["+1555","+4477"]
/debug unset messages.responsePrefix
/debug reset
Примечания:
- Переопределения применяются немедленно к новым чтениям конфигурации, но не записываются в
openclaw.json. - Используйте
/debug reset, чтобы очистить все переопределения и вернуться к конфигурации на диске.
Обновления конфигурации
/config записывает в вашу конфигурацию на диске (openclaw.json). Только для владельца. Отключено по умолчанию; включите с commands.config: true. Примеры:
/config show
/config show messages.responsePrefix
/config get messages.responsePrefix
/config set messages.responsePrefix="[openclaw]"
/config unset messages.responsePrefix
Примечания:
- Конфигурация проверяется перед записью; неверные изменения отклоняются.
- Обновления
/configсохраняются после перезапусков.
Примечания по поверхностям
- Текстовые команды выполняются в обычной сессии чата (личные сообщения используют
main, группы имеют свою собственную сессию). - Нативные команды используют изолированные сессии:
- Discord:
agent:<agentId>:discord:slash:<userId> - Slack:
agent:<agentId>:slack:slash:<userId>(префикс настраивается черезchannels.slack.slashCommand.sessionPrefix) - Telegram:
telegram:slash:<userId>(нацеливается на сессию чата черезCommandTargetSessionKey)
- Discord:
/stopнацеливается на активную сессию чата, чтобы она могла прервать текущий запуск.- Slack:
channels.slack.slashCommandвсё ещё поддерживается для одной команды в стиле/openclaw. Если вы включитеcommands.native, вы должны создать одну слэш-команду Slack для каждой встроенной команды (те же имена, что у/help). Меню аргументов команд для Slack доставляются как эфемерные кнопки Block Kit.- Исключение для нативных команд Slack: зарегистрируйте
/agentstatus(не/status), потому что Slack резервирует/status. Текстовый/statusвсё равно работает в сообщениях Slack.
- Исключение для нативных команд Slack: зарегистрируйте