OpenCode 2: novedades, instalación y cómo actualizar
Tabla de contenidos
OpenCode 2 ya está aquí, y por dentro es otra herramienta.
Por fuera se parece mucho a lo que ya usabas: la misma terminal, el mismo opencode, los mismos agentes Plan y Build. Por dentro han cambiado el motor, la API de plugins, el formato de la configuración y hasta el atajo para cambiar de agente. Si actualizas a ciegas, lo más probable es que todo arranque bien… y que algún plugin tuyo haya dejado de funcionar sin que te enteres.
En este artículo vas a ver:
- Qué es OpenCode 2 y qué versiones han salido hasta hoy
- Cómo instalarlo desde cero en macOS, Linux y Windows
- Cómo actualizar desde OpenCode 1 sin perder tu configuración
- Los cambios que rompen cosas: plugins, permisos, configuración, LSP y
CLAUDE.md - Las novedades de las últimas versiones (worktrees, snapshots, autoaceptación por proyecto)
- Qué opina la gente que ya lo usa y si te compensa dar el salto ahora
Si es la primera vez que oyes hablar de OpenCode, empieza por el tutorial de OpenCode en español, que ya está actualizado a la versión 2. Aquí me centro en lo que cambia.
¿Qué es OpenCode 2 y cuándo ha salido? ¶
OpenCode 2 es la nueva versión mayor del agente de IA de código abierto de Anomaly (antes SST). Separa el motor del agente de las interfaces que lo usan: un servidor compartido en segundo plano al que se conectan la terminal, la app de escritorio, la web y los editores. Encima de eso estrena una API de plugins nueva y un formato de configuración más uniforme.
Las fechas, sacadas del registro de npm del paquete @opencode/cli:
| Versión | Fecha | Qué trae |
|---|---|---|
| Betas | 7–12 de septiembre 2026 | Builds 0.0.0-beta para probar la rama nueva |
| 2.0.0 | 11 de septiembre 2026 | Primera versión estable de la rama 2 |
| 2.0.1–3 | 12 de septiembre 2026 | Correcciones del primer día |
| 2.0.22 | 2 de octubre 2026 | Mejoras de ACP y control de sesiones desde plugins |
| 2.0.26 | 8 de octubre 2026 | Snapshots más rápidos y seguros |
| 2.0.27 | 12 de octubre 2026 | Worktrees integrados y web app instalable |
| 2.0.28 | 13 de octubre 2026 | Autoaceptación por proyecto, Windows ARM64 y paquetes WinGet |
El equipo publica varias versiones por semana: 28 versiones en un mes. Corrigen rápido, y lo que leas hoy puede quedarse viejo en pocos días. Por eso te dejo las fuentes al final, para que compruebes la versión en la que estás.
🔑 OpenCode 1 no desaparece de golpe. La 1.19.0, publicada el 11 de octubre, es la versión «puente»: trae el comando para saltar a la 2 y deja de instalar actualizaciones de forma automática.
¿Qué cambia de verdad en OpenCode 2? ¶
Cambia la arquitectura, y la forma de pedirle cosas al agente sigue igual. Si tu día a día es abrir la terminal, escribir prompts y revisar diffs, notarás pocas diferencias. Si tienes plugins propios, integraciones con la API o una configuración muy trabajada, toca revisar.
La guía oficial de migración enumera tres cambios incompatibles a propósito:
- Los plugins usan una API nueva. Los de la versión 1 no se ejecutan en la 2.
- El servidor y los clientes tienen contratos nuevos. Lo que llamase a la API de V1 tiene que migrar al paquete
@opencode/client. - La configuración de la terminal se muda. Los
tui.jsonpor capas pasan a un único~/.config/opencode/cli.jsonglobal, que se migra solo la primera vez.
Y hay otros dos cambios que no están en esa lista de tres, pero que a mí me parecen igual de gordos.
Adiós al LSP ¶
OpenCode 2 no ejecuta servidores de lenguaje. La documentación lo dice sin rodeos: V2 no arranca servidores LSP, no expone herramientas LSP y no produce diagnósticos LSP. La clave lsp se sigue aceptando en la configuración, pero no hace nada.
Mucha gente elegía OpenCode precisamente por esa integración (te explico por qué importa en la guía de LSP en agentes de IA). El equipo recomienda sustituirla por los comandos de lint, typecheck o compilación de tu proyecto. En la práctica, escribes en tu AGENTS.md que el agente ejecute tsc --noEmit o npm run lint después de editar.
Solo AGENTS.md, nada de CLAUDE.md ¶
OpenCode 1 caía en CLAUDE.md si no encontraba un AGENTS.md. La versión 2 solo descubre AGENTS.md: el del proyecto y el global en ~/.config/opencode/AGENTS.md. Si compartes repositorio con gente que usa Claude Code y vivías de su CLAUDE.md, mueve esas reglas a un AGENTS.md. En el artículo sobre AGENTS.md y las reglas de contexto tienes cómo organizarlo para que sirva a varios agentes a la vez.
⚠️ Estos dos cambios no dan error. OpenCode arranca igual, pero tu agente deja de recibir diagnósticos de tipos o deja de leer tus reglas. Puedes pasar días sin darte cuenta.
¿Cómo se instala OpenCode 2 desde cero? ¶
Si no tienes OpenCode 1 instalado, es un comando. El script oficial de la rama 2 vive en una URL distinta a la de siempre:
# Script oficial (macOS y Linux)
curl -fsSL https://opencode.ai/v2/install | bash
Con gestores de paquetes, ojo al nombre: el paquete de npm ya no es opencode-ai, ahora es @opencode/cli.
# npm
npm install -g @opencode/cli
# bun
bun install -g --trust @opencode/cli
# pnpm (necesita permitir el script de postinstalación)
pnpm add -g --allow-build=@opencode/cli @opencode/cli
# Homebrew: la fórmula también cambia de nombre
brew install anomalyco/tap/opencode-v2
# Arch Linux (AUR)
paru -S opencode-beta
El paquete de npm usa un script de postinstalación para elegir el binario nativo de tu plataforma. Por eso en pnpm y bun tienes que darle permiso explícito.
En Windows, la 2.0.28 estrena paquetes oficiales de WinGet:
# CLI
winget install --id Anomaly.OpenCode -e
# App de escritorio
winget install --id Anomaly.OpenCode.Desktop -e
La página principal de la documentación todavía dice que los gestores de paquetes de Windows no están soportados, pero el changelog de la 2.0.28 los anuncia y añade que OpenCode se actualiza a través de WinGet cuando lo instalas así. Es de lo más nuevo, así que si te falla, el binario descargable sigue siendo la alternativa.
Comprueba la versión:
opencode --version
Al abrirlo con opencode ya puedes probarlo: arranca con un modelo gratuito de OpenCode Zen seleccionado, sin API key. Para trabajar con tus modelos, conecta un proveedor con /connect, igual que en la versión 1. Además, OpenCode detecta solos Ollama, LM Studio y vLLM en sus puertos por defecto (11434, 1234 y 8000), así que no tienes que declararlos a mano en el opencode.json.
Tu AGENTS.md, regla a regla, para cualquier agente
OpenCode 2 ya solo lee AGENTS.md. En la lección 3 escribimos el de un proyecto real, con las reglas de toda la sesión, y te llevas la plantilla.
Entra en el curso →¿Cómo actualizar de OpenCode 1 a OpenCode 2? ¶
La vía oficial es actualizar primero a la 1.19.0 y desde ahí ejecutar opencode upgrade --major. También puedes hacerlo desde dentro de la terminal con /update, que en la 1.19 sirve para instalar actualizaciones o para saltar a la versión 2.
Antes de tocar nada, haz copia de tu configuración. Este paso es obligatorio:
# 1. Copia de seguridad de la configuración global
cp -r ~/.config/opencode ~/.config/opencode.v1-backup
# 2. Y de la carpeta .opencode de tus proyectos (si la tienes)
cp -r .opencode .opencode.v1-backup
# 3. Comprueba en qué versión estás
opencode --version
# 4. Salta a la versión 2
opencode upgrade --major
Si instalaste con un gestor concreto, puedes indicarlo con --method (por ejemplo --method npm). En la versión 2, opencode upgrade tiene el alias opencode update y acepta una versión exacta: opencode upgrade 2.0.27 --method bun.
¿Puedo tener la versión 1 y la 2 a la vez? ¶
No por defecto. Las dos usan el comando opencode y ya no se instalan lado a lado. La guía de migración pide desinstalar una instalación de V1 hecha con gestor de paquetes antes de instalar la 2, y avisa de que el instalador curl de V2 sustituye al binario de V1.
Si necesitas comparar, hay un truco que usa el autor del análisis de DEV Community: instalar la versión 1 en un prefijo aparte de npm, fuera de tu PATH.
# V1 aislada en su propia carpeta, para comparar
npm install -g --prefix ~/oc1 opencode-ai@1.19.0
~/oc1/bin/opencode --version
¿Qué pasa con mi configuración? ¶
Aquí OpenCode 2 se porta bien. Lee la configuración de V1 desde las mismas rutas y la traduce en memoria, sin reescribir tus ficheros. Los campos de V1 y V2 pueden convivir en el mismo opencode.json mientras migras.
La única migración automática es la de la terminal: la primera vez que abres la interfaz de V2, si no existe cli.json, copia los ajustes globales de tui.json y tus preferencias. La configuración de terminal que tuvieras a nivel de proyecto no se migra (en V2 ya no existe ese nivel). Y según la prueba de DEV Community, esa migración solo ocurre al abrir la interfaz, no en ejecuciones sin interfaz como opencode run.
Para pasar el resto al formato nativo, la documentación propone algo muy de 2026: pedírselo al propio OpenCode. Este es el prompt que sugieren, traducido:
Migra mi configuración de OpenCode, incluidas las definiciones en ficheros,
del formato V1 al formato nativo V2. Conserva el comportamiento y todos los
ajustes que no tengan relación.
🛡️ Ojo con un detalle: V1 y V2 leen las mismas rutas. Si conviertes tus ficheros al formato nativo de V2 y luego vuelves a abrir la versión 1, esta no va a entender la configuración. Mantén la copia de seguridad hasta que estés seguro de quedarte.
¿Cómo vuelvo a la versión 1 si algo sale mal? ¶
La documentación no describe cómo volver atrás. Sí garantiza que opencode uninstall no borra sesiones, configuración ni estado. Con eso y tu copia de seguridad, yo desinstalaría la 2, reinstalaría opencode-ai@1.19.0 y restauraría la carpeta ~/.config/opencode.v1-backup. Tómalo como el camino lógico: no lo he visto documentado paso a paso.
¿Qué cambia en la configuración de OpenCode 2? ¶
Casi todas las claves cambian de nombre. Pasan a plural, las reglas se escriben como listas ordenadas y los nombres son más explícitos. Esta tabla resume lo que más vas a tocar:
| Qué | OpenCode 1 | OpenCode 2 |
|---|---|---|
| Permisos | Mapa permission |
Lista ordenada permissions con reglas |
| Agentes | agent y mode |
agents (prompt pasa a system) |
| Proveedores | provider, campo npm |
providers, campo package y settings.baseURL |
| MCP | mcp con enabled |
mcp.servers con disabled (invertido) |
| Comandos | command, subtask |
commands, subagent |
| Plugins | plugin con tuplas |
plugins con objetos package + options |
| Skills | skills.paths y skills.urls |
Una sola lista skills |
| Compactación | preserve_recent_tokens |
keep.tokens y buffer |
| Compartir | autoshare: true |
share: "auto" |
| Ajustes del TUI | tui.json por capas |
Un único ~/.config/opencode/cli.json |
| Actualizaciones | autoupdate |
update (disable, notify o auto) |
Lo que no cambia: tu AGENTS.md, tus skills en .opencode/skills/ y tus comandos en Markdown. Los agentes definidos en ficheros dentro de agent/, agents/, mode/ o modes/ se siguen descubriendo.
Permisos como reglas ordenadas ¶
Es el cambio que más me gusta. En vez de un mapa, ahora escribes una lista de reglas con acción, recurso y efecto:
{
"permissions": [
{ "action": "edit", "resource": "*", "effect": "allow" },
{ "action": "shell", "resource": "git push *", "effect": "ask" },
{ "action": "websearch", "resource": "*", "effect": "deny" },
{ "action": "context7_*", "resource": "*", "effect": "allow" }
]
}
Antes de escribir reglas, ten en cuenta esto:
- Se renombran acciones:
bashpasa a sershell,taskpasa asubagent, ywriteypatchse unifican enedit. - Gana la última regla que encaja. Si ninguna encaja, OpenCode pregunta (
ask). - Las herramientas MCP se nombran como
servidor_herramienta, así quecontext7_*cubre todas las de Context7.
Ojo, esto sigue sin ser un sandbox. Las reglas deciden qué te pregunta el agente, pero no lo aíslan del sistema: si le das permiso para ejecutar shell con *, puede hacer todo lo que puede hacer tu usuario.
Agentes con modelo y variante en una línea ¶
El modelo y su variante de razonamiento van ahora juntos, separados por #:
{
"agents": {
"revisor": {
"description": "Revisa diffs antes de hacer commit",
"model": "anthropic/claude-sonnet-4-5#high",
"system": "Eres un revisor exigente. Señala bugs, no estilo.",
"steps": 20
}
}
}
maxSteps pasa a llamarse steps, disable pasa a disabled, y los ajustes como la temperatura se mueven a request.body.
Compactación con presupuesto de tokens ¶
OpenCode sigue compactando el contexto por su cuenta, pero se configura con otras claves:
{
"compaction": {
"auto": true,
"keep": { "tokens": 15000 },
"buffer": 20000
}
}
keep.tokens es cuánto contexto reciente conserva tras compactar (15.000 por defecto) y buffer la reserva antes de llegar al límite del modelo (por defecto, un 10 % del límite). Los campos tail_turns y prune de V1 se ignoran con un aviso, y ya no existe un modelo aparte para compactar. Si te interesa por qué conservar el principio de la conversación abarata cada turno, lo explico en el artículo sobre prompt caching.
Comandos que delegan en segundo plano ¶
En los comandos, subtask pasa a llamarse subagent, y los comandos delegados se ejecutan en segundo plano. Puedes lanzar un /review que trabaje en un subagente mientras sigues hablando con el agente principal.
OpenCode saca versiones nuevas cada pocos días y cada una mueve algo. Cada domingo, en la newsletter, +7.200 developers compartimos qué cambia en los agentes que usamos y qué merece la pena probar. Gratis, desde 2018.
Quiero esa dinamita 🧨¿Qué pasa con mis plugins de OpenCode 1? ¶
Dejan de funcionar. La guía de migración dice que los plugins de V1 no se ejecutan en V2. Y el autor del análisis de DEV Community comprobó que OpenCode 2 no falla al arrancar: deja un aviso en el log y descarta el plugin.
Si tenías un plugin que bloqueaba rm -rf, redactaba secretos antes de mandarlos al modelo o impedía hacer push a main, después de actualizar esa protección ya no existe, y la interfaz no te avisa. De los tres cambios que encontró aquel autor, este fue el que le rompió el flujo de su startup.
El esqueleto de un plugin en V2 es otro. Ahora importas de @opencode/plugin (antes @opencode-ai/plugin) y todo pasa por un setup con un contexto:
import { Plugin } from "@opencode/plugin"
export default Plugin.define({
id: "mi-equipo.guardia",
async setup(ctx) {
// Antes: "tool.execute.before"
await ctx.tool.hook("execute.before", (event) => {
const input = event.input as { command?: string }
// Bloquea comandos peligrosos lanzando un error
if (input.command?.includes("rm -rf")) {
throw new Error("Comando bloqueado por el plugin de guardia")
}
})
},
})
Cada plugin necesita un id estable: OpenCode lo usa para aislar su almacenamiento y para identificarlo en los diagnósticos. Algunas equivalencias de hooks:
| Hook en V1 | Destino en V2 |
|---|---|
tool.execute.before |
ctx.tool.hook("execute.before", ...) |
shell.env |
ctx.shell.hook("create.before", ...) |
event |
ctx.event.subscribe() |
chat.message |
ctx.session.hook("prompt", ...) |
chat.params |
ctx.session.hook("context", ...) |
permission.ask |
ctx.permission.hook("evaluate", ...) |
experimental.session.compacting |
ctx.session.hook("compaction", ...) |
La documentación avisa de que son destinos de migración, no renombrados exactos, y de que algunos hooks experimentales de V1 no tienen equivalente directo.
Para gestionarlos tienes un comando propio: opencode plugin add, list, check, update y remove. Los plugins locales se siguen descubriendo en .opencode/plugins/ y en ~/.config/opencode/plugins/.
Si quieres ver qué plugins del ecosistema ya funcionan y cuáles toca esperar, lo he actualizado en la guía de los mejores plugins para OpenCode.
💡 Después de migrar, comprueba que cada protección sigue activa. Pide al agente que ejecute algo que tu plugin debería bloquear y mira si lo bloquea. Que OpenCode arranque sin errores no te dice si tus plugins se han cargado.
¿Cómo funciona la nueva arquitectura de servidor y clientes? ¶
Por defecto, OpenCode 2 arranca un único servidor en segundo plano para tu usuario, y todos los clientes locales se conectan a él. La terminal, la app de escritorio, la web y los editores ven las mismas sesiones. Si cierras la terminal, la sesión sigue viva en el servidor.
Los comandos nuevos que más vas a usar:
# Controlar el servidor compartido
opencode service status
opencode service restart
# Recargar la configuración sin reiniciar el servidor
opencode reload
# Arrancar con un servidor privado, aislado del compartido
opencode --standalone
# Conectarte a un servidor concreto
opencode --server http://localhost:4096
# Servir en red para otros clientes
opencode serve --hostname 0.0.0.0 --port 4096
# Emparejar la web o la app con tu máquina
opencode pair
# Una interfaz mínima de terminal
opencode mini
opencode pair --remote expone el servidor a internet a través de un túnel. Desde la 2.0.27 avisa antes de hacerlo, y conviene leer ese aviso: estás abriendo un agente con acceso a tu máquina.
Para los editores, opencode acp arranca un servidor del Agent Client Protocol por la entrada y salida estándar, sin abrir puertos. En Zed se configura así:
{
"agent_servers": {
"OpenCode": {
"command": "opencode",
"args": ["acp"]
}
}
}
Y para scripts y CI sigue estando opencode run, ahora con --format json (JSON delimitado por líneas), --file para adjuntar ficheros, --agent, --model y --continue.
¿Qué novedades han llegado en las últimas versiones? ¶
El CHANGELOG.md del repositorio recoge las notas de las tres últimas versiones. Estas son las novedades que vas a notar en el día a día.
Worktrees integrados (2.0.27) ¶
El agente tiene tres herramientas nuevas: worktree_create, worktree_list y worktree_remove. Puede crear una copia aislada de una rama con git worktree y trabajar ahí sin mezclar cambios con lo que tienes abierto. Es útil para lanzar dos tareas en paralelo. No es un sandbox: el proceso sigue teniendo acceso a todo tu sistema.
Snapshots más rápidos y seguros (2.0.26) ¶
Las instantáneas que usa OpenCode para deshacer cambios ocupan menos y se restauran antes, y OpenCode recupera las que se cortaron a mitad. Lo vas a agradecer en sesiones largas que tocan muchos ficheros.
Autoaceptación por proyecto (2.0.28) ¶
Puedes marcar proyectos en los que OpenCode acepte los permisos sin preguntar, desde Settings → Projects → Auto-accept permissions, o alternarlo en una sesión con mod+shift+a (Cmd en macOS, Ctrl en el resto). Viene bien para un repo de pruebas. En un proyecto con credenciales de producción, yo no lo activaría.
Más plataformas y clientes ¶
- Web app instalable desde Chrome o Edge (2.0.27).
- Soporte nativo de Windows ARM64 y paquetes oficiales de WinGet (2.0.28).
- Errores de sesión visibles: si una sesión falla antes o entre pasos del modelo, la interfaz te enseña el error en vez de quedarse parada (2.0.27).
- Novedades dentro del TUI con
/highlights, que puedes desactivar conhighlights: falseencli.json(2.0.28). - Vertex AI con las credenciales de gcloud desde
/connect(2.0.26). - Plugin oficial de Figma, opcional, con su conexión MCP y seis skills de Figma incluidas (2.0.28). Es el primer plugin oficial que empaqueta juntos plugin, MCP y skills.
- Respuestas largas de Gemini sin cortes: cuando el proveedor parte la respuesta, OpenCode la continúa sola como una única respuesta (2.0.28).
Un detalle que te va a pillar: el atajo de agentes ¶
En la versión 2, cambiar entre Plan y Build es Shift+Tab, no Tab. Los atajos viven ahora en cli.json y la tecla líder por defecto es Ctrl+X. /undo deshace tu último mensaje y sus cambios en disco, Ctrl+X R (o /redo) los recupera y Ctrl+P abre la paleta de comandos. Lo tienes todo en el tutorial de OpenCode.
Construye agentes con criterio
OpenCode 2 ya es un motor de agentes: aprende a diseñar los tuyos
Plugins con setup, sesiones que sobreviven al cliente y subagentes en segundo plano. Antes de montar tu orquestador, repasa los seis niveles de arquitectura de un agente y un sistema multiagéntico construido con OpenCode en directo.
Entrar a la masterclass →6 niveles de arquitectura, en directo
¿Qué opina la comunidad de OpenCode 2? ¶
Lo que piensa cada cual depende de cómo usa la herramienta. En los hilos de r/opencodeCLI de principios de octubre se repiten tres impresiones:
- Quien escribe prompts en la terminal nota la interfaz algo más rápida y poco más. Para ese uso, la mejora es incremental.
- Quien construye encima (orquestadores, plugins, flujos con varios modelos) es quien más entusiasmo muestra: sesiones que sobreviven al cierre del cliente, subagentes controlables y modelos distintos para explorar, implementar y revisar.
- Las quejas se concentran en plugins que dejaron de cargar, consumo de memoria con muchas sesiones abiertas, errores en Desktop y Web, y la falta de un sandbox integrado. También hay quien critica cómo gestiona el equipo las contribuciones externas y las incidencias. De momento son percepciones de la comunidad, sin datos que las respalden.
Un caso concreto marca el límite de la nueva API. Un desarrollador que mantenía un fork de OpenCode 1 intentó convertir sus cambios en un único plugin de V2 para dejar de compilar su propia versión. No pudo hacer como extensión todo lo que necesitaba. La API de plugins da mucho más juego que la de V1, pero no llega a todo lo que permite un fork.
Sobre rendimiento y coste, no he encontrado ninguna comparación rigurosa entre V1 y V2 que controle modelo, prompt, repositorio y configuración de caché. Hay testimonios a favor (una interfaz más ágil, más aciertos de caché) y en contra (más memoria). Hasta que alguien lo mida bien, no daría por hecho que la versión 2 sea más rápida ni más barata.
🎯 Si quieres medirlo tú: mismo repositorio, mismo modelo, misma tarea, en V1 y en V2. Compara tokens con
opencode stats --cost, tiempo total y si la sesión se recupera bien tras cerrarla. Así separas la mejora real de la simple novedad de arquitectura.
Medir antes de migrar es de las cosas que más dinero y disgustos ahorran con los agentes. Cada domingo seleccionamos 12 recursos sobre programación con IA y lo que aprenden los +7.200 developers de la comunidad. Gratis, todos los domingos.
Quiero esa dinamita 🧨¿Merece la pena actualizar a OpenCode 2 ahora? ¶
Depende de lo que tengas montado. Esta es mi lectura después de contrastar documentación, changelog y experiencias:
| Tu caso | Mi recomendación |
|---|---|
| Terminal, prompts y edición normal | Actualiza sin miedo, haciendo copia antes |
Usas skills y AGENTS.md |
Compatible en lo esencial |
Dependes de un CLAUDE.md |
Muévelo a AGENTS.md antes de actualizar |
| Te apoyas en los diagnósticos LSP | Añade lint y typecheck a tus reglas, o espera |
| Tienes plugins propios o de seguridad | Migra y prueba cada plugin antes de cambiar |
| Integraciones contra la API del servidor | Toca reescribir con @opencode/client |
| Orquestas varios agentes o sesiones largas | Es donde más ganas: pruébalo |
| Dependes mucho de Desktop o Web | Prueba en paralelo antes de sustituir |
| Necesitas aislamiento real | Sigue faltando: usa contenedores o una VM |
Si tu flujo pasa por skills, revisores, agentes que trabajan durante bastante tiempo, worktrees y reglas de permisos, la versión 2 merece una prueba seria. La interfaz es lo de menos. Con el servidor compartido, los comandos en segundo plano y la nueva API de plugins puedes montar alrededor del agente un sistema de trabajo mucho más integrado que en la versión 1.
Lo que no haría es actualizar mi entorno principal un lunes por la mañana sin haber revisado plugins y permisos. Hazlo con la copia hecha, en un proyecto de pruebas, y pasa esta lista:
- Copia
~/.config/opencodey las carpetas.opencodede tus proyectos. - Mueve lo que tengas en
CLAUDE.mdaAGENTS.md. - Haz una lista de tus plugins y comprueba si tienen versión para V2 con
opencode plugin check. - Actualiza con
opencode upgrade --major. - Abre la interfaz una vez para que migre
cli.json. - Prueba que cada protección (bloqueos, redacción de secretos) sigue funcionando.
- Añade a tu
AGENTS.mdlos comandos de lint y typecheck que antes cubría el LSP. - Cuando todo funcione, pídele a OpenCode que migre tu configuración al formato nativo.
Y si vienes de otro agente y estás pensando en cambiarte, tienes el proceso completo en la guía para migrar de Claude Code o Codex a OpenCode y la comparativa Claude Code vs OpenCode.
TL;DR ¶
- 🚀 OpenCode 2 salió el 11 de septiembre de 2026 y va por la 2.0.28 (13 de octubre). Cambia la arquitectura: un servidor compartido al que se conectan terminal, escritorio, web y editores.
- 📦 Se instala con
curl -fsSL https://opencode.ai/v2/install | bashonpm install -g @opencode/cli. Desde la 1.19 se actualiza conopencode upgrade --major. - 🔌 Los plugins de V1 no funcionan en V2 y no dan error: solo un aviso en el log. Revisa cada protección después de migrar.
- ⚠️ V2 no ejecuta LSP ni lee
CLAUDE.md, y el cambio entre Plan y Build pasa aShift+Tab. - 🎯 Merece la pena si orquestas agentes o construyes plugins. Para un uso básico la mejora es incremental: actualiza con copia de seguridad y sin prisa.
Preguntas frecuentes ¶
¿Qué es OpenCode 2? ¶
OpenCode 2 es la versión mayor del agente de IA de código abierto de Anomaly, publicada el 11 de septiembre de 2026. Separa el motor del agente en un servidor compartido al que se conectan la terminal, la app de escritorio, la web y los editores, y estrena una API de plugins y un formato de configuración nuevos.
¿Cómo actualizo de OpenCode 1 a OpenCode 2? ¶
Actualiza primero a la 1.19.0 y ejecuta opencode upgrade --major, o usa /update dentro de la interfaz. Antes, copia ~/.config/opencode y las carpetas .opencode de tus proyectos, porque las dos versiones leen las mismas rutas.
¿Cómo instalo OpenCode 2 desde cero? ¶
Con el script oficial curl -fsSL https://opencode.ai/v2/install | bash, con npm install -g @opencode/cli, con Homebrew (brew install anomalyco/tap/opencode-v2) o, en Windows, con WinGet (winget install --id Anomaly.OpenCode -e). El paquete de npm de V1, opencode-ai, ya no es el de la versión 2.
¿Funcionan mis plugins de OpenCode 1 en la versión 2? ¶
No. Los plugins de V1 no se ejecutan en V2 y OpenCode solo deja un aviso en el log al descartarlos. Hay que migrarlos a la API nueva de @opencode/plugin, con Plugin.define y hooks a través del contexto, o esperar a que su autor publique una versión compatible.
¿Se pierde mi configuración al actualizar? ¶
No. OpenCode 2 lee la configuración de V1 desde las mismas rutas y la traduce en memoria sin reescribir tus ficheros. Solo los ajustes de la terminal se migran a un nuevo cli.json la primera vez que abres la interfaz.
¿Puedo tener OpenCode 1 y OpenCode 2 instalados a la vez? ¶
No por defecto, porque los dos usan el comando opencode. Si necesitas comparar, puedes instalar la versión 1 en un prefijo aparte de npm, por ejemplo npm install -g --prefix ~/oc1 opencode-ai@1.19.0, y ejecutarla desde esa ruta.
¿OpenCode 2 tiene integración LSP? ¶
No. La versión 2 mantiene la clave lsp en la configuración, pero no arranca servidores de lenguaje ni produce diagnósticos. La recomendación oficial es que el agente ejecute los comandos de lint, typecheck o compilación del proyecto.
¿OpenCode 2 lee el archivo CLAUDE.md? ¶
No. OpenCode 2 solo descubre AGENTS.md, tanto el del proyecto como el global en ~/.config/opencode/AGENTS.md. Si dependías del CLAUDE.md como alternativa, mueve esas instrucciones a un AGENTS.md.
¿Cómo cambio entre Plan y Build en OpenCode 2? ¶
Con Shift+Tab. En la versión 2 los atajos se configuran en ~/.config/opencode/cli.json, la tecla líder por defecto es Ctrl+X y Ctrl+X A muestra la lista de agentes.
¿OpenCode 2 tiene sandbox? ¶
No. Los permisos con reglas allow, ask y deny controlan qué confirma el agente, pero no lo aíslan de tu sistema. Los worktrees separan cambios de git, no procesos. Para aislamiento real, ejecútalo dentro de un contenedor o una máquina virtual.
Fuentes ¶
- Documentación de OpenCode 2 — instalación y clientes
- Guía de migración desde V1 — cambios incompatibles y renombrados de configuración
- Migración de plugins a V2 — API nueva y equivalencias de hooks
- Permisos, compactación y comandos de la CLI
- CHANGELOG de OpenCode 2 — notas de la 2.0.26 a la 2.0.28
- Notas de la 1.19.0 — la versión puente con
opencode upgrade --major - Paquete @opencode/cli en npm — fechas de publicación
- OpenCode 2 Has 3 Breaking Changes. 1 Broke My Startup — migración real con plugins (DEV Community)
- OpenCode 2 v2.0.22: ACP editor integration — análisis de la 2.0.22 (TurboAI)
- Hilos de r/opencodeCLI: How is OpenCode V2 going for you guys? y My one weekend with OpenCode V2
🧨 Última oportunidad para recibir la dinamita que mereces sobre programación con IA el próximo domingo: Suscríbete gratis a Web Reactiva en https://webreactiva.com/newsletter
12 recursos para developers cada domingo en tu bandeja de entrada
Además de una skill práctica bien explicada, trucos para mejorar tu futuro profesional y una pizquita de humor útil para el resto de la semana. Gratis.