Comandos de barra
Los comandos son gestionados por el Gateway. La mayoría de los comandos deben enviarse como un mensaje independiente que comienza con/.
El comando de chat bash solo para el host usa ! <cmd> (con /bash <cmd> como alias).
Hay dos sistemas relacionados:
- Comandos: mensajes
/...independientes. - Directivas:
/think,/verbose,/reasoning,/elevated,/exec,/model,/queue.- Las directivas se eliminan del mensaje antes de que el modelo lo vea.
- En mensajes de chat normales (no solo directivas), se tratan como “pistas en línea” y no persisten la configuración de la sesión.
- En mensajes solo de directivas (el mensaje contiene únicamente directivas), persisten en la sesión y responden con un acuse de recibo.
- Las directivas solo se aplican a remitentes autorizados. Las directivas solo se aplican a remitentes autorizados (listas de permitidos del canal/emparejamiento más
commands.useAccessGroups). Los remitentes no autorizados ven las directivas tratadas como texto plano.
/help, /commands, /status, /whoami (/id).
Se ejecutan de inmediato, se eliminan antes de que el modelo vea el mensaje, y el texto restante continúa por el flujo normal.
Configuración
commands.text(predeterminadotrue) habilita el análisis de/...en mensajes de chat.- En superficies sin comandos nativos (WhatsApp/WebChat/Signal/iMessage/Google Chat/MS Teams), los comandos de texto siguen funcionando incluso si establece esto en
false.
- En superficies sin comandos nativos (WhatsApp/WebChat/Signal/iMessage/Google Chat/MS Teams), los comandos de texto siguen funcionando incluso si establece esto en
commands.native(predeterminado"auto") registra comandos nativos.- Auto: activado para Discord/Telegram; desactivado para Slack (hasta que agregue comandos de barra); ignorado para proveedores sin soporte nativo.
- Establezca
channels.discord.commands.native,channels.telegram.commands.nativeochannels.slack.commands.nativepara sobrescribir por proveedor (bool o"auto"). falseborra los comandos previamente registrados en Discord/Telegram al iniciar. Los comandos de Slack se gestionan en la app de Slack y no se eliminan automáticamente.
commands.nativeSkills(predeterminado"auto") registra comandos de skills de forma nativa cuando hay soporte.- Auto: activado para Discord/Telegram; desactivado para Slack (Slack requiere crear un comando de barra por skill).
- Establezca
channels.discord.commands.nativeSkills,channels.telegram.commands.nativeSkillsochannels.slack.commands.nativeSkillspara sobrescribir por proveedor (bool o"auto").
commands.bash(predeterminadofalse) habilita! <cmd>para ejecutar comandos de shell del host (/bash <cmd>es un alias; requiere listas de permitidostools.elevated).commands.bashForegroundMs(predeterminado2000) controla cuánto tiempo espera bash antes de cambiar a modo en segundo plano (0pasa a segundo plano de inmediato).commands.config(predeterminadofalse) habilita/config(lee/escribeopenclaw.json).commands.debug(predeterminadofalse) habilita/debug(sobrescrituras solo en tiempo de ejecución).commands.allowFrom(opcional) establece una lista de permitidos por proveedor para la autorización de comandos. Cuando está configurado, es la única fuente de autorización para comandos y directivas (las listas de permitidos/emparejamiento del canal ycommands.useAccessGroupsse ignoran). Usa"*"como valor predeterminado global; las claves específicas del proveedor lo anulan.commands.useAccessGroups(predeterminadotrue) hace cumplir listas de permitidos/políticas para comandos.
Lista de comandos
Texto + nativos (cuando están habilitados):/help/commands/skill <name> [input](ejecutar una skill por nombre)/status(mostrar estado actual; incluye uso/cuota del proveedor para el proveedor del modelo actual cuando está disponible)/allowlist(listar/agregar/eliminar entradas de la lista de permitidos)/approve <id> allow-once|allow-always|deny(resolver avisos de aprobación de exec)/context [list|detail|json](explicar “contexto”;detailmuestra tamaño por archivo + por herramienta + por skill + prompt del sistema)/whoami(mostrar su id de remitente; alias:/id)/subagents list|stop|log|info|send(inspeccionar, detener, registrar o enviar mensajes a ejecuciones de subagentes para la sesión actual)/kill <id|#|all>(aborta inmediatamente uno o todos los subagentes en ejecución para esta sesión; sin mensaje de confirmación)/steer <id|#> <message>(dirige un subagente en ejecución inmediatamente: durante la ejecución cuando sea posible; de lo contrario, aborta el trabajo actual y reinícialo con el mensaje de dirección)/tell <id|#> <message>(alias de/steer)/config show|get|set|unset(persistir configuración en disco, solo propietario; requierecommands.config: true)/debug show|set|unset|reset(sobrescrituras en tiempo de ejecución, solo propietario; requierecommands.debug: true)/usage off|tokens|full|cost(pie de uso por respuesta o resumen de costos local)/tts off|always|inbound|tagged|status|provider|limit|summary|audio(controlar TTS; vea /tts)- Discord: el comando nativo es
/voice(Discord reserva/tts); el texto/ttssigue funcionando.
- Discord: el comando nativo es
/stop/restart/dock-telegram(alias:/dock_telegram) (cambiar respuestas a Telegram)/dock-discord(alias:/dock_discord) (cambiar respuestas a Discord)/dock-slack(alias:/dock_slack) (cambiar respuestas a Slack)/activation mention|always(solo grupos)/send on|off|inherit(solo propietario)/reseto/new [model](sugerencia opcional de modelo; el resto se pasa tal cual)/think <off|minimal|low|medium|high|xhigh>(opciones dinámicas por modelo/proveedor; alias:/thinking,/t)/verbose on|full|off(alias:/v)/reasoning on|off|stream(alias:/reason; cuando está activado, envía un mensaje separado con el prefijoReasoning:;stream= solo borrador de Telegram)/elevated on|off|ask|full(alias:/elev;fullomite aprobaciones de exec)/exec host=<sandbox|gateway|node> security=<deny|allowlist|full> ask=<off|on-miss|always> node=<id>(enviar/execpara mostrar el actual)/model <name>(alias:/models; o/<alias>desdeagents.defaults.models.*.alias)/queue <mode>(más opciones comodebounce:2s cap:25 drop:summarize; envíe/queuepara ver la configuración actual)/bash <command>(solo host; alias de! <command>; requiere listas de permitidoscommands.bash: true+tools.elevated)
/compact [instructions](vea /concepts/compaction)! <command>(solo host; uno a la vez; use!poll+!stoppara trabajos de larga duración)!poll(comprobar salida/estado; aceptasessionIdopcional;/bash polltambién funciona)!stop(detener el trabajo bash en ejecución; aceptasessionIdopcional;/bash stoptambién funciona)
- Los comandos aceptan un
:opcional entre el comando y los argumentos (p. ej.,/think: high,/send: on,/help:). /new <model>acepta un alias de modelo,provider/modelo un nombre de proveedor (coincidencia difusa); si no hay coincidencia, el texto se trata como el cuerpo del mensaje.- Para un desglose completo de uso por proveedor, use
openclaw status --usage. /allowlist add|removerequierecommands.config=truey respeta laconfigWritesdel canal./usagecontrola el pie de uso por respuesta;/usage costimprime un resumen de costos local a partir de los registros de sesión de OpenClaw./restartestá deshabilitado por defecto; establezcacommands.restart: truepara habilitarlo./verboseestá pensado para depuración y visibilidad adicional; manténgalo apagado en uso normal./reasoning(y/verbose) son riesgosos en entornos de grupo: pueden revelar razonamiento interno o salida de herramientas que no pretendía exponer. Prefiera dejarlos apagados, especialmente en chats de grupo.- Ruta rápida: los mensajes solo de comandos de remitentes permitidos se gestionan de inmediato (omiten cola + modelo).
- Puerta de mención de grupo: los mensajes solo de comandos de remitentes permitidos omiten los requisitos de mención.
- Atajos en línea (solo remitentes permitidos): ciertos comandos también funcionan cuando se incrustan en un mensaje normal y se eliminan antes de que el modelo vea el texto restante.
- Ejemplo:
hey /statusactiva una respuesta de estado, y el texto restante continúa por el flujo normal.
- Ejemplo:
- Actualmente:
/help,/commands,/status,/whoami(/id). - Los mensajes solo de comandos no autorizados se ignoran silenciosamente, y los tokens
/...en línea se tratan como texto plano. - Comandos de skills: las skills
user-invocablese exponen como comandos de barra. Los nombres se sanitizan aa-z0-9_(máx. 32 caracteres); las colisiones reciben sufijos numéricos (p. ej.,_2)./skill <name> [input]ejecuta una skill por nombre (útil cuando los límites de comandos nativos impiden comandos por skill).- De forma predeterminada, los comandos de skills se reenvían al modelo como una solicitud normal.
- Las skills pueden declarar opcionalmente
command-dispatch: toolpara enrutar el comando directamente a una herramienta (determinista, sin modelo). - Ejemplo:
/prose(plugin OpenProse) — vea OpenProse.
- Argumentos de comandos nativos: Discord usa autocompletado para opciones dinámicas (y menús de botones cuando omite argumentos obligatorios). Telegram y Slack muestran un menú de botones cuando un comando admite opciones y omite el argumento.
Superficies de uso (qué se muestra dónde)
- Uso/cuota del proveedor (ejemplo: “Claude 80% restante”) aparece en
/statuspara el proveedor del modelo actual cuando el seguimiento de uso está habilitado. - Tokens/costo por respuesta está controlado por
/usage off|tokens|full(se añade a las respuestas normales). /model statustrata sobre modelos/autenticación/endpoints, no sobre uso.
Selección de modelo (/model)
/model se implementa como una directiva.
Ejemplos:
/modely/model listmuestran un selector compacto y numerado (familia de modelos + proveedores disponibles)./model <#>selecciona desde ese selector (y prefiere el proveedor actual cuando es posible)./model statusmuestra la vista detallada, incluido el endpoint del proveedor configurado (baseUrl) y el modo de API (api) cuando está disponible.
Debug overrides
/debug le permite establecer sobrescrituras de configuración solo en tiempo de ejecución (memoria, no disco). Solo propietario. Deshabilitado por defecto; habilítelo con commands.debug: true.
Ejemplos:
- Las sobrescrituras se aplican de inmediato a nuevas lecturas de configuración, pero no escriben en
openclaw.json. - Use
/debug resetpara borrar todas las sobrescrituras y volver a la configuración en disco.
Actualizaciones de configuración
/config escribe en su configuración en disco (openclaw.json). Solo propietario. Deshabilitado por defecto; habilítelo con commands.config: true.
Ejemplos:
- La configuración se valida antes de escribir; los cambios inválidos se rechazan.
- Las actualizaciones de
/configpersisten entre reinicios.
Notas de superficie
- Comandos de texto se ejecutan en la sesión de chat normal (los mensajes directos comparten
main, los grupos tienen su propia sesión). - Comandos nativos usan sesiones aisladas:
- Discord:
agent:<agentId>:discord:slash:<userId> - Slack:
agent:<agentId>:slack:slash:<userId>(prefijo configurable mediantechannels.slack.slashCommand.sessionPrefix) - Telegram:
telegram:slash:<userId>(apunta a la sesión del chat medianteCommandTargetSessionKey)
- Discord:
/stopapunta a la sesión de chat activa para poder abortar la ejecución actual.- Slack:
channels.slack.slashCommandaún es compatible para un solo comando de estilo/openclaw. Si habilitacommands.native, debe crear un comando de barra de Slack por cada comando integrado (los mismos nombres que/help). Los menús de argumentos de comandos para Slack se entregan como botones efímeros de Block Kit.