- Con ejecución local de LLM y entorno de sandbox de código se puede armar un workspace de IA sin dependencia de la nube
- Ejecuta un LLM local con Ollama, corre código en una VM aislada con Apple Container y habilita automatización y acceso a internet mediante un navegador headless con Playwright
- La UI se basa en
assistant-ui, implementa selector desplegable de modelo e integración con ai-sdk, y crea un entorno de ejecución segura mediante MCP (Model Context Protocol)
- Dentro de la VM de Coderunner conectada por MCP se ejecutan Jupyter y un navegador para procesar generación de gráficos, edición de imágenes/video, instalación de herramientas de GitHub y búsquedas web con protección de privacidad
- Hoy solo funciona en Apple Silicon, y, como próximos pasos, se priorizan mejoras de UI, evasión de detección del navegador y fortalecimiento de la gestión de herramientas
Requisitos y contexto
- Objetivo: ejecutar todo de forma local, sin ejecución de código en la nube ni servicios remotos
- Las apps de chat de LLM existentes (por ejemplo, ChatGPT, Claude) ofrecen chat con LLM en la nube, ejecución de código en la nube/local y acceso a internet
- Con la expansión del uso de LLM de código abierto apareció la duda de si era posible hacer todo esto completamente en local
- Solo con un LLM local no basta, porque el código debe ejecutarse en un entorno aislado y se necesita acceso a contenido por navegador
Idea de diseño
- Ejecutar LLMs en un entorno completamente local
- Limitar la ejecución de código a una VM ligera para aislarla y evitar riesgos al sistema host
- Añadir un navegador headless para apoyar automatización y exploración de información y herramientas nuevas
- Construir un flujo de trabajo centrado en privacidad donde desde la planificación de IA hasta la ejecución de código se realiza localmente
- Ejecutar desde local tareas de edición de fotos, videos y otras sin entregar datos a servicios externos
Stack tecnológico
- LLM: Ollama (soporte de modelos locales y algunos modelos externos)
- UI:
assistant-ui + ai-sdk (con soporte adicional para selección de modelo)
- VM runtime: Apple
container (proporciona entorno VM aislado)
- Orquestación:
instavm/coderunner (conexión del servidor Jupyter mediante MCP)
- Automatización de navegador: Playwright (expuesto como herramienta MCP)
Intento y cambio hacia app de Mac
- Se intentó desarrollar una app nativa de Mac con
a0.dev, pero al estar enfocada en iOS se presentaron dificultades
- También se probó envolverla con Electron + NextJS, pero se descartó por complejidad
- Finalmente se migró a un
assistant-ui web local
Personalización de Assistant-UI
- Se esperaba que ofreciera funciones como selector de modelo en desplegable y soporte de múltiples LLM, pero fue limitado
- Tras revisar ejemplos, se implementó la selección múltiple de modelos directamente con ai-sdk
- Al inicio también se contempló soportar modelos cloud como OpenAI/Anthropic, con una estrategia gradual de migración a local
Tool-calling y soporte de modelos
- Se necesitaba un modelo que soportara tool-calling, pero algunos como Ollama en la práctica no lo hacen
- Aunque la documentación oficial indique soporte de herramientas, muchas veces la implementación real queda corta
- La rápida evolución del ecosistema open source hace que haya mucha variación en soporte de tools y en precio de tokens
Ejecución de código aislada basada en contenedores
- Se usa la herramienta Container de Apple; a diferencia de Docker, al ofrecer una VM completamente aislada por contenedor se puede ejecutar con más seguridad código generado por IA
- Se despliega un servidor Jupyter en el entorno VM y se expone con Model Context Protocol (MCP), listo para ser consumido desde herramientas como Claude Desktop, Gemini CLI, entre otras
- Se publicaron los códigos del servidor MCP de
coderunner y ejemplos de integración con herramientas externas
- La herramienta Apple Container todavía es inestable, por lo que ante problemas de build o imágenes se necesitan reinicios repetidos
- Se verificó funcionamiento correcto del combo UI + LLM + Coderunner en pruebas reales, como edición de video
Integración de navegador headless
- Se despliega un navegador headless basado en Playwright dentro del contenedor y se expone como herramienta MCP
- Se espera usarlo para explorar herramientas e información nueva, buscar cómo usar GitHub y automatizar investigación
- Flujo base completado: combinación de LLM local + ejecución sandbox de código + navegador headless
Casos de uso posibles
- Investigación y resumen de temas específicos
- Generación y renderizado de gráficos CSV con comandos en lenguaje natural
- Edición de video con ffmpeg (recorte de segmentos, etc.)
- Redimensionado, recorte y conversión de formato de imágenes
- Instalación de herramientas de GitHub dentro del contenedor
- Extracción y resumen de páginas web con navegador headless, entre otros
Montaje de volúmenes de archivos y aislamiento
- Se mapea
~/.coderunner/assets del host a /app/uploads en el contenedor, guardando los archivos en un espacio compartido seguro
- La ejecución de código no tiene acceso directo al sistema host, reforzando la seguridad
Limitaciones y próximos pasos
- Solo funciona en entornos Apple Silicon, con macOS 26 como opción
- Se requieren mejoras de UI para la gestión de herramientas y streaming de salida
- El navegador headless puede ser bloqueado en algunos sitios por detección de bots
Conclusión
- Este proyecto va más allá de un experimento y apuesta por un modelo centrado en soberanía computacional y protección de privacidad
- Entrega una experiencia de procesamiento seguro de datos en la máquina personal, sin depender de nube ni servidores remotos
- Aunque los mejores LLM puedan quedarse en grandes proveedores cloud, se orienta al desarrollo de herramientas de IA local que permitan proteger la privacidad personal
coderunner-ui es open source y está disponible en GitHub; se reciben aportes y colaboración
Recursos relacionados
Aún no hay comentarios.