Guía de comandos de OpenCode

Comandos de OpenCode: comandos personalizados, argumentos y uso seguro

La diferencia principal es sencilla: los comandos slash integrados controlan la TUI actual, mientras que los comandos personalizados de OpenCode convierten un prompt repetible en un flujo con nombre. Empieza con un archivo Markdown en .opencode/commands/, usa $ARGUMENTS solo cuando la entrada cambie y revisa el prompt generado antes de permitir ediciones o comandos de Shell. Esta guía cubre comandos integrados, configuración Markdown y JSON, argumentos posicionales, salida de Shell, referencias de archivos, permisos y errores habituales.

Palabra clave principal
comandos de OpenCode
Documentación revisada
19 de agosto de 2026
Lectura
14 minutos
Diagrama de un terminal de OpenCode conectado con comandos integrados, archivos Markdown y configuración JSON
Los comandos de OpenCode unen acciones de la TUI con definiciones reutilizables del proyecto.

Respuesta rápida

Los comandos de OpenCode tienen tres capas útiles

Elige la capa más pequeña que resuelva la tarea para que un atajo de prompt siga siendo revisable.

CapaQué haceEjemplo
Comando integrado de la TUIControla la sesión actual o una acción incluida./help, /undo
Comando personalizadoExpande un prompt con nombre desde Markdown o JSON./review con $ARGUMENTS
Comando de ShellSe ejecuta en el terminal y es una superficie independiente.npm test, git status

Un comando personalizado no reemplaza la instalación de la CLI, el proveedor ni la política de permisos. Si falta opencode, consulta la guía de despliegue; para modelos, la guía de proveedores; para cambios y Shell, la guía de permisos. Verifica los nombres con la documentación oficial de Commands y con /help.

Comandos integrados

Usa comandos slash para la sesión actual de la TUI

OpenCode incluye /init, /undo, /redo, /share y /help. No son alias de Shell ni entradas para package.json. Escríbelos en la interfaz de OpenCode y lee el resultado antes de continuar.

/help es la primera comprobación cuando no conoces la lista de la versión instalada. /undo y /redo no sustituyen a Git. Con /share, revisa qué datos de sesión se harán visibles antes de usarlo con código privado. La lista integrada puede cambiar con cada versión.

Ejemplo Markdown

Crea primero un comando personalizado del proyecto

Un archivo Markdown se puede revisar en Git y permanece junto al repositorio que lo necesita.

  1. Crea .opencode/commands/review.md en la raíz del proyecto.
  2. Añade una descripción breve y una tarea con un límite claro.
  3. Prueba el comando en una rama pequeña y revisa el prompt y el diff.

.opencode/commands/review.md

Este ejemplo solicita un plan de revisión sin editar automáticamente.

---
description: Review the current changes
---
Review the current Git changes. Explain risky behavior,
missing tests, and the smallest safe follow-up.
Do not edit files until I approve the plan.

El nombre del archivo se convierte en el nombre del comando: se invoca como /review. Usa ~/.config/opencode/commands/ para flujos personales globales y .opencode/commands/ para rutas, pruebas o reglas del equipo. Un prompt que dice “revisa los cambios y propone un plan” es más fácil de comprobar que “arregla todo”.

Configuración JSON

Usa el objeto command para una configuración junto al proyecto

También puedes definir comandos en el objeto command de JSON o JSONC. Es útil cuando el comando debe seleccionar un agent o un modelo concreto. Las rutas y la precedencia pertenecen a la guía de configuración opencode.jsonc.

{
  "$schema": "https://opencode.ai/config.json",
  "command": {
    "test-review": {
      "template": "Review the latest test output and list the first three fixes.",
      "description": "Review test output",
      "agent": "plan"
    }
  }
}
OpciónUsoComprobación
templatePrompt que se envía al ejecutarlo.Existe y limita la tarea.
descriptionTexto breve para descubrirlo.Explica el resultado.
agentSelecciona un agent con nombre.Sus herramientas y permisos encajan.
modelCambia el modelo para este flujo.El proveedor ofrece el ID exacto.

La configuración no es un almacén de secretos. Las claves y tokens deben permanecer en el flujo de credenciales del proveedor. Un comando que usa archivos o Shell se revisa como un script.

