Ir al contenido

Configura comandos Slash en OpenClaw: Guía técnica

{
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 defecto true) 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.
  • 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.native o channels.slack.commands.native para sobrescribir por proveedor (booleano o "auto").
    • false elimina 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.nativeSkills o channels.slack.commands.nativeSkills para sobrescribir por proveedor.
  • commands.bash (por defecto false) activa ! <cmd> para ejecutar comandos de la shell del host (/bash <cmd> es un alias; requiere allowlists en tools.elevated).
  • commands.bashForegroundMs (por defecto 2000) controla cuánto tiempo espera bash antes de pasar a modo background (0 lo pasa a background inmediatamente).
  • commands.config (por defecto false) activa /config (lee y escribe en openclaw.json).
  • commands.mcp (por defecto false) activa /mcp (lee y escribe la configuración MCP gestionada por OpenClaw en mcp.servers).
  • commands.plugins (por defecto false) activa /plugins (descubrimiento, estado, instalación y controles de activación de plugins).
  • commands.debug (por defecto false) activa /debug (sobrescrituras solo en tiempo de ejecución).
  • commands.restart (por defecto true) activa /restart y 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 de commands.allowFrom.
  • commands.ownerDisplay controla cómo aparecen los IDs de los propietarios en el system prompt: raw o hash.
  • commands.ownerDisplaySecret establece opcionalmente el secreto HMAC usado cuando commands.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 y commands.useAccessGroups). Usa "*" para un valor global; las claves específicas por proveedor lo sobrescriben.
  • commands.useAccessGroups (por defecto true) aplica allowlists y políticas para comandos cuando commands.allowFrom no está configurado.

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 integrados disponibles actualmente:

  • /new [model] inicia una nueva sesión; /reset es el alias para reiniciar.
  • /compact [instructions] compacta el contexto de la sesión. Consulta /concepts/compaction.
  • /stop aborta la ejecución actual.
  • /session idle &lt;duration|off&gt; y /session max-age &lt;duration|off&gt; gestionan la expiración del thread-binding.
  • /think &lt;off|minimal|low|medium|high|xhigh&gt; establece el nivel de pensamiento. Aliases: /thinking, /t.
  • /verbose on|off|full cambia 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=&lt;auto|sandbox|gateway|node&gt; security=&lt;deny|allowlist|full&gt; ask=&lt;off|on-miss|always&gt; node=&lt;id&gt; 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 como debounce:2s cap:25 drop:summarize.
  • /help muestra un resumen corto de ayuda.
  • /commands muestra el catálogo de comandos generado.
  • /tools [compact|verbose] muestra qué puede usar el agente actual en este momento.
  • /status muestra el estado de ejecución, incluyendo uso y cuota del proveedor si están disponibles.
  • /tasks lista 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.
  • /whoami muestra 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|spawn gestiona 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|help gestiona 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.
  • /unfocus elimina el vínculo actual.
  • /agents lista los agentes vinculados al hilo para la sesión actual.
  • /kill &lt;id|#|all&gt; aborta uno o todos los sub-agentes en ejecución.
  • /steer &lt;id|#&gt; &lt;message&gt; envía instrucciones a un sub-agente en ejecución. Alias: /tell.
  • /config show|get|set|unset lee o escribe en openclaw.json. Solo para propietarios. Requiere commands.config: true.
  • /mcp show|get|set|unset lee o escribe la configuración del servidor MCP gestionada por OpenClaw. Solo para propietarios. Requiere commands.mcp: true.
  • /plugins list|inspect|show|get|install|enable|disable inspecciona o modifica el estado de los plugins. /plugin es un alias. Solo propietarios para escritura. Requiere commands.plugins: true.
  • /debug show|set|unset|reset gestiona sobrescrituras de configuración solo en tiempo de ejecución. Solo para propietarios. Requiere commands.debug: true.
  • /usage off|tokens|full|cost controla el pie de página de uso por respuesta o imprime un resumen de costes locales.
  • /tts on|off|status|provider|limit|summary|audio|help controla el TTS. Consulta /tools/tts.
  • /restart reinicia OpenClaw si está activado. Por defecto: activado; usa commands.restart: false para desactivarlo.
  • /activation mention|always establece el modo de activación en grupos.
  • /send on|off|inherit establece la política de envío. Solo para propietarios.
  • /bash <command> ejecuta un comando de shell en el host. Solo texto. Alias: ! <command>. Requiere commands.bash: true y allowlists en tools.elevated.
  • !poll [sessionId] comprueba un trabajo de bash en segundo plano.
  • !stop [sessionId] detiene un trabajo de bash en segundo plano.

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)

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 &lt;camera|screen|writes|all&gt; [duration]|disarm activa temporalmente comandos de nodos telefónicos de alto riesgo.
  • /voice status|list [limit]|set &lt;voiceId|name&gt; 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|skills inspecciona 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

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.nativeSkills y channels.<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|remove requiere commands.config=true y respeta configWrites del canal.
  • En canales con varias cuentas, /allowlist --account <id> y /config set channels.<provider>.accounts.<id>... también respetan el configWrites de la cuenta objetivo.
  • /usage controla el pie de página de uso por respuesta; /usage cost imprime un resumen de costes locales desde los logs de sesión de OpenClaw.
  • /restart está activado por defecto; configura commands.restart: false para desactivarlo.
  • /plugins install <spec> acepta las mismas especificaciones que openclaw plugins install: ruta local, paquete npm o clawhub:<pkg>.
  • /plugins enable|disable actualiza la configuración del plugin y puede solicitar un reinicio.
  • Comando nativo exclusivo de Discord: /vc join|leave|status controla los canales de voz (requiere channels.discord.voice y 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.enabled o channels.discord.threadBindings.enabled).
  • Referencia de comandos ACP y comportamiento en ejecución: ACP Agents.
  • /verbose está pensado para depuración y visibilidad extra; mantenlo en off en uso normal.
  • /fast on|off mantiene una sobrescritura de sesión. Usa la opción inherit en la UI de Sesiones para borrarla y volver a los valores por defecto.
  • /fast depende del proveedor: OpenAI lo mapea a service_tier=priority, mientras que las peticiones directas a Anthropic lo mapean a service_tier=auto o standard_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 /verbose está en on o full.
  • /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.
  • /model aplica 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 /status activa una respuesta de estado y el resto del texto sigue el flujo normal.
  • 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: tool para 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 /tools por defecto es compacto y está optimizado para un escaneo rápido.
  • /tools verbose añ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.
  • /tools incluye 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.

  • Uso/cuota del Provider (ejemplo: “Claude 80% left”) aparece en /status para 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 de model_remains prefieren la entrada del chat-model más una etiqueta de plan con el tag del model.
  • Líneas de Token/cache en /status pueden 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 status trata sobre models/auth y endpoints, no sobre el uso.

