Ir al contenido
angel.library

Comandos personalizados

.opencode/commands/nombre.md → proyecto
~/.config/opencode/commands/nombre.md → global
.opencode/commands/review.md
---
description: Revisa el diff actual
agent: build
---
template: |
Revisa los cambios actuales con `git diff` y señala:
1. Bugs potenciales
2. Problemas de legibilidad
Argumentos: $ARGUMENTS

A diferencia de Claude Code (donde el cuerpo entero del archivo es el prompt), OpenCode requiere el campo template: explícito con el texto que se manda al modelo — el resto del frontmatter es metadata.

opencode.json
{
"command": {
"review": {
"template": "Revisa el diff actual: !`git diff`",
"description": "Revisa el diff actual",
"agent": "build"
}
}
}
$ARGUMENTS → todo lo que sigue al comando
$1 $2 $3 → argumentos posicionales
!`comando` → corre un shell command antes, inyecta el resultado
@archivo → referencia un archivo

Misma sintaxis que Claude Code para esto — solo cambia dónde vive el prompt (template: explícito vs. cuerpo del archivo).

CampoPara qué
templateEl prompt en sí (requerido)
agentQué agente ejecuta el comando
modelOverride del modelo para este comando puntual
subtaskFuerza que corra como subagente aunque el agente activo sea primario
  • Olvidar template: es el error más común migrando un comando desde Claude Code — sin ese campo, el comando no tiene prompt.