Argumentos y contexto

Usa variables cuando el flujo realmente cambie

$ARGUMENTS recibe toda la cadena; $1 y $2 separan valores posicionales.

Diagrama de argumentos de OpenCode que pasan del terminal a una plantilla Markdown, un archivo JSON y la salida de Shell
Los argumentos deben llegar a una plantilla pequeña con destino explícito y resultado revisable.
---
description: Create a file with supplied values
---
Create a file named $1 in directory $2.
Use this content: $3
Show the proposed path before writing.

/create-file config.json src "{ \"key\": \"value\" }" entrega tres valores. La plantilla debe indicar el uso de cada uno y mostrar la ruta antes de escribir. Para una sola frase libre, $ARGUMENTS es más sencillo.

Usa @src/components/Button.tsx para una referencia de archivo y !`npm test` o !`git log --oneline -10` para incluir salida de Shell. Como el comando se ejecuta desde la raíz del proyecto, evita operaciones destructivas o datos secretos en las plantillas reutilizables.

Los argumentos son entradas, no permisos. Empieza con una prueba de solo lectura, aprueba después un cambio pequeño y automatiza únicamente en un repositorio de confianza.

Uso seguro

Mantén previsibles los nombres, prompts y permisos

Un comando personalizado con el mismo nombre puede reemplazar un comando integrado. Evita help, undo y share salvo que sea una decisión intencional. Un nombre como review-tests comunica mejor el resultado esperado.

Revisa los archivos de comandos como código: diff del prompt, respuesta, archivos referenciados y Shell propuesto. Comprueba agents y modelos con la guía de Agents; para Skills y MCP, usa las guías de Skills y MCP.

SíntomaCapa probablePrimera comprobación
No aparece el comando slashRuta o nombreRevisa archivo, directorio, frontmatter y raíz.
El resultado es incorrectoPrompt o argumentosPrueba una petición pequeña y un argumento.
La salida de Shell es inseguraContexto de ShellEjecuta manualmente y revisa directorio y permisos.
Cambia un comportamiento integradoColisión de nombresRenombra el comando y compara con /help.

Verificación

Seis comprobaciones antes de usarlo en equipo

  1. Alcance: describe entrada y salida en una frase.
  2. Ubicación: elige carpeta de proyecto o global y documenta la decisión.
  3. Entradas: prueba valores normales, ausentes, entre comillas y rutas.
  4. Contexto: revisa referencias y salida antes de editar.
  5. Permisos: empieza con ask o lectura y aprueba cambios pequeños.
  6. Reversión: guarda el comando en Git y anota cómo desactivarlo.

Así se separan las fallas: un comando ausente apunta a la ruta, un resultado extraño al prompt o los argumentos, una edición rechazada a los permisos y un modelo que falla al proveedor.

Preguntas frecuentes

Preguntas sobre comandos de OpenCode

¿Para qué sirven los comandos de OpenCode?

Los integrados controlan la TUI y los personalizados empaquetan prompts repetibles para revisiones, resúmenes de pruebas y plantillas de archivos.

¿Dónde está la carpeta de comandos personalizados?

Los comandos del proyecto van en .opencode/commands/ y los globales en ~/.config/opencode/commands/. El nombre del archivo se convierte en el comando.

¿Cómo paso argumentos a un comando?

Usa $ARGUMENTS para la cadena completa o $1, $2 para valores separados. Cita los valores con espacios o JSON.

¿Por qué no aparece mi comando?

Comprueba carpeta, raíz, nombre, frontmatter y colisiones. Después compara la salida de /help con la documentación oficial.

Fuentes oficiales

Comprueba los detalles sensibles a la versión

Esta página se revisó el 19 de agosto de 2026 con la documentación oficial de OpenCode. Los nombres y las rutas pueden cambiar.

Resumen

Usa los comandos integrados para la TUI, Markdown para flujos de proyecto revisables y JSON cuando el comando deba vivir junto a la configuración. Mantén explícitos los argumentos, trata la salida de Shell como contexto no confiable, evita colisiones con comandos integrados y prueba cada cambio con una tarea pequeña y reversible.