Configura comandos Slash en OpenClaw: Guía técnica
Configuración
Sección titulada «Configuración»{ commands: { native: "auto", nativeSkills: "auto", text: true, bash: false, bashForegroundMs: 2000, config: false, mcp: false, plugins: false, debug: false, restart: true, ownerAllowFrom: ["discord:123456789012345678"], ownerDisplay: "raw", ownerDisplaySecret: "${OWNER_ID_HASH_SECRET}", allowFrom: { "*": ["user1"], discord: ["user:123"], }, useAccessGroups: true, },}commands.text(por defectotrue) activa el procesamiento de/...en los mensajes de chat.- En plataformas sin comandos nativos (WhatsApp, WebChat, Signal, iMessage, Google Chat o Microsoft Teams), los comandos de texto funcionan aunque configures esto como
false.
- En plataformas sin comandos nativos (WhatsApp, WebChat, Signal, iMessage, Google Chat o Microsoft Teams), los comandos de texto funcionan aunque configures esto como
commands.native(por defecto"auto") registra comandos nativos.- Auto: activado para Discord y Telegram; desactivado para Slack (hasta que añadas slash commands); se ignora en proveedores sin soporte nativo.
- Configura
channels.discord.commands.native,channels.telegram.commands.nativeochannels.slack.commands.nativepara sobrescribir por proveedor (booleano o"auto"). falseelimina los comandos registrados previamente en Discord o Telegram al arrancar. Los comandos de Slack se gestionan en su propia app y no se eliminan automáticamente.
commands.nativeSkills(por defecto"auto") registra comandos de skill de forma nativa cuando es posible.- Auto: activado para Discord y Telegram; desactivado para Slack (Slack requiere crear un slash command por cada skill).
- Configura
channels.discord.commands.nativeSkills,channels.telegram.commands.nativeSkillsochannels.slack.commands.nativeSkillspara sobrescribir por proveedor.
commands.bash(por defectofalse) activa! <cmd>para ejecutar comandos de la shell del host (/bash <cmd>es un alias; requiere allowlists entools.elevated).commands.bashForegroundMs(por defecto2000) controla cuánto tiempo espera bash antes de pasar a modo background (0lo pasa a background inmediatamente).commands.config(por defectofalse) activa/config(lee y escribe enopenclaw.json).commands.mcp(por defectofalse) activa/mcp(lee y escribe la configuración MCP gestionada por OpenClaw enmcp.servers).commands.plugins(por defectofalse) activa/plugins(descubrimiento, estado, instalación y controles de activación de plugins).commands.debug(por defectofalse) activa/debug(sobrescrituras solo en tiempo de ejecución).commands.restart(por defectotrue) activa/restarty las acciones de la herramienta de reinicio del gateway.commands.ownerAllowFrom(opcional) establece la allowlist explícita del propietario para comandos y herramientas restringidas. Es independiente decommands.allowFrom.commands.ownerDisplaycontrola cómo aparecen los IDs de los propietarios en el system prompt:rawohash.commands.ownerDisplaySecretestablece opcionalmente el secreto HMAC usado cuandocommands.ownerDisplay="hash".commands.allowFrom(opcional) establece una allowlist por proveedor para la autorización de comandos. Si se configura, es la única fuente de autorización para comandos y directivas (se ignoran las allowlists de canales ycommands.useAccessGroups). Usa"*"para un valor global; las claves específicas por proveedor lo sobrescriben.commands.useAccessGroups(por defectotrue) aplica allowlists y políticas para comandos cuandocommands.allowFromno está configurado.
Lista de comandos
Sección titulada «Lista de comandos»Fuente de verdad actual:
- Los built-ins del núcleo vienen de
src/auto-reply/commands-registry.shared.ts - Los comandos de dock generados vienen de
src/auto-reply/commands-registry.data.ts - Los comandos de plugins vienen de las llamadas
registerCommand()de cada plugin - La disponibilidad real en tu Gateway depende de los flags de configuración, la plataforma del canal y los plugins instalados o activados.
Comandos built-in del núcleo
Sección titulada «Comandos built-in del núcleo»Comandos integrados disponibles actualmente:
/new [model]inicia una nueva sesión;/resetes el alias para reiniciar./compact [instructions]compacta el contexto de la sesión. Consulta /concepts/compaction./stopaborta la ejecución actual./session idle <duration|off>y/session max-age <duration|off>gestionan la expiración del thread-binding./think <off|minimal|low|medium|high|xhigh>establece el nivel de pensamiento. Aliases:/thinking,/t./verbose on|off|fullcambia la salida detallada. Alias:/v./fast [status|on|off]muestra o establece el modo rápido./reasoning [on|off|stream]cambia la visibilidad del razonamiento. Alias:/reason./elevated [on|off|ask|full]cambia el modo elevado. Alias:/elev./exec host=<auto|sandbox|gateway|node> security=<deny|allowlist|full> ask=<off|on-miss|always> node=<id>muestra o establece los valores por defecto de ejecución./model [name|#|status]muestra o establece el modelo./models [provider] [page] [limit=<n>|size=<n>|all]lista proveedores o modelos de un proveedor./queue <mode>gestiona el comportamiento de la cola (steer,interrupt,followup,collect,steer-backlog) y opciones comodebounce:2s cap:25 drop:summarize./helpmuestra un resumen corto de ayuda./commandsmuestra el catálogo de comandos generado./tools [compact|verbose]muestra qué puede usar el agente actual en este momento./statusmuestra el estado de ejecución, incluyendo uso y cuota del proveedor si están disponibles./taskslista las tareas en segundo plano activas o recientes de la sesión actual./context [list|detail|json]explica cómo se construye el contexto./export-session [path]exporta la sesión actual a HTML. Alias:/export./whoamimuestra tu ID de remitente. Alias:/id./skill <name> [input]ejecuta una skill por su nombre./allowlist [list|add|remove] ...gestiona las entradas de la allowlist. Solo texto./approve <id> <decision>resuelve las solicitudes de aprobación de ejecución./btw <question>hace una pregunta secundaria sin cambiar el contexto futuro de la sesión. Consulta /tools/btw./subagents list|kill|log|info|send|steer|spawngestiona las ejecuciones de sub-agentes para la sesión actual./acp spawn|cancel|steer|close|sessions|status|set-mode|set|cwd|permissions|timeout|model|reset-options|doctor|install|helpgestiona las sesiones ACP y las opciones de ejecución./focus <target>vincula el hilo de Discord o la conversación de Telegram actual a un objetivo de sesión./unfocuselimina el vínculo actual./agentslista los agentes vinculados al hilo para la sesión actual./kill <id|#|all>aborta uno o todos los sub-agentes en ejecución./steer <id|#> <message>envía instrucciones a un sub-agente en ejecución. Alias:/tell./config show|get|set|unsetlee o escribe enopenclaw.json. Solo para propietarios. Requierecommands.config: true./mcp show|get|set|unsetlee o escribe la configuración del servidor MCP gestionada por OpenClaw. Solo para propietarios. Requierecommands.mcp: true./plugins list|inspect|show|get|install|enable|disableinspecciona o modifica el estado de los plugins./plugines un alias. Solo propietarios para escritura. Requierecommands.plugins: true./debug show|set|unset|resetgestiona sobrescrituras de configuración solo en tiempo de ejecución. Solo para propietarios. Requierecommands.debug: true./usage off|tokens|full|costcontrola el pie de página de uso por respuesta o imprime un resumen de costes locales./tts on|off|status|provider|limit|summary|audio|helpcontrola el TTS. Consulta /tools/tts./restartreinicia OpenClaw si está activado. Por defecto: activado; usacommands.restart: falsepara desactivarlo./activation mention|alwaysestablece el modo de activación en grupos./send on|off|inheritestablece la política de envío. Solo para propietarios./bash <command>ejecuta un comando de shell en el host. Solo texto. Alias:! <command>. Requierecommands.bash: truey allowlists entools.elevated.!poll [sessionId]comprueba un trabajo de bash en segundo plano.!stop [sessionId]detiene un trabajo de bash en segundo plano.
Comandos de dock generados
Sección titulada «Comandos de dock generados»Los comandos de dock se generan a partir de plugins de canales con soporte para comandos nativos. Conjunto actual:
/dock-discord(alias:/dock_discord)/dock-mattermost(alias:/dock_mattermost)/dock-slack(alias:/dock_slack)/dock-telegram(alias:/dock_telegram)
Comandos de plugins incluidos
Sección titulada «Comandos de plugins incluidos»Los plugins incluidos pueden añadir más slash commands. Comandos actuales en este repositorio:
/dreaming [on|off|status|help]activa o desactiva el dreaming de memoria. Consulta Dreaming./pair [qr|status|pending|approve|cleanup|notify]gestiona el flujo de emparejamiento y configuración de dispositivos. Consulta Pairing./phone status|arm <camera|screen|writes|all> [duration]|disarmactiva temporalmente comandos de nodos telefónicos de alto riesgo./voice status|list [limit]|set <voiceId|name>gestiona la configuración de voz de Talk. En Discord, el nombre del comando nativo es/talkvoice./card ...envía ajustes preestablecidos de rich cards de LINE. Consulta LINE./codex status|models|threads|resume|compact|review|account|mcp|skillsinspecciona y controla el arnés del servidor de aplicaciones Codex. Consulta Codex Harness.- Comandos exclusivos de QQBot:
/bot-ping/bot-version/bot-help/bot-upgrade/bot-logs
Comandos de skill dinámicos
Sección titulada «Comandos de skill dinámicos»Las skills que el usuario puede invocar también se exponen como slash commands:
/skill <name> [input]funciona siempre como punto de entrada genérico.- Las skills también pueden aparecer como comandos directos (ej.
/prose) cuando la skill o el plugin los registra. - El registro nativo de comandos de skill se controla mediante
commands.nativeSkillsychannels.<provider>.commands.nativeSkills.
Notas:
- Los comandos aceptan un
:opcional entre el comando y los argumentos (ej./think: high,/send: on,/help:). /new <model>acepta un alias de modelo,provider/model, o un nombre de proveedor (coincidencia difusa); si no hay coincidencia, el texto se trata como el cuerpo del mensaje.- Para ver el desglose completo del uso por proveedor, usa
openclaw status --usage. /allowlist add|removerequierecommands.config=truey respetaconfigWritesdel canal.- En canales con varias cuentas,
/allowlist --account <id>y/config set channels.<provider>.accounts.<id>...también respetan elconfigWritesde la cuenta objetivo. /usagecontrola el pie de página de uso por respuesta;/usage costimprime un resumen de costes locales desde los logs de sesión de OpenClaw./restartestá activado por defecto; configuracommands.restart: falsepara desactivarlo./plugins install <spec>acepta las mismas especificaciones queopenclaw plugins install: ruta local, paquete npm oclawhub:<pkg>./plugins enable|disableactualiza la configuración del plugin y puede solicitar un reinicio.- Comando nativo exclusivo de Discord:
/vc join|leave|statuscontrola los canales de voz (requierechannels.discord.voicey comandos nativos; no disponible como texto). - Los comandos de vinculación de hilos de Discord (
/focus,/unfocus,/agents,/session idle,/session max-age) requieren que los thread bindings estén activados (session.threadBindings.enabledochannels.discord.threadBindings.enabled). - Referencia de comandos ACP y comportamiento en ejecución: ACP Agents.
/verboseestá pensado para depuración y visibilidad extra; mantenlo en off en uso normal./fast on|offmantiene una sobrescritura de sesión. Usa la opcióninheriten la UI de Sesiones para borrarla y volver a los valores por defecto./fastdepende del proveedor: OpenAI lo mapea aservice_tier=priority, mientras que las peticiones directas a Anthropic lo mapean aservice_tier=autoostandard_only. Consulta OpenAI y Anthropic.- Los resúmenes de fallos de herramientas se muestran cuando son relevantes, pero el texto detallado del fallo solo se incluye si
/verboseestá enonofull. /reasoning(y/verbose) son arriesgados en grupos: pueden revelar razonamientos internos o salidas de herramientas que no tenías intención de exponer. Es mejor dejarlos desactivados, especialmente en chats grupales./modelaplica el nuevo modelo de sesión inmediatamente.- Si el agente está inactivo, la siguiente ejecución lo usará de inmediato.
- Si ya hay una ejecución activa, OpenClaw marca el cambio como pendiente y solo reinicia con el nuevo modelo en un punto de reintento limpio.
- Si la actividad de la herramienta o la salida de la respuesta ya ha comenzado, el cambio pendiente puede quedarse en cola hasta una oportunidad de reintento posterior o el siguiente turno del usuario.
- Vía rápida: los mensajes que solo contienen comandos de remitentes en la allowlist se gestionan inmediatamente (saltando la cola y el modelo).
- Gating de menciones en grupo: los mensajes de solo comandos de remitentes autorizados saltan los requisitos de mención.
- Atajos inline (solo remitentes autorizados): ciertos comandos funcionan integrados en un mensaje normal y se eliminan antes de que el modelo vea el texto restante.
- Ejemplo:
hola /statusactiva una respuesta de estado y el resto del texto sigue el flujo normal.
- Ejemplo:
- Actualmente:
/help,/commands,/status,/whoami(/id). - Los mensajes de solo comandos no autorizados se ignoran silenciosamente, y los tokens
/...inline se tratan como texto plano. - Comandos de skill: las skills invocables por el usuario se exponen como slash commands. Los nombres se sanean a
a-z0-9_(máximo 32 caracteres); las colisiones reciben sufijos numéricos (ej._2)./skill <name> [input]ejecuta una skill por nombre (útil cuando los límites de comandos nativos impiden comandos por skill).- Por defecto, los comandos de skill se envían al modelo como una petición normal.
- Las skills pueden declarar opcionalmente
command-dispatch: toolpara enviar 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 si omites argumentos obligatorios). Telegram y Slack muestran un menú de botones cuando un comando admite opciones y omites el argumento.
/tools responde a una pregunta de runtime, no de configuración: qué puede usar este agent ahora mismo en esta conversación.
- El
/toolspor defecto es compacto y está optimizado para un escaneo rápido. /tools verboseañade descripciones cortas.- Las superficies de comandos nativos que admiten argumentos exponen el mismo interruptor de modo que
compact|verbose. - Los resultados tienen un alcance de sesión (session-scoped), por lo que cambiar el agent, el channel, el thread, la autorización del remitente o el model puede cambiar la salida.
/toolsincluye herramientas que son realmente alcanzables en runtime, incluyendo herramientas core, plugins conectados, herramientas del channel y funciones integradas.
Para editar perfiles y overrides, usa el panel de Control UI Tools o las superficies de config/catalog en lugar de tratar /tools como un catálogo estático.
Superficies de uso (qué aparece dónde)
Sección titulada «Superficies de uso (qué aparece dónde)»- Uso/cuota del Provider (ejemplo: “Claude 80% left”) aparece en
/statuspara el model provider actual cuando el seguimiento de uso está habilitado. OpenClaw normaliza las ventanas del provider a% left; para MiniMax, los campos de porcentaje de solo-restante se invierten antes de mostrarse, y las respuestas demodel_remainsprefieren la entrada del chat-model más una etiqueta de plan con el tag del model. - Líneas de Token/cache en
/statuspueden recurrir a la última entrada de uso del transcript cuando el snapshot de la sesión en vivo es escaso. Los valores en vivo distintos de cero existentes siguen ganando, y el fallback del transcript también puede recuperar la etiqueta del model de runtime activo más un total mayor orientado al prompt cuando los totales almacenados faltan o son más pequeños. - Tokens/coste por respuesta se controla mediante
/usage off|tokens|full(añadido a las respuestas normales). /model statustrata sobre models/auth y endpoints, no sobre el uso.
Selección de modelo (/model)
Sección titulada «Selección de modelo (/model)»/model se implementa como una directiva.
Ejemplos:
/model/model list/model 3/model openai/gpt-5.4/model opus@anthropic:default/model statusNotas:
/modely/model listmuestran un selector numerado y compacto (familia de modelos + proveedores disponibles).- En Discord,
/modely/modelsabren un selector interactivo con menús desplegables para el proveedor y el modelo, junto con un paso de confirmación (Submit). /model <#>selecciona una opción de ese menú (y prioriza el proveedor actual si es posible)./model statusmuestra la vista detallada. Incluye el endpoint del proveedor configurado (baseUrl) y el modo de la API (api) si están disponibles.
Sobrescrituras de depuración (Debug overrides)
Sección titulada «Sobrescrituras de depuración (Debug overrides)»/debug te permite definir sobrescrituras de configuración solo en tiempo de ejecución (en memoria, no en el disco). Esta función es solo para el propietario. Viene desactivada por defecto; puedes activarla con commands.debug: true.
Ejemplos:
/debug show/debug set messages.responsePrefix="[openclaw]"/debug set channels.whatsapp.allowFrom=["+1555","+4477"]/debug unset messages.responsePrefix/debug resetNotas:
- Las sobrescrituras se aplican al instante en las nuevas lecturas de configuración. No se guardan en
openclaw.json. - Usa
/debug resetpara eliminar todas las sobrescrituras y regresar a la configuración guardada en el disco.
Actualizaciones de configuración
Sección titulada «Actualizaciones de configuración»/config escribe en tu configuración en disco (openclaw.json). Esta función es solo para el propietario y viene desactivada por defecto; puedes activarla con commands.config: true.
Ejemplos:
/config show/config show messages.responsePrefix/config get messages.responsePrefix/config set messages.responsePrefix="[openclaw]"/config unset messages.responsePrefixNotas:
- La configuración se valida antes de escribirse; si los cambios no son válidos, se rechazan.
- Las actualizaciones realizadas con
/configpersisten después de reiniciar.
Actualizaciones de MCP
Sección titulada «Actualizaciones de MCP»/mcp escribe definiciones de servidores MCP gestionados por OpenClaw bajo mcp.servers. Es una función solo para el propietario y está desactivada por defecto; para usarla, actívala con commands.mcp: true.
Ejemplos:
/mcp show/mcp show context7/mcp set context7={"command":"uvx","args":["context7-mcp"]}/mcp unset context7Notas:
/mcpguarda la configuración en la config de OpenClaw, no en los ajustes del proyecto propiedad de Pi.- Los adaptadores de runtime deciden qué transportes se pueden ejecutar realmente.
Actualizaciones de plugins
Sección titulada «Actualizaciones de plugins»/plugins permite a los operadores inspeccionar los plugins detectados y gestionar su activación en la configuración. Los flujos de solo lectura pueden usar /plugin como alias. Esta función está desactivada por defecto; puedes activarla con commands.plugins: true.
Ejemplos:
/plugins/plugins list/plugin show context7/plugins enable context7/plugins disable context7Notas:
/plugins listy/plugins showrealizan un descubrimiento de plugins real comparando el workspace actual con la configuración en disco./plugins enable|disablesolo actualiza la configuración de los plugins; no instala ni desinstala nada.- Tras realizar cambios de activación o desactivación, reinicia el Gateway para que se apliquen.
Notas sobre superficies
Sección titulada «Notas sobre superficies»- Los comandos de texto se ejecutan en la sesión de chat normal (los DMs comparten
main, mientras que los grupos tienen su propia sesión). - Los comandos nativos utilizan sesiones aisladas:
- Discord:
agent:<agentId>:discord:slash:<userId> - Slack:
agent:<agentId>:slack:slash:<userId>(el prefijo se puede configurar mediantechannels.slack.slashCommand.sessionPrefix) - Telegram:
telegram:slash:<userId>(apunta a la sesión de chat a través deCommandTargetSessionKey)
- 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 tipo/openclaw. Si activascommands.native, tienes que crear un comando de barra en Slack por cada comando integrado (usa los mismos nombres que en/help). Los menús de argumentos para comandos en Slack se envían como botones efímeros de Block Kit.- Excepción nativa en Slack: registra
/agentstatus(en lugar de/status) porque Slack reserva el nombre/status. El comando de texto/statussigue funcionando en los mensajes de Slack.
- Excepción nativa en Slack: registra
Preguntas secundarias BTW
Sección titulada «Preguntas secundarias BTW»/btw sirve para hacer una pregunta secundaria rápida sobre la sesión actual.
A diferencia del chat normal:
- utiliza la sesión actual como contexto de fondo,
- se ejecuta como una llamada única e independiente sin herramientas (tool-less),
- no modifica el contexto de la sesión para el futuro,
- no se guarda en el historial de la transcripción,
- se entrega como un resultado lateral en vivo en lugar de un mensaje estándar del asistente.
Esto hace que /btw sea muy útil cuando necesitas una aclaración temporal sin que la tarea principal se detenga.
Ejemplo:
/btw what are we doing right now?Consulta BTW Side Questions para conocer el comportamiento completo y los detalles de la UX del cliente.
OpenClaw Expert
Sigues atascado?
Si esta pagina no resolvio tu caso, pregunta a OpenClaw Expert para pasos concretos.