/model se implementa como una directiva.

Ejemplos:

/model
/model list
/model 3
/model openai/gpt-5.4
/model opus@anthropic:default
/model status

Notas:

  • /model y /model list muestran un selector numerado y compacto (familia de modelos + proveedores disponibles).
  • En Discord, /model y /models abren 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 status muestra 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 reset

Notas:

  • Las sobrescrituras se aplican al instante en las nuevas lecturas de configuración. No se guardan en openclaw.json.
  • Usa /debug reset para eliminar todas las sobrescrituras y regresar a la configuración guardada en el disco.

/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.responsePrefix

Notas:

  • La configuración se valida antes de escribirse; si los cambios no son válidos, se rechazan.
  • Las actualizaciones realizadas con /config persisten después de reiniciar.

/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 context7

Notas:

  • /mcp guarda 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.

/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 context7

Notas:

  • /plugins list y /plugins show realizan un descubrimiento de plugins real comparando el workspace actual con la configuración en disco.
  • /plugins enable|disable solo 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.
  • 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 mediante channels.slack.slashCommand.sessionPrefix)
    • Telegram: telegram:slash:<userId> (apunta a la sesión de chat a través de CommandTargetSessionKey)
  • /stop apunta a la sesión de chat activa para poder abortar la ejecución actual.
  • Slack: channels.slack.slashCommand sigue siendo compatible para un único comando tipo /openclaw. Si activas commands.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 /status sigue funcionando en los mensajes de Slack.

/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.

AI Setup Assistant

OpenClaw

OpenClaw Expert

Sigues atascado?

Si esta pagina no resolvio tu caso, pregunta a OpenClaw Expert para pasos concretos.