Casi todas mis máquinas tienen ya un agente de código instalado: Claude Code, Cursor, OpenCode y compañía. Se les da sorprendentemente bien el trabajo de sistemas: leer logs, levantar un servicio que se ha caído, averiguar por qué se ha llenado un disco. La pega es que viven en un terminal, y cuando algo se rompe rara vez estás delante de uno. Estás con el móvil.
De ahí sale Glassys. Lo empecé el 8 de septiembre y es mi proyecto más nuevo, open source como el resto.
Qué es (y qué no)
Glassys es una cara de chat autoalojada para el agente que ya está en la máquina. Un gateway pequeño en Node habla con el SDK local de cada fabricante (Claude Agent SDK, Cursor, OpenCode, Codex, Gemini CLI o cualquier cosa que hable ACP), traduce el flujo de cada uno a un único protocolo de interfaz y sirve una PWA que abres desde el móvil o desde otro ordenador.
La analogía más cercana: Glassys es a estos agentes lo que Open WebUI es a Ollama. La interfaz, no el motor.
También conviene decir lo que no es, porque me lo he tenido que recordar más de una vez:
- No es el agente. No infiere nada ni tiene personalidad. Si el agente se equivoca, Glassys te enseña cómo se equivoca.
- No es un IDE. El trabajo es operar la máquina: servicios, ficheros, git, el propio sistema. Para escribir código de aplicación, tu editor sigue siendo el sitio.
- No es un SaaS. Cada uno monta su propia instancia en su propio servidor.
La v1 es pequeña a propósito: un perfil, un agente, un hilo vivo y las ejecuciones en cola, una detrás de otra. El gateway se instala como servicio de usuario con un solo comando.
Tres semanas, tres etapas
La primera versión (8 de septiembre). Hilos que sobreviven a las reconexiones, los adaptadores, el instalador y una PWA que ya se podía usar desde el móvil. Funcionaba, pero la interfaz había crecido por acumulación: un CSS de casi 850 líneas, una docena de tamaños de letra (alguno a un píxel del siguiente) y diecisiete valores de espaciado sin escala.
Un sistema de diseño de verdad (9 de septiembre). La rehice sobre escalas explícitas: espaciado de 4 px, seis pasos tipográficos, cinco radios, tres elevaciones. Un rail fijo en escritorio, una barra de pestañas en el móvil, un compositor que ya no cambia de altura mientras escribes, y un diálogo de confirmación propio en vez del del navegador, que enseñaba la URL del gateway. Después, una auditoría midiendo y no a ojo: dos grises no pasaban el contraste AA en ninguno de los dos temas, el anillo de foco pintaba un halo casi negro sobre superficies claras, y una píldora de estado quedaba a 13 o a 51 píxeles del borde según la tarjeta. Para que no vuelva, ahora hay una comprobación que corre con el linter y tumba el build si un componente usa un tamaño suelto, si un par de colores baja de AA o si una clase no la usa nadie.
La máquina al lado del chat (del 23 al 26 de septiembre). Es la parte que más me gusta. Un panel de Actividad enseña lo que el hilo actual le ha hecho al servidor. Y hay cuatro vistas de solo lectura junto a la conversación: resumen (uptime, carga, memoria, cada disco con su uso), servicios, logs y ficheros. Quien hace los cambios es el agente; las vistas están para que puedas comprobar lo que ha hecho sin tener que preguntárselo. Las ejecuciones también cambiaron: una que toca una docena de ficheros ya no es un muro de tarjetas de herramientas, sino una secuencia legible de pasos agrupados.
Por el camino reforcé el gateway: toma el origen CORS permitido de su propia lista en vez de fiarse de la petición, solo confía en su propio origen, no mete errores internos en sus respuestas y da a cada escritura atómica su propio fichero temporal. Nada de eso se ve, que es justo como tiene que ser.
Cómo está
Ya se puede usar. Todavía tiene aristas: el SDK de Gemini aún no está en npm, Codex y OpenCode necesitan su binario en el PATH, y un único hilo vivo es un límite que elegí, no uno para siempre.
Si tienes agentes en tus propias máquinas y alguna vez has querido hablar con ellos desde el sofá, el repositorio tiene instrucciones de instalación y capturas de la interfaz actual. Los issues son bienvenidos.
Comentarios