Un plano de control para tus agentes: lleva la IA de tu PC a tu bolsillo, sin que tu hardware sufra
Uxnan es un toolkit que estoy construyendo para resolver un problema muy concreto: controlar agentes de IA de línea de comandos desde cualquier lugar, sin que mi propio hardware sea el cuello de botella. No es un agente más: es el plano de control para los agentes que ya uso (Claude Code, Codex CLI, OpenCode, Gemini CLI, pi-agent). El proyecto está organizado como un monorepo con cinco componentes independientes, y lo más importante es que ninguno depende del otro para funcionar: la app móvil y la de escritorio resuelven problemas distintos y pueden usarse por separado.
El flujo tradicional tiene fricciones reales. Cuando me alejo de la PC pierdo toda visibilidad de lo que el agente está haciendo: no puedo revisar su progreso, aprobar cambios ni enviar nuevas instrucciones desde el teléfono. Las soluciones de escritorio existentes son excelentes, pero muchas asumen hardware de gama alta; en mi caso, correr un IDE pesado más varios agentes más un entorno Electron consume más recursos de los que puedo permitirme. Y no existe una herramienta móvil agnóstica de proveedor que funcione con cualquier agente, no solo con uno en particular. Uxnan nace exactamente para cubrir ese hueco.
Los cinco componentes
📱 uxnanmobile — la app móvil (Flutter) que conecta con tus agentes desde Android e iOS. Emparejamiento con cifrado de extremo a extremo (E2EE), reconexión automática, conversaciones en streaming que sobreviven la navegación, selector de modelos estructurado, indicador de uso de contexto siempre visible, acciones por hilo (renombrar, eliminar, copiar id), navegador de carpetas para nuevas conversaciones e indicador de transporte (relay vs. directo). Es el "mando a distancia" de tus agentes.
🖥️ uxnandesktop — un ADE (entorno de desarrollo agentico) ultraligero, autónomo, construido con Tauri 2 + Rust + Svelte 5. Shell de tres paneles redimensionables, terminales PTY con pestañas y splits anidados, gestión de worktrees de Git con diff a nivel de hunk, monitoreo de agentes (inferencia de actividad + notificaciones de inactividad), orquestación multi-agente (fan-out a varios agentes o a los workers de un coordinador) y generación de mensajes de commit asistida por IA. No necesita la app móvil para funcionar; es una estación de trabajo completa en local.
🌉 bridge — el puente que conecta la app móvil con los agentes reales. Implementa el transporte E2EE (relay + LAN) y lanza los CLIs oficiales de cada proveedor sobre stdio (sin API/SDK/keys propias del proveedor). Maneja el ciclo de vida completo de los hilos, selección de agente/modelo por hilo y por proyecto, descubrimiento estructurado de modelos, uso de tokens por turno, checkpoints con restauración real de worktrees y gestión de dispositivos de confianza.
📡 relay — el servidor de retransmisión E2EE que enruta los sobres cifrados por sessionId, con rate limiting, cierre de pares y endpoints de push (gated por credenciales de Firebase/APNs). Permite la comunicación móvil↔PC aunque no estén en la misma red.
🧩 shared — los contratos comunes de todo el sistema: JSON-RPC y esquemas E2EE con sus validadores. Es la base que mantiene coherentes a los demás componentes sin acoplarlos entre sí.
Seguridad y privacidad por diseño
Todo el canal móvil ↔ PC está protegido con E2EE (AES-256-GCM): el relay solo ve sobres cifrados y nunca el contenido de las conversaciones. El estado de autenticación que expone el bridge está sanitizado y nunca incluye tokens. El emparejamiento genera un canal de confianza entre dispositivos, y la gestión de dispositivos permite revocar el acceso en cualquier momento. El objetivo es simple: tus agentes y tu código quedan bajo tu control, no en un servidor intermediario.
Resultados:
🧠 Para el desarrollador:
Uxnan es mi proyecto más ambicioso en cuanto a arquitectura distribuida y sistemas. Me ha empujado a entrar en el mundo de Rust y Tauri para el escritorio, a diseñar un protocolo de transporte cifrado de extremo a extremo, y a integrar CLIs de terceros de forma agnóstica mediante stdio en lugar de acoplarme a una sola API. Coordinar cinco monorepos sin acoplarlos me ha enseñido a pensar en contratos compartidos y límites de responsabilidad muy claros. Es, además, mi laboratorio diario para probar agents, orquestación y flujos de trabajo móviles reales.
🌐 Para la Comunidad:
Como proyecto open source (MPL-2.0), Uxnan ofrece una alternativa ligera y privada a las soluciones de escritorio pesadas: puedes controlar tus agentes desde el móvil sin exponer tus conversaciones, y ejecutar un ADE completo en equipos modestos. Al ser agnóstico de proveedor, cualquiera puede usarlo con el agente de su preferencia. La arquitectura modular invita a contribuir en un componente concreto sin tener que entender todo el sistema.
Tecnología utilizada:
Flutter, Dart, Rust, Tauri 2, Svelte 5, Node.js, TypeScript, JSON-RPC, E2EE (AES-256-GCM), xterm.js, portable-pty, axum, Isar, Firebase (FCM), PostgreSQL, PGVector


