IDE de escritorio con asistente de IA 100% local: editor Monaco, chat en streaming y cero telemetría
Los asistentes de código en la nube tienen dos problemas que no se resuelven pagando más: tu código sale de tu máquina, y sin conexión no funcionan. LocalCoder es un IDE de escritorio que da la vuelta a eso: el modelo de lenguaje corre en tu propio ordenador mediante Ollama, y la aplicación no envía nada a ningún sitio.
Incluye el editor Monaco — el mismo motor de edición de VS Code —
con pestañas, barra de estado y explorador de ficheros sin límite de profundidad,
además de un panel de búsqueda y un chat con la IA que responde en
streaming, token a token, en lugar de esperar la respuesta
completa. La memoria de cada sesión se guarda en SQLite dentro de
~/.localcoder/.
La función de la que estoy más satisfecho es el scanner de hardware: detecta la CPU y la memoria disponible y recomienda qué modelo de Ollama puede mover ese equipo. Es la diferencia entre que el usuario descargue un modelo de 7B que le funciona y que descargue uno de 70B, agote la RAM y concluya que la IA local no sirve.
El editor Monaco integrado: el mismo motor que usa VS Code, con resaltado y autocompletado.
Pestañas de los ficheros abiertos.
Barra de estado del editor.
Explorador de ficheros sin límite de profundidad, apoyado en
walkdir.
Chat con la IA local, con respuesta en streaming y renderizado de Markdown.
Búsqueda dentro del proyecto abierto.
Configuración de la aplicación y selección de modelo.
Navegación lateral y barra superior.
Pantalla inicial con acceso a proyectos recientes.
Aplicación de escritorio con Tauri 2: la interfaz es web — React 18 con TypeScript y Tailwind, empaquetada por Vite — y el backend es un binario nativo en Rust. Tauri actúa de puente entre ambos, lo que da un ejecutable de pocos megabytes en lugar de los cientos que ocupa una aplicación Electron.
El backend Rust está dividido en cinco módulos con una responsabilidad clara cada uno, y es donde vive todo lo que necesita acceso real al sistema: disco, hardware, base de datos y red.
LocalCoder/ ├── src/ # frontend React + TypeScript │ ├── App.tsx · main.tsx │ ├── components/ # Editor, Chat, Explorer, Search, Settings │ ├── store/ # estado global con Zustand │ └── types/ └── src-tauri/ # backend nativo en Rust ├── main.rs # comandos expuestos al frontend ├── ollama.rs # cliente con respuesta en streaming ├── hardware.rs # detección de CPU/RAM (sysinfo) ├── scanner.rs # recorrido del proyecto (walkdir) ├── db.rs # memoria por sesión en SQLite └── tauri.conf.json
Servidor de modelos en localhost:11434. La comunicación usa
reqwest con la funcionalidad de stream activada, de modo
que la respuesta se muestra mientras se genera.
Integrado vía @monaco-editor/react: el mismo editor de VS Code,
con su resaltado y su experiencia de escritura.
Compilado con la funcionalidad bundled, de modo que no requiere que el usuario tenga SQLite instalado. Guarda la memoria de cada sesión de chat.
Lectura de las características reales del equipo para el recomendador de modelos.
hardware.rs lee CPU y
memoria y propone los modelos de Ollama viables en ese equipo.scanner.rs recorre el árbol
de directorios completo con walkdir.ollama.rs devuelve la respuesta en streaming.db.rs guarda la conversación en
SQLite dentro de ~/.localcoder/.Electron empaqueta un Chromium completo: cientos de megabytes y un consumo de memoria notable para un editor. Tauri usa el motor web que ya tiene el sistema operativo y compila el backend a un binario nativo. El coste es que hay que escribir ese backend en Rust y lidiar con las dependencias de sistema de cada distribución — el README documenta las de Ubuntu.
Un modelo local en una máquina normal tarda varios segundos en generar una respuesta
larga. Con una petición convencional el usuario mira una pantalla quieta y asume que
se ha colgado. Activar stream en reqwest y empujar los tokens
al frontend a medida que llegan no acelera nada, pero cambia por completo la
percepción de velocidad.
El principal motivo por el que alguien abandona la IA local es descargar un modelo
demasiado grande para su equipo, ver que va a un token por segundo y concluir que no
funciona. Leer la CPU y la RAM con sysinfo y recomendar en consecuencia
convierte la primera experiencia en algo que funciona.
La aplicación no envía datos de uso, no reporta errores a ningún servidor y no requiere cuenta. Eso implica renunciar a saber cómo se usa, lo cual es incómodo para el desarrollador; pero es la única forma coherente de sostener la promesa de que el código del usuario no sale de su máquina.
Desarrollador full stack — autor único.
Frontend React con integración de Monaco, los cinco módulos del backend Rust, el cliente de Ollama con streaming, el recomendador de modelos por hardware y la persistencia en SQLite.
Aplicación funcional que compila y se ejecuta con npm run tauri dev,
con empaquetado de producción vía npm run tauri build. Requiere Rust,
Node 18+ y Ollama corriendo en local.
El README documenta las dependencias de sistema necesarias en Ubuntu y los modelos de Ollama recomendados para empezar.