Capitulo 18: IDE y ACP

Por: Artiko
opencodeaiideacpvscodeneovimweb-interface

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:

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:

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:

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:

SistemaAtajo
macOSCmd + Esc
Windows / LinuxCtrl + 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:

  1. Abre el proyecto normalmente en VS Code
  2. Abre la terminal integrada (Ctrl + backtick) o el panel de OpenCode
  3. Ejecuta opencode en la terminal si no usas la extensión
  4. Trabaja en tu código en el editor normalmente
  5. Cuando necesites asistencia AI, cambia a la terminal o panel de OpenCode
  6. Usa @archivo.ts para referenciar archivos que estás editando
  7. 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:

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:

  1. Abre un split de terminal con :terminal
  2. Ejecuta opencode en el split
  3. Navega entre ventanas con Ctrl+W
  4. 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:

  1. Abre el proyecto en tu IDE de JetBrains
  2. Abre la terminal integrada (Alt + F12) o instala el plugin de OpenCode
  3. Ejecuta opencode en la terminal
  4. Los archivos modificados por OpenCode se recargan automáticamente
  5. 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

Diferencia entre ACP y MCP

Es importante no confundir ambos protocolos porque resuelven problemas distintos:

AspectoACPMCP
PropósitoComunicación entre agentesComunicación agente - herramientas
DirecciónBidireccional (agente a agente)Unidireccional (agente invoca herramienta)
Transportestdin/stdoutstdin/stdout o HTTP/SSE
Quién lo iniciaCualquier agenteEl agente siempre
EjemploAgente A pide a OpenCode que refactoriceOpenCode consulta una base de datos
NivelAlto (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:

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:

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:

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étodoCaso de UsoSetupExperiencia
Terminal en IDEUso general, cualquier IDENingunoTexto completo
Extensión VS CodeIntegración profunda en VS CodeInstalar extensiónVisual integrada
Plugin JetBrainsIntegración profunda en JetBrainsInstalar pluginVisual integrada
Quick LaunchAcceso rápido con atajoConfigurar keybindRápido
ACPComunicación entre agentes AIopencode acp + configurarProgramática
opencode webAcceso desde navegadoropencode webWeb completa
opencode serveIntegración programáticaopencode serve --port 4096API REST
opencode attachConectar TUI a servidor remotoopencode attachTUI 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]

Siguiente: Capitulo 19: SDK y Server Mode —>