Sobre el proyecto

ainess es una aplicación de escritorio (Tauri 2, licencia MIT) que convierte las CLIs de codificación de IA que ya tienes instaladas en un equipo coordinado. En lugar de incluir un modelo o una clave de API, detecta y acciona herramientas existentes —Claude Code, Antigravity, GitHub Copilot CLI, Gemini CLI, Codex CLI, opencode, Ollama y Aider— y puede instalar la mayoría de ellas desde un panel de configuración. Un tipo de agente "personalizado" puede ejecutar cualquier comando, con {prompt} sustituido en sus argumentos. Las sesiones y credenciales permanecen donde cada CLI las guarda; la aplicación afirma que nunca solicita, almacena ni lee una clave. Windows es la plataforma en la que se desarrolla y prueba. Cómo funciona la orquestación Los agentes son procesos CLI de ejecución única. Cada invocación es una "ejecución" (run), y las conversaciones persisten entre ejecuciones porque cada proveedor se reanuda a través de su propio ID de sesión. Los agentes se organizan en una jerarquía con roles: un planificador que razona, divide el trabajo y delega pero no implementa; implementadores que realizan el trabajo; y revisores que lo comprueban. La delegación ocurre a través de un bloque delimitado en la respuesta del planificador, que el orquestador analiza en ejecuciones y devuelve como resultados —un ciclo llamado ronda, con un máximo configurable. Las tareas deben ser autónomas, ya que un agente hijo no ve la conversación del planificador. Un agente también puede pausar y hacer una pregunta al usuario con opciones, y la ejecución continúa en la misma sesión una vez respondida. Dentro de la aplicación Los proyectos apuntan a carpetas de espacio de trabajo y mantienen su propio equipo, estado, historial y chats; una "formación" guardada puede aplicarse a nuevos proyectos junto con sus habilidades y servidores MCP. Un tablero kanban con seis columnas (desde backlog hasta hecho) se puebla automáticamente: un prompt crea una tarea, las delegaciones dependen de ella, las aprobaciones esperan en "needs you", y las ejecuciones finalizadas pasan a revisión o listo. Las mismas tareas se representan como un grafo de dependencias por capas donde las conexiones arrastrables declaran relaciones de bloqueo. Otras vistas incluyen un hilo de chat con el orquestador (uso de herramientas, delegaciones colapsables, "órdenes" de prompt guardadas), un grafo jerárquico que muestra quién delega a quién y la cuota restante, un muelle derecho con feeds de eventos raw y terminales PTY reales, aprobaciones que pueden requerirse por agente o globalmente, chats multi-agente directos y compartidos, notificaciones, estado del repositorio git (rama, archivos modificados, adelanto/atraso, pull requests abiertos con estado de CI) y menús contextuales de clic derecho. Los worktrees de git por agente con su propia rama permiten que dos implementadores trabajen a la vez sin luchar por el índice de git; un panel puede abrirlos, fusionarlos o descartarlos, rechazando la fusión con trabajo no confirmado. Remoto y CLI Un servidor integrado publica la misma interfaz de React como una página única autónoma a través de la LAN, protegida por un token en la URL (401 sin él), para que un teléfono pueda ver el tablero, enviar tareas, detener ejecuciones y responder preguntas. Las URLs públicas opcionales provienen de cloudflared o ngrok, con soporte para dominios estáticos. La página también ofrece notificaciones del navegador mientras está activa en segundo plano, lo que requiere un contexto seguro. Una API HTTP con autenticación por token expone el estado, un flujo de eventos SSE y endpoints de prompt, instruct, stop, approve y chat. El mismo orquestador está disponible sin interfaz a través de una CLI, con comandos para ejecutar tareas, gestionar proyectos, agentes y formaciones, detectar instalaciones, comprobar cuota y uso, navegar por el historial, gestionar aprobaciones, chatear y servir la página para el teléfono. Extras y datos Las habilidades, servidores MCP, contexto compartido y un perfil se inyectan en los prompts de los agentes. Los hooks reaccionan a eventos del orquestador como task.started, task.finished, delegation o approval.requested con Slack/Discord o webhooks genéricos, comandos locales, notificaciones del sistema o instrucciones encadenadas a otro agente, utilizando variables plantilladas. Toda la configuración, historial, chats, tableros de tareas, marcas de cuota y logs residen en archivos planos bajo las carpetas AppData del usuario; el historial guarda las últimas 300 ejecuciones y 3000 mensajes por proyecto, los logs rotan diariamente y se conservan durante 14 días, y los tokens se enmascaran antes de escribirse. La interfaz está traducida al español, inglés, portugués brasileño, chino simplificado, japonés, francés y alemán, intercambiable sin reiniciar, con el español como diccionario base. Las versiones se compilan y firman a través de GitHub Actions a partir de un incremento de versión en la rama main, y las aplicaciones instaladas se actualizan a sí mismas.