Capitulo 19: SDK y Server Mode

Por: Artiko
opencodeaisdkserverapiheadless

Capitulo 19: SDK y Server Mode

< Volver al Indice del Tutorial

OpenCode no esta limitado a la TUI. Puedes ejecutarlo como servidor HTTP, accederlo desde el navegador, conectar multiples terminales al mismo proceso y usarlo programaticamente con el SDK. Este capitulo cubre todos los modos de ejecucion avanzados.

opencode serve (Servidor Headless)

El comando serve arranca OpenCode como un servidor HTTP sin interfaz grafica. Expone una API REST que permite interactuar programaticamente con el agente.

Uso Basico

opencode serve --port 4096 --hostname 0.0.0.0
FlagDescripcionDefault
--portPuerto del servidor HTTP4096
--hostnameDireccion de escucha127.0.0.1

Casos de Uso

Autenticacion

Protege el servidor con basic auth usando una variable de entorno:

export OPENCODE_SERVER_PASSWORD="tu-password-seguro"
opencode serve --port 4096

Con el password configurado, todas las peticiones a la API requieren autenticacion HTTP basic. El usuario es opencode y el password es el valor de la variable.

CORS

Configura CORS en la seccion server de la configuracion para permitir peticiones desde dominios especificos. Esto es necesario si tu aplicacion web esta en un dominio diferente al servidor de OpenCode.

mDNS (Descubrimiento Local)

OpenCode soporta mDNS para descubrimiento automatico en red local. Cuando arrancas el servidor, otros dispositivos en la misma red pueden descubrirlo sin conocer la IP exacta.

opencode web

El comando web es similar a serve pero ademas abre una interfaz web en el navegador:

opencode web

Esto arranca el servidor HTTP y abre automaticamente la interfaz web. La interfaz es accesible desde cualquier dispositivo en la red que pueda alcanzar el servidor.

Acceso Remoto

Si arrancas con --hostname 0.0.0.0, puedes acceder desde:

Esto es ideal para trabajar desde un iPad o tablet cuando tu servidor de desarrollo esta en otro equipo.

opencode attach

El comando attach permite conectar una TUI local a un servidor remoto de OpenCode:

opencode attach --port 4096

Multiples Clientes

Varias instancias de TUI pueden conectarse al mismo servidor simultaneamente:

# Terminal 1: arranca el servidor
opencode serve --port 4096

# Terminal 2: conecta una TUI
opencode attach --port 4096

# Terminal 3: conecta otra TUI
opencode attach --port 4096

Todos los clientes comparten la misma sesion. Lo que un cliente envia, los demas lo ven en tiempo real. Esto permite pair programming con AI: dos desarrolladores interactuan con el mismo agente desde terminales separadas.

Conexion Remota

Puedes hacer attach a un servidor en otra maquina:

opencode attach --hostname 192.168.1.100 --port 4096

Sessions

OpenCode persiste las sesiones en una base de datos SQLite desde la version v1.2.0. Puedes exportar, importar y gestionar sesiones.

Export

Exporta una sesion completa como JSON:

opencode session export <session-id>

El JSON incluye todos los mensajes, herramientas invocadas y resultados. Util para auditorias, debugging o compartir conversaciones.

Import

Importa una sesion previamente exportada:

opencode session import <archivo.json>

Persistencia

Las sesiones se almacenan en SQLite, lo que ofrece:

SDK

OpenCode expone un SDK para integracion programatica. Esto permite construir aplicaciones que usen OpenCode como motor AI sin depender de la TUI ni de la API REST.

Capacidades del SDK

Cuando Usar Cada Modo

ModoIdeal ParaComando
TUIDesarrollo interactivo diarioopencode
WebAcceso desde navegador/dispositivosopencode web
ServeAPIs, bots, integracionesopencode serve
AttachConectar TUI a servidor remotoopencode attach
ACPIntegracion con IDEsopencode acp
SDKAplicaciones programaticasImportar libreria
RunScripts y pipelines (no interactivo)opencode run "prompt"

Cada modo resuelve un caso de uso diferente. Puedes combinarlos: por ejemplo, serve como backend y attach + web como clientes simultaneos.


Siguiente: Capitulo 20: Tips de Productividad —>