OpenCode con Docker Model Runner: coding asistido con IA local
Cómo conectar OpenCode a Docker Model Runner para usar modelos de IA locales (Qwen3-Coder, Devstral-Small-2, gpt-oss) como asistente de coding. Sin dependencias cloud, control total, latencia cero.
¿Qué es OpenCode con Docker Model Runner?
OpenCode es un asistente de coding impulsado por IA que funciona en tu editor de texto o línea de comandos. Cuando lo conectas a Docker Model Runner, puedes usar modelos de IA ejecutados localmente en lugar de servicios cloud como OpenAI o Claude.
Esto significa: cero dependencias externas, latencia de milisegundos, control total de tus datos, y ahorro de costos API. Todo tu homelab.
Docker Model Runner (DMR) es una plataforma nativa que permite servir modelos de IA de manera eficiente. OpenCode se conecta a DMR mediante un endpoint OpenAI-compatible, lo que hace la integración transparente y sin fricciones.
Ventajas de OpenCode + Docker Model Runner
Sin dependencias cloud
Todo corre en tu hardware. Cero interacción con servidores externos.
Latencia cero
Respuestas de milisegundos. No hay espera por red ni API rate limits.
Control de datos
Tu código nunca sale de tu máquina. Privacidad total garantizada.
Modelos especializados
Qwen3-Coder y Devstral-Small-2 optimizados específicamente para código.
Contexto grande
gpt-oss empaquetado con 128k tokens para análisis de repositorios completos.
OpenAI-compatible
Usa modelos locales con la misma interfaz que OpenAI. Migración cero.
Prerrequisitos
Antes de empezar, asegúrate de tener:
- Docker Desktop o Docker Engine: Instalados y funcionando en tu sistema.
- Docker Model Runner habilitado: Con TCP access en puerto 12434 (requerido para OpenCode).
- OpenCode instalado: Descárgalo de opencode.ai/docs.
- Modelos descargados: Qwen3-Coder y/o Devstral-Small-2 (los instalaremos en Paso 1).
docker desktop enable model-runner --tcp 12434
Paso 1: Descargar modelos de coding
Docker Model Runner necesita los modelos descargados antes de que OpenCode pueda usarlos. Hay dos opciones principales optimizadas para coding:
Opción A: Qwen3-Coder (recomendado)
Especialmente optimizado para código. Excelente relación velocidad/calidad.
Opción B: Devstral-Small-2
Alternativa rápida y ligera. Ideal si tienes recursos limitados.
Opción C: Descargar ambos
Lo más práctico: tener dos modelos permite cambiar entre ellos según la tarea.
docker model pull ai/devstral-small-2
Verificar descargas
# Debe listar: ai/qwen3-coder, ai/devstral-small-2, etc
Paso 2: Crear configuración de OpenCode
OpenCode lee su configuración de dos lugares (por orden de precedencia):
- Global:
~/.config/opencode/opencode.json(aplica a todos los proyectos) - Proyecto:
./opencode.jsonen raíz del proyecto (sobrescribe global)
Configuración básica (2 modelos de coding)
Crea opencode.json en la raíz de tu proyecto:
«$schema»: «https://opencode.ai/config.json»,
«provider»: {
«dmr»: {
«npm»: «@ai-sdk/openai-compatible»,
«name»: «Docker Model Runner»,
«options»: {
«baseURL»: «http://localhost:12434/v1»
},
«models»: {
«qwen3-coder»: {
«name»: «ai/qwen3-coder»
},
«devstral-small-2»: {
«name»: «ai/devstral-small-2»
}
}
}
}
}
http://localhost:12434/v1 coincida con tu configuración de Docker Model Runner. Si usas la ruta legacy, cambia a http://localhost:12434/engines/v1.
Paso 3: Verificar que Docker Model Runner está accesible
Antes de abrir OpenCode, asegúrate de que el endpoint es alcanzable. Esto evita sorpresas después.
Comprobar endpoint moderno
Si usas ruta legacy
Respuesta esperada
Deberías recibir JSON listando los modelos disponibles:
{
«data»: [
{ «id»: «ai/qwen3-coder» },
{ «id»: «ai/devstral-small-2» }
]
}
docker model status.
Paso 4: Lanzar OpenCode con los modelos locales
Una vez configurado y verificado, OpenCode está listo para usar.
Iniciar desde línea de comandos
opencode
Cambiar modelo en la TUI (Terminal UI)
OpenCode proporciona una interfaz interactiva. Para cambiar de modelo mientras está ejecutándose:
# Luego selecciona el modelo del proveedor ‘dmr’
Paso 5: Empaquetar gpt-oss con contexto grande (opcional)
Este paso es totalmente opcional. Úsalo solo si necesitas analizar repositorios completos con un contexto de 128k tokens.
¿Cuándo lo necesitas?
- Análisis de repositorio completo: Refactorización a escala del proyecto.
- Arquitectura de sistema: Cambios que afectan múltiples ficheros.
- Investigación de bugs complejos: Que requieren ver el contexto completo.
Descargar gpt-oss base
Empaquetar con 128k de contexto
Docker Model Runner permite personalizar el tamaño de contexto. Crea una variante de gpt-oss optimizada:
Añadir a la configuración de OpenCode
Actualiza opencode.json para incluir el modelo empaquetado:
«$schema»: «https://opencode.ai/config.json»,
«provider»: {
«dmr»: {
«npm»: «@ai-sdk/openai-compatible»,
«name»: «Docker Model Runner»,
«options»: {
«baseURL»: «http://localhost:12434/v1»
},
«models»: {
«qwen3-coder»: {
«name»: «ai/qwen3-coder»
},
«devstral-small-2»: {
«name»: «ai/devstral-small-2»
},
«gpt-oss:128k»: {
«name»: «gpt-oss:128k»
}
}
}
}
}
Troubleshooting y solución de problemas
OpenCode no puede conectar a Docker Model Runner
docker model status
# Si falla, reinicia Docker Desktop o daemon
OpenCode no muestra el modelo que configuré
docker model ls
# Si el modelo no aparece, descárgalo primero
docker model pull ai/qwen3-coder
Nombre del modelo no coincide en opencode.json
Asegúrate de que el "name" en la configuración coincide exactamente con lo que ves en docker model ls. Incluye el prefijo ai/ si es necesario.
Conexión timeout o «Connection refused»
- Verifica que Docker Desktop/Engine está corriendo:
docker ps - Verifica que Model Runner tiene TCP habilitado en puerto 12434
- Si usas firewall, abre puerto 12434 (aunque sea localhost)
El modelo descarga pero tarda mucho
Es normal. Los modelos de IA son ficheros de gigabytes. Qwen3-Coder puede tardar 10-20 minutos dependiendo de tu conexión. La primera descarga es la más lenta; las posteriores son instantáneas.
Flujo de trabajo completo en 5 minutos
1. Descargar modelos (5-20 min)
docker model pull ai/qwen3-coder
2. Crear opencode.json (30 seg)
Copiar la configuración JSON en raíz del proyecto
3. Verificar endpoint (10 seg)
curl http://localhost:12434/v1/models
4. Lanzar OpenCode (5 seg)
opencode desde raíz del proyecto
5. Cambiar modelo si quieres (30 seg)
Escribe /models en la TUI para seleccionar otro
Comparativa: OpenCode local vs OpenCode cloud
| Aspecto | OpenCode + DMR (Local) | OpenCode + OpenAI/Cloud |
|---|---|---|
| Latencia | Milisegundos ✅ | 500-2000ms (red + cloud) |
| Coste | Gratis (hardware propio) | $20-100/mes típico |
| Privacidad | 100% local ✅ | Datos a third-parties |
| Rate limits | Ninguno ✅ | Sí, según plan |
| Offline | Sí ✅ | No, requiere internet |
| Control | Total (tu hardware) | Limitado a proveedor |
Casos de uso reales
1. Freelancer con múltiples clientes
No quieres usar una sola API key de OpenAI que cueste dinero por cada línea de código. Con OpenCode + DMR, tus costos son solo el hardware (una vez).
2. Desarrollador en empresa con restricciones
Algunas empresas no permiten enviar código a servidores cloud. OpenCode local resuelve esto: código + IA, todo adentro del firewall.
3. Homelab + side projects
Tienes un servidor Intel en casa. ¿Por qué no usarlo como coding assistant? Configura DMR una vez, úsalo para todos tus proyectos personales infinitamente.
4. Experimentación con múltiples modelos
Compara Qwen3-Coder vs Devstral-Small-2 en la misma tarea. Cambia en OpenCode con /models. Sin gastar dinero extra.
5. Análisis de repositorios grandes
gpt-oss con 128k contexto permite entender arquitecturas completas de código. Perfecto para onboarding a nuevos proyectos o refactorización a escala.
Recursos adicionales y mejoras futuras
- Integraciones IDE: OpenCode puede integrase con VS Code, Vim, Neovim. Ver docs de OpenCode.
- Personalización: Experimenta con diferentes tamaños de contexto usando
docker model package. - Múltiples proyectos: Cada proyecto puede tener su propio
opencode.jsoncon diferentes modelos. - GPU acceleration: Si tu GPU es compatible, Docker Model Runner aprovecha automáticamente CUDA/ROCm.
- Monitoreo: Usa
docker model statuspara ver consumo de recursos de los modelos.
Referencias oficiales
Conclusión: Coding asistido, 100% tuyo
OpenCode + Docker Model Runner es la combinación perfecta para desarrolladores que buscan un asistente de IA sin dependencias cloud, sin costos recurrentes, y con privacidad garantizada.
Cinco pasos simples y tienes un coding assistant local funcionando. Los modelos están especializados en código (Qwen3-Coder, Devstral-Small-2), son rápidos, y si necesitas más contexto, gpt-oss con 128k tokens está ahí.
Apoya el canal GENBYTE
Suscríbete al canal de YouTube
Suscríbete a la newsletter semanal
Invítame a un Ko-fi
[email protected]
