Tabla de Contenidos

OpenCode

OpenCode es una herramienta de programación con IA que vive dentro de la terminal y es de código abierto. No es un editor ni un plugin del editor: se lanza en la carpeta del proyecto y trabaja sobre esos ficheros.


1. Puesta en marcha

Instalar

curl -fsSL https://opencode.ai/v2/install | bash
opencode --version
npm install -g @opencode/cli
opencode --version

Arrancar

Para trabajar, siempre desde la raíz del proyecto:

cd mi-proyecto
opencode

Se abre la TUI: la caja de entrada abajo, y encima la conversación.

Actualizar

opencode upgrade
Fíjate que sea como mínimo la versión 2.x.y

2. Proveedores y modelos

OpenCode no es un modelo: habla con modelos de otros. Conviene no confundir las dos cosas:

Qué es Comando Cuándo se toca
Proveedor El servicio al que te conectas /connect Una vez, al entrar con tu cuenta
Modelo La IA concreta que responde /models Cuantas veces quieras, incluso a mitad de sesión

Recién instalado ya funciona, sin registro ni tarjeta: de serie usa los modelos de OpenCode Zen, y varios son gratuitos. En /models se reconocen por la etiqueta free —la lista concreta cambia con el tiempo—.

/connect: los proveedores

Abre la misma pantalla que sale en el primer arranque, con la lista de servicios a los que enlazarse. Lo importante es que no te obliga a contratar nada nuevo: si ya pagas ChatGPT, GitHub Copilot, Anthropic o Google, esa suscripción se reaprovecha desde OpenCode. Puedes tener varios proveedores conectados a la vez.

/models: cambiar de modelo

Lista todos los modelos de los proveedores que tengas conectados y elige con cuál se manda la siguiente petición. El cambio es instantáneo y la conversación no se pierde, y de ahí sale el flujo más rentable del día a día:

Con los modelos gratuitos tu código se usa para entrenar. No los uses con código confidencial.

3. Agentes

Qué es un subagente y para qué sirve está en el tema de Agentes. Plan y Build (sección 5) también son agentes: son los principales, los que hablan contigo. De serie, OpenCode trae dos subagentes:

Cómo se lanza

Hay tres formas de lanzarlo:

@explore ¿dónde se valida el token JWT y qué endpoints no pasan por esa validación?

Usa el subagente general para migrar los tests del módulo pedidos de JUnit 4 a JUnit 5

Dónde se guardan

Cada subagente es un fichero .md:

Un subagente de Claude Code no vale en OpenCode: OpenCode no lee .claude/agents/ y su frontmatter es otro (mode, permission, el modelo con proveedor). Las diferencias, en Agentes.

4. Skills

Qué es una skill y cómo se escribe está en el tema de Skills.

Cómo se lanza

Hay tres formas de lanzarla:

@revisar-pr revisa el PR 128

Usa la skill revisar-pr con el PR 128

Dónde se guardan

Cada skill es una carpeta con su SKILL.md:

OpenCode también lee .claude/skills/ y ~/.claude/skills/, así que una misma skill vale para las dos herramientas.

5. Modos: Plan y Build

OpenCode tiene dos modos: Plan y Build, y se cambia entre ellos con Tab.

El modo Plan

Lee, analiza y te propone un plan, sin editar ningún fichero. El plan te lo cuenta en la conversación; solo si se lo pides lo guarda en ~/.opencode/plan, que es el único sitio donde puede escribir. Los comandos los ejecuta sin preguntarte.

Puedes además pedirle que te pregunte lo que no tenga claro («antes de proponer nada, hazme las preguntas que necesites») en lugar de que se invente los huecos. Leer el plan cuesta un minuto; deshacer un cambio mal enfocado, bastante más.

Cuando el plan está bien, Tab a Build y que lo ejecute.

El modo Build

Ejecuta: edita ficheros y lanza comandos sin preguntarte casi nada. Solo pide permiso para leer un .env o para salir de la carpeta del proyecto.

Build no revisa los comandos que lanza: un rm o un git checkout los ejecuta igual que un ls. Trabaja siempre con todo commiteado, para poder volver atrás.

6. Comandos

/init

Genera AGENTS.md, las instrucciones fijas del proyecto: analiza el código y escribe en la raíz qué es el proyecto, su arquitectura y los comandos habituales (arrancar, probar, construir). Se lee solo en cada sesión. Es un punto de partida: revísalo y edítalo a mano.

/new

Empieza de cero: sesión nueva y contexto vacío. Se hace cada vez que cambias de tarea.

/undo

Deshace: quita el último mensaje de la conversación y deshace los cambios que hizo en los ficheros. /redo lo vuelve a aplicar.

Solo deshace lo que OpenCode editó con sus herramientas. Lo que hizo con un comando de shell (un rm, un mv, un git checkout) no se recupera. El deshacer de verdad sigue siendo git.

/compact

Resume la conversación para liberar contexto y seguir en la misma sesión.

No uses /compact: antes de llegar a él, usa /new. El resumen lo hace el modelo, que no sabe qué es lo importante para ti, y sigues trabajando con un contexto peor sin darte cuenta.

/copy

Copia al portapapeles la última respuesta de OpenCode

/export

Exporta toda la conversación (no solo la última respuesta)

ESC ESC

No es un comando, son dos pulsaciones de tecla: paran al agente en seco, esté pensando o a media tarea. La primera solo avisa: hasta la segunda no se para. Lo que ya ha hecho se queda hecho: le dices qué cambiar y sigue.


7. Plugins

Los plugins añaden a OpenCode funciones que no trae de serie. Son paquetes de npm (o de Git) y se gestionan desde la terminal con opencode plugin. Se guardan en la configuración global, así que valen para todos los proyectos.

opencode plugin list
opencode plugin add @slkiser/opencode-quota
opencode plugin check
opencode plugin update
opencode plugin remove @slkiser/opencode-quota

8. Enlaces