Capitulo 18: IDE y ACP
Capitulo 18: IDE y ACP
< Volver al Indice del Tutorial
OpenCode funciona en cualquier IDE que tenga una terminal integrada. No necesitas plugins ni extensiones especiales para empezar, aunque existen extensiones dedicadas para VS Code y JetBrains que ofrecen una experiencia más integrada. Además, el Agent Communication Protocol (ACP) permite comunicación estandarizada entre agentes AI, y la interfaz web ofrece acceso desde cualquier navegador. En este capítulo cubriremos todas las formas de integrar OpenCode con tu entorno de desarrollo.
IDE Integration
Compatibilidad Universal via Terminal
OpenCode es una aplicación de terminal. Esto significa que funciona en cualquier IDE que soporte una terminal embebida:
- VS Code / VS Codium
- Cursor
- Zed
- Neovim / Vim
- Emacs
- JetBrains (IntelliJ, WebStorm, PyCharm, GoLand, etc.)
- Sublime Text (con terminal plugin)
- Warp
- iTerm2 / Alacritty / Kitty (terminales independientes)
La integración via terminal es el método más universal y no requiere configuración adicional. Simplemente abre tu terminal favorita dentro del IDE y ejecuta opencode.
Extensiones Dedicadas
Además de la integración via terminal, OpenCode está disponible como extensión nativa para los IDEs más populares:
VS Code Extension
La extensión de OpenCode para VS Code ofrece una experiencia integrada directamente en el editor:
- Panel lateral dedicado para la conversación con el agente
- Envío de selecciones de código directamente al agente
- Aplicación de diffs sugeridos con un click
- Sincronización automática del archivo activo como contexto
- Acceso a los comandos de OpenCode desde la paleta de comandos
Para instalarla, busca “OpenCode” en el marketplace de extensiones de VS Code o instálala desde la línea de comandos:
code --install-extension opencode.opencode-vscode
La extensión se conecta al servidor local de OpenCode, así que necesitas tener OpenCode instalado en tu sistema. La extensión no reemplaza la TUI; es un cliente adicional que se comunica con el mismo backend.
JetBrains Extension
La extensión para JetBrains funciona en todos los IDEs de la familia: IntelliJ IDEA, WebStorm, PyCharm, GoLand, PHPStorm y más. Ofrece funcionalidades similares a la extensión de VS Code:
- Ventana de herramienta dedicada para el chat
- Integración con el sistema de diff de JetBrains
- Envío de código seleccionado al agente
- Acceso desde el menú de acciones
La instalación se hace desde el marketplace de plugins de JetBrains buscando “OpenCode”.
Quick Launch
OpenCode soporta un atajo global para invocarlo rápidamente desde cualquier aplicación:
| Sistema | Atajo |
|---|---|
| macOS | Cmd + Esc |
| Windows / Linux | Ctrl + Esc |
Este atajo abre OpenCode en un split de terminal dentro de tu IDE, permitiéndote alternar entre código y agente sin cambiar de ventana. Es especialmente útil cuando estás revisando código y necesitas hacer una consulta rápida al agente.
Workflow con VS Code
El flujo de trabajo típico en VS Code, ya sea con la extensión o via terminal:
- Abre el proyecto normalmente en VS Code
- Abre la terminal integrada (
Ctrl + backtick) o el panel de OpenCode - Ejecuta
opencodeen la terminal si no usas la extensión - Trabaja en tu código en el editor normalmente
- Cuando necesites asistencia AI, cambia a la terminal o panel de OpenCode
- Usa
@archivo.tspara referenciar archivos que estás editando - OpenCode edita los archivos y VS Code detecta los cambios automáticamente
VS Code refresca los archivos modificados externamente, así que los cambios de OpenCode aparecen inmediatamente en el editor. No hay conflictos ni necesidad de recargar manualmente.
flowchart LR
A[Editas código en VS Code] --> B[Necesitas asistencia AI]
B --> C[Cambias a OpenCode]
C --> D[Describes la tarea]
D --> E[OpenCode edita archivos]
E --> F[VS Code detecta cambios]
F --> G[Revisas los cambios en el editor]
G --> A
Workflow con Cursor
Cursor incluye su propio agente AI integrado. OpenCode lo complementa para escenarios donde necesitas:
- Un agente con acceso a herramientas de sistema (bash, MCP servers)
- Soporte para modelos que Cursor no ofrece (Ollama, modelos locales)
- Automatización más compleja con múltiples pasos
- Modo no interactivo para pipelines
- Integración con herramientas externas via MCP
Ambos pueden coexistir sin conflicto. Usa Cursor AI para ediciones rápidas inline y OpenCode para tareas que requieren exploración profunda del codebase o integración con herramientas externas.
Workflow con Neovim
Para usuarios de Neovim, OpenCode se integra naturalmente:
- Abre un split de terminal con
:terminal - Ejecuta
opencodeen el split - Navega entre ventanas con
Ctrl+W - OpenCode edita archivos que Neovim recarga automáticamente
Algunos usuarios prefieren usar tmux o zellij para manejar los paneles, lo que permite tener OpenCode en un panel permanente al lado del editor.
Workflow con JetBrains
El flujo en IDEs de JetBrains es similar al de VS Code:
- Abre el proyecto en tu IDE de JetBrains
- Abre la terminal integrada (
Alt + F12) o instala el plugin de OpenCode - Ejecuta
opencodeen la terminal - Los archivos modificados por OpenCode se recargan automáticamente
- Usa el sistema de diff integrado de JetBrains para revisar cambios
JetBrains tiene un sistema de detección de cambios externos robusto, así que los archivos editados por OpenCode se actualizan en el editor sin necesidad de intervención manual.
Agent Communication Protocol (ACP)
ACP es un protocolo para comunicación entre agentes AI. A diferencia de lo que podrías pensar inicialmente, ACP no es solo para comunicación IDE-agente; es un protocolo más amplio que permite a OpenCode integrarse con otros agentes AI y sistemas de agentes.
Qué es ACP
ACP (Agent Communication Protocol) permite que OpenCode participe en ecosistemas de múltiples agentes. Un agente puede delegar tareas a otro agente, compartir contexto y coordinar acciones complejas que requieren múltiples capacidades especializadas.
flowchart TD
A[Agente Orquestador] --> B[OpenCode via ACP]
A --> C[Otro Agente AI]
A --> D[Agente Especializado]
B --> E[Edita código]
C --> F[Revisa PRs]
D --> G[Ejecuta tests]
Configuración de ACP
Habilita ACP en tu archivo opencode.json:
{
"acp": {
"enabled": true
}
}
Con esta configuración, OpenCode puede participar como agente en un sistema multi-agente. Otros agentes pueden enviarle solicitudes y recibir respuestas estructuradas.
Iniciar el Servidor ACP
opencode acp
Este comando arranca OpenCode en modo ACP. En lugar de mostrar la TUI, escucha en stdin y responde en stdout usando nd-JSON (newline-delimited JSON). El sistema que orquesta los agentes se encarga de enviar y recibir los mensajes.
Conceptos Clave de ACP
- Protocolo: comunicación via stdin/stdout usando nd-JSON
- Dirección: bidireccional entre agentes
- Transporte: no requiere red, usa pipes del sistema operativo
- Formato: cada mensaje es una línea JSON independiente
- Descubrimiento: los agentes pueden anunciar sus capacidades
Diferencia entre ACP y MCP
Es importante no confundir ambos protocolos porque resuelven problemas distintos:
| Aspecto | ACP | MCP |
|---|---|---|
| Propósito | Comunicación entre agentes | Comunicación agente - herramientas |
| Dirección | Bidireccional (agente a agente) | Unidireccional (agente invoca herramienta) |
| Transporte | stdin/stdout | stdin/stdout o HTTP/SSE |
| Quién lo inicia | Cualquier agente | El agente siempre |
| Ejemplo | Agente A pide a OpenCode que refactorice | OpenCode consulta una base de datos |
| Nivel | Alto (tareas complejas) | Bajo (operaciones atómicas) |
En resumen: ACP es la interfaz entre agentes AI para coordinación de alto nivel. MCP es la interfaz entre un agente y las herramientas externas que usa para ejecutar operaciones específicas. Ambos protocolos pueden coexistir y complementarse.
flowchart LR
subgraph ACP["ACP (Agente ↔ Agente)"]
A1[Agente 1] <--> A2[OpenCode]
end
subgraph MCP["MCP (Agente ↔ Herramientas)"]
A2 --> T1[Base de datos]
A2 --> T2[GitHub API]
A2 --> T3[Filesystem]
end
Casos de Uso de ACP
La integración ACP abre posibilidades para arquitecturas de agentes más complejas:
- Orquestación de agentes: un agente principal delega subtareas a OpenCode para edición de código mientras otro agente maneja la revisión
- Pipelines de CI inteligentes: un agente de CI detecta un fallo, envía el contexto a OpenCode via ACP para que genere un fix automático
- Code review automatizado: un agente de revisión analiza un PR y envía sugerencias a OpenCode para que las implemente
- Testing coordinado: un agente de testing identifica casos faltantes y pide a OpenCode que genere los tests
Web Interface
Además de la TUI y las extensiones de IDE, OpenCode ofrece una interfaz web completa para acceso desde el navegador. Esto amplía significativamente los escenarios de uso.
Iniciar la Interfaz Web
opencode web
Este comando arranca el servidor HTTP y abre automáticamente la interfaz web en tu navegador predeterminado. La interfaz web ofrece:
- Chat completo: la misma funcionalidad de la TUI pero en el navegador
- Visualización de archivos: ver y navegar los archivos del proyecto
- Historial de sesiones: acceder a conversaciones anteriores
- Configuración gráfica: modificar settings sin editar JSON manualmente
Acceso Remoto
Si arrancas con --hostname 0.0.0.0, la interfaz web es accesible desde cualquier dispositivo en la red:
opencode web --hostname 0.0.0.0 --port 4096
Esto permite:
- Trabajar desde un iPad o tablet cuando tu servidor de desarrollo está en otro equipo
- Colaboración remota: compartir la interfaz con colegas en la misma red
- Acceso desde el teléfono: revisar o iniciar tareas del agente desde cualquier dispositivo con navegador
Seguridad de la Interfaz Web
Cuando expongas la interfaz web en una red, configura autenticación:
export OPENCODE_SERVER_PASSWORD="tu-password-seguro"
opencode web --hostname 0.0.0.0
Todas las peticiones requerirán autenticación HTTP basic. El usuario es opencode y el password es el valor de la variable de entorno. Nunca expongas la interfaz web sin password en una red pública.
Tabla Resumen de Métodos de Integración
| Método | Caso de Uso | Setup | Experiencia |
|---|---|---|---|
| Terminal en IDE | Uso general, cualquier IDE | Ninguno | Texto completo |
| Extensión VS Code | Integración profunda en VS Code | Instalar extensión | Visual integrada |
| Plugin JetBrains | Integración profunda en JetBrains | Instalar plugin | Visual integrada |
| Quick Launch | Acceso rápido con atajo | Configurar keybind | Rápido |
| ACP | Comunicación entre agentes AI | opencode acp + configurar | Programática |
opencode web | Acceso desde navegador | opencode web | Web completa |
opencode serve | Integración programática | opencode serve --port 4096 | API REST |
opencode attach | Conectar TUI a servidor remoto | opencode attach | TUI remota |
Cada método tiene su lugar. La terminal en IDE es el más universal y no requiere configuración. Las extensiones de VS Code y JetBrains ofrecen la experiencia más integrada. ACP está diseñado para ecosistemas multi-agente. La interfaz web es ideal para acceso remoto o desde dispositivos sin terminal.
Recomendaciones por Escenario
flowchart TD
A{Tu escenario?} --> B[Desarrollo diario]
A --> C[Acceso remoto]
A --> D[Automatización]
A --> E[Multi-agente]
B --> B1[Terminal en IDE o Extensión]
C --> C1[Web Interface o Attach]
D --> D1[Serve + SDK]
E --> E1[ACP]
- Desarrollador individual: extensión de VS Code o TUI en terminal
- Equipo pequeño: interfaz web con servidor compartido
- Pipelines de CI:
opencode servecon SDK programático - Arquitectura de agentes: ACP para coordinación entre agentes
- Pair programming con AI:
opencode serve+ múltiplesattach
Siguiente: Capitulo 19: SDK y Server Mode —>