Comandos con barra
Los comandos son gestionados por el Gateway. La mayoría de los comandos deben enviarse como un mensaje independiente que empiece por/.
El comando de chat bash solo para host usa ! <cmd> (con /bash <cmd> como alias).
Hay dos sistemas relacionados:
- Comandos: mensajes independientes
/.... - Directivas:
/think,/fast,/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 hacen persistir ajustes de sesión.
- En mensajes solo de directivas (el mensaje contiene únicamente directivas), persisten en la sesión y responden con una confirmación.
- Las directivas solo se aplican a remitentes autorizados. Si se establece
commands.allowFrom, esa es la única lista de permitidos usada; en caso contrario, la autorización proviene de las listas de permitidos/emparejamiento del canal máscommands.useAccessGroups. Los remitentes no autorizados ven las directivas tratadas como texto sin formato.
/help, /commands, /status, /whoami (/id).
Se ejecutan inmediatamente, 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/Microsoft Teams), los comandos de texto siguen funcionando aunque lo establezcas en
false.
- En superficies sin comandos nativos (WhatsApp/WebChat/Signal/iMessage/Google Chat/Microsoft Teams), los comandos de texto siguen funcionando aunque lo establezcas en
commands.native(predeterminado"auto") registra comandos nativos.- Auto: activado para Discord/Telegram; desactivado para Slack (hasta que añadas comandos con barra); ignorado para proveedores sin soporte nativo.
- Establece
channels.discord.commands.native,channels.telegram.commands.nativeochannels.slack.commands.nativepara anularlo por proveedor (bool o"auto"). falseborra en el arranque los comandos registrados previamente en Discord/Telegram. 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 con barra por Skill).
- Establece
channels.discord.commands.nativeSkills,channels.telegram.commands.nativeSkillsochannels.slack.commands.nativeSkillspara anularlo por proveedor (bool o"auto").
commands.bash(predeterminadofalse) habilita! <cmd>para ejecutar comandos de shell en el host (/bash <cmd>es un alias; requiere listas de permitidos detools.elevated).commands.bashForegroundMs(predeterminado2000) controla cuánto tiempo espera bash antes de cambiar a modo en segundo plano (0lo manda al fondo inmediatamente).commands.config(predeterminadofalse) habilita/config(lee/escribeopenclaw.json).commands.mcp(predeterminadofalse) habilita/mcp(lee/escribe configuración MCP gestionada por OpenClaw enmcp.servers).commands.plugins(predeterminadofalse) habilita/plugins(detección/estado de plugins más controles de instalación + activación/desactivación).commands.debug(predeterminadofalse) habilita/debug(anulaciones solo de runtime).commands.allowFrom(opcional) establece una lista de permitidos por proveedor para la autorización de comandos. Cuando se configura, es la única fuente de autorización para comandos y directivas (se ignoran las listas de permitidos/emparejamiento del canal ycommands.useAccessGroups). Usa"*"para un valor global predeterminado; las claves específicas por proveedor lo anulan.commands.useAccessGroups(predeterminadotrue) aplica listas de permitidos/políticas a los comandos cuandocommands.allowFromno está establecido.
Lista de comandos
Texto + nativos (cuando están habilitados):/help/commands/tools [compact|verbose](muestra lo que el agente actual puede usar ahora mismo;verboseañade descripciones)/skill <name> [input](ejecuta una Skill por nombre)/status(muestra el estado actual; incluye uso/cuota del proveedor para el proveedor del modelo actual cuando está disponible)/tasks(lista tareas en segundo plano de la sesión actual; muestra detalles de tareas activas y recientes con recuentos de fallback locales del agente)/allowlist(listar/añadir/eliminar entradas de la lista de permitidos)/approve <id> <decision>(resuelve solicitudes de aprobación de exec; usa el mensaje de aprobación pendiente para ver las decisiones disponibles)/context [list|detail|json](explica “context”;detailmuestra tamaño por archivo + por herramienta + por Skill + del prompt del sistema)/btw <question>(hace una pregunta lateral efímera sobre la sesión actual sin cambiar el contexto futuro de la sesión; consulta /tools/btw)/export-session [path](alias:/export) (exporta la sesión actual a HTML con el prompt del sistema completo)/whoami(muestra tu id de remitente; alias:/id)/session idle <duration|off>(gestiona el auto-unfocus por inactividad para enlaces de hilos enfocados)/session max-age <duration|off>(gestiona el auto-unfocus por edad máxima estricta para enlaces de hilos enfocados)/subagents list|kill|log|info|send|steer|spawn(inspecciona, controla o crea ejecuciones de subagentes para la sesión actual)/acp spawn|cancel|steer|close|status|set-mode|set|cwd|permissions|timeout|model|reset-options|doctor|install|sessions(inspecciona y controla sesiones de runtime ACP)/agents(lista agentes enlazados al hilo para esta sesión)/focus <target>(Discord: vincula este hilo, o un hilo nuevo, a un objetivo de sesión/subagente)/unfocus(Discord: elimina el enlace actual del hilo)/kill <id|#|all>(aborta inmediatamente uno o todos los subagentes en ejecución de esta sesión; sin mensaje de confirmación)/steer <id|#> <message>(redirige inmediatamente un subagente en ejecución: durante la ejecución cuando sea posible; si no, aborta el trabajo actual y reinicia con el mensaje de redirección)/tell <id|#> <message>(alias de/steer)/config show|get|set|unset(persiste configuración en disco, solo propietario; requierecommands.config: true)/mcp show|get|set|unset(gestiona la configuración de servidores MCP de OpenClaw, solo propietario; requierecommands.mcp: true)/plugins list|show|get|install|enable|disable(inspecciona plugins detectados, instala nuevos y alterna su activación; solo propietario para escrituras; requierecommands.plugins: true)/plugines un alias de/plugins./plugin install <spec>acepta las mismas especificaciones de plugin queopenclaw plugins install: ruta/archivo local, paquete npm oclawhub:<pkg>.- Las escrituras de activación/desactivación siguen respondiendo con una pista de reinicio. En un gateway en primer plano observado, OpenClaw puede realizar ese reinicio automáticamente justo después de la escritura.
/debug show|set|unset|reset(anulaciones de runtime, solo propietario; requierecommands.debug: true)/usage off|tokens|full|cost(pie de uso por respuesta o resumen local de costos)/tts off|always|inbound|tagged|status|provider|limit|summary|audio(controla TTS; consulta /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) (cambia las respuestas a Telegram)/dock-discord(alias:/dock_discord) (cambia las respuestas a Discord)/dock-slack(alias:/dock_slack) (cambia las respuestas a Slack)/activation mention|always(solo grupos)/send on|off|inherit(solo propietario)/reseto/new [model](pista opcional de modelo; el resto se pasa tal cual)/think <off|minimal|low|medium|high|xhigh>(opciones dinámicas según modelo/proveedor; alias:/thinking,/t)/fast status|on|off(si omites el argumento, muestra el estado efectivo actual del modo fast)/verbose on|full|off(alias:/v)/reasoning on|off|stream(alias:/reason; cuando está activado, envía un mensaje aparte con el prefijoReasoning:;stream= solo borrador de Telegram)/elevated on|off|ask|full(alias:/elev;fullomite aprobaciones de exec)/exec host=<auto|sandbox|gateway|node> security=<deny|allowlist|full> ask=<off|on-miss|always> node=<id>(envía/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ía/queuepara ver la configuración actual)/bash <command>(solo host; alias de! <command>; requierecommands.bash: true+ listas de permitidos detools.elevated)/dreaming [off|core|rem|deep|status|help](activa/desactiva el modo dreaming o muestra el estado; consulta Dreaming)
/compact [instructions](consulta /concepts/compaction)! <command>(solo host; uno a la vez; usa!poll+!stoppara trabajos de larga duración)!poll(comprueba salida/estado; aceptasessionIdopcional;/bash polltambién funciona)!stop(detiene el trabajo bash en ejecución; aceptasessionIdopcional;/bash stoptambién funciona)
- Los comandos aceptan
:opcional entre el comando y los argumentos (por ejemplo,/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 cuerpo del mensaje.- Para el desglose completo del uso del proveedor, usa
openclaw status --usage. /allowlist add|removerequierecommands.config=truey respetaconfigWritesdel canal.- En canales con varias cuentas,
/allowlist --account <id>orientado a configuración y/config set channels.<provider>.accounts.<id>...también respetanconfigWritesde la cuenta de destino. /usagecontrola el pie de uso por respuesta;/usage costimprime un resumen local de costos a partir de los registros de sesión de OpenClaw./restartestá habilitado de forma predeterminada; establececommands.restart: falsepara deshabilitarlo.- Comando nativo solo de Discord:
/vc join|leave|statuscontrola canales de voz (requierechannels.discord.voicey comandos nativos; no está disponible como texto). - Los comandos de enlace de hilos de Discord (
/focus,/unfocus,/agents,/session idle,/session max-age) requieren que los enlaces efectivos de hilos estén habilitados (session.threadBindings.enabledy/ochannels.discord.threadBindings.enabled). - Referencia de comandos ACP y comportamiento de runtime: Agentes ACP.
/verboseestá pensado para depuración y visibilidad adicional; mantenlo desactivado en uso normal./fast on|offhace persistir una anulación de sesión. Usa la opcióninheritde la UI de sesiones para borrarla y volver a los valores predeterminados de la configuración./fastes específico del proveedor: OpenAI/OpenAI Codex lo asignan aservice_tier=priorityen endpoints nativos de Responses, mientras que las solicitudes directas públicas a Anthropic, incluido el tráfico autenticado con OAuth enviado aapi.anthropic.com, lo asignan aservice_tier=autoostandard_only. Consulta OpenAI y Anthropic.- Los resúmenes de fallo de herramientas siguen mostrándose cuando corresponde, pero el texto detallado del fallo solo se incluye cuando
/verboseestá enonofull. /reasoning(y/verbose) son arriesgados en entornos de grupo: pueden revelar razonamiento interno o salida de herramientas que no pretendías exponer. Es preferible dejarlos desactivados, especialmente en chats grupales./modelhace persistir el nuevo modelo de la sesión inmediatamente.- Si el agente está inactivo, la siguiente ejecución lo usa de inmediato.
- Si ya hay una ejecución activa, OpenClaw marca un cambio en vivo como pendiente y solo reinicia con el nuevo modelo en un punto limpio de reintento.
- Si la actividad de herramientas o la salida de respuesta ya ha comenzado, el cambio pendiente puede quedarse en cola hasta una oportunidad posterior de reintento o el siguiente turno del usuario.
- Ruta rápida: los mensajes que solo contienen comandos de remitentes permitidos se gestionan inmediatamente (omiten cola + modelo).
- Control por mención en grupos: los mensajes que solo contienen comandos de remitentes permitidos omiten los requisitos de mención.
- Atajos en línea (solo remitentes permitidos): ciertos comandos también funcionan cuando están incrustados 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 sin formato. - Comandos de Skills: las Skills
user-invocablese exponen como comandos con barra. Los nombres se sanean aa-z0-9_(máx. 32 caracteres); las colisiones reciben sufijos numéricos (por ejemplo,_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) — consulta OpenProse.
- Argumentos de comandos nativos: Discord usa autocompletado para opciones dinámicas (y menús de botones cuando omites argumentos obligatorios). Telegram y Slack muestran un menú de botones cuando un comando admite opciones y omites el argumento.
/tools
/tools responde a una pregunta de runtime, no de configuración: qué puede usar este agente ahora mismo en
esta conversación.
/toolspredeterminado es compacto y está optimizado para un escaneo rápido./tools verboseañade descripciones breves.- Las superficies de comandos nativos que admiten argumentos exponen el mismo cambio de modo
compact|verbose. - Los resultados están acotados a la sesión, así que cambiar de agente, canal, hilo, autorización del remitente o modelo puede cambiar la salida.
/toolsincluye herramientas realmente accesibles en runtime, incluidas herramientas core, herramientas de plugins conectados y herramientas propiedad del canal.
/tools como un catálogo estático.
Superficies de uso (qué se muestra y dónde)
- Uso/cuota del proveedor (ejemplo: “Claude 80% left”) aparece en
/statuspara el proveedor del modelo actual cuando el seguimiento de uso está habilitado. OpenClaw normaliza las ventanas del proveedor a% left; para MiniMax, los campos porcentuales solo-de-restante se invierten antes de mostrarse, y las respuestasmodel_remainsprefieren la entrada del modelo de chat junto con una etiqueta de plan etiquetada por modelo. - Líneas de tokens/caché en
/statuspueden recurrir a la entrada de uso de transcripción más reciente cuando la instantánea activa de la sesión es escasa. Los valores activos distintos de cero siguen prevaleciendo, y el fallback de transcripción también puede recuperar la etiqueta del modelo activo de runtime más un total orientado al prompt mayor cuando los totales almacenados faltan o son menores. - Tokens/costo por respuesta se controla con
/usage off|tokens|full(se agrega a las respuestas normales). /model statustrata sobre modelos/auth/endpoints, no sobre uso.
Selección de modelo (/model)
/model está implementado como una directiva.
Ejemplos:
/modely/model listmuestran un selector compacto numerado (familia de modelos + proveedores disponibles).- En Discord,
/modely/modelsabren un selector interactivo con menús desplegables de proveedor y modelo más un paso de envío. /model <#>selecciona desde ese selector (y prefiere el proveedor actual cuando es posible)./model statusmuestra la vista detallada, incluido el endpoint configurado del proveedor (baseUrl) y el modo de API (api) cuando está disponible.
Anulaciones de depuración
/debug te permite establecer anulaciones de configuración solo de runtime (memoria, no disco). Solo propietario. Deshabilitado de forma predeterminada; habilítalo con commands.debug: true.
Ejemplos:
- Las anulaciones se aplican inmediatamente a las nuevas lecturas de configuración, pero no escriben en
openclaw.json. - Usa
/debug resetpara borrar todas las anulaciones y volver a la configuración en disco.
Actualizaciones de configuración
/config escribe en tu configuración en disco (openclaw.json). Solo propietario. Deshabilitado de forma predeterminada; habilítalo con commands.config: true.
Ejemplos:
- La configuración se valida antes de escribir; los cambios no válidos se rechazan.
- Las actualizaciones de
/configpersisten tras reinicios.
Actualizaciones de MCP
/mcp escribe definiciones de servidores MCP gestionadas por OpenClaw bajo mcp.servers. Solo propietario. Deshabilitado de forma predeterminada; habilítalo con commands.mcp: true.
Ejemplos:
/mcpguarda la configuración en la configuración de OpenClaw, no en ajustes del proyecto propiedad de Pi.- Los adaptadores de runtime deciden qué transportes son realmente ejecutables.
Actualizaciones de plugins
/plugins permite a los operadores inspeccionar plugins detectados y alternar su activación en la configuración. Los flujos de solo lectura pueden usar /plugin como alias. Deshabilitado de forma predeterminada; habilítalo con commands.plugins: true.
Ejemplos:
/plugins listy/plugins showusan detección real de plugins frente al espacio de trabajo actual más la configuración en disco./plugins enable|disableactualiza solo la configuración del plugin; no instala ni desinstala plugins.- Después de cambios de activación/desactivación, reinicia el gateway para aplicarlos.
Notas de superficie
- Los comandos de texto se ejecutan en la sesión de chat normal (los mensajes directos comparten
main, los grupos tienen su propia sesión). - Los 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.slashCommandsigue siendo compatible para un único comando estilo/openclaw. Si habilitascommands.native, debes crear un comando con 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.- Excepción nativa de Slack: registra
/agentstatus(no/status) porque Slack reserva/status. El texto/statussigue funcionando en mensajes de Slack.
- Excepción nativa de Slack: registra
Preguntas laterales con BTW
/btw es una pregunta lateral rápida sobre la sesión actual.
A diferencia del chat normal:
- usa la sesión actual como contexto de fondo,
- se ejecuta como una llamada independiente sin herramientas y de una sola vez,
- no cambia el contexto futuro de la sesión,
- no se escribe en el historial de la transcripción,
- se entrega como un resultado lateral en vivo en lugar de como un mensaje normal del asistente.
/btw sea útil cuando quieres una aclaración temporal mientras la
tarea principal sigue en marcha.
Ejemplo: