À propos du projet

Ground Control est une app macOS (13+, Swift 5.9, sans dépendances tierces) qui suit les sessions d’agents IA exécutées dans vos terminaux et éditeurs. Elle répond à un problème précis : lorsque vous lancez plusieurs agents dans plusieurs terminaux et bureaux, l’un d’eux peut être bloqué en attente de votre approbation, et vous perdez du temps soit à tous les vérifier, soit à oublier de le faire. L’app affiche un panneau flottant au-dessus de tous les bureaux, avec une ligne par session d’agent active. Chaque ligne montre le nom de la session, l’activité en cours et un point d’état qui devient rouge lorsque l’agent est bloqué et a besoin de vous. Cliquer sur une ligne navigue vers l’onglet de terminal exact (Terminal.app, iTerm2) ou met au premier plan l’app propriétaire (VS Code, Cursor, Warp, Ghostty, WezTerm). Une icône de barre de menus affiche un badge dès qu’une session requiert votre attention. La compatibilité testée avec les agents inclut Claude Code (sous-agents regroupés, rouge en cas de blocage/question), Grok CLI (rouge sur les invites de saisie), OpenAI Codex CLI (rouge sur les demandes de permission), opencode (rouge sur permission.asked) et Grok Bot (rouge sur les approbations depuis la version 0.58.0). L’agent Composer de Cursor affiche des lignes mais ne peut pas devenir rouge, car il n’émet aucun événement d’attente. L’onglet Code de Claude for Desktop est pris en charge ; ses sessions cloud et l’onglet Home ne le sont pas, car rien ne s’exécute localement. L’app fonctionne en installant des hooks qui écrivent des fichiers de session JSONL dans un dossier temporaire ; l’app surveille ce dossier et affiche le dernier état de chaque fichier. L’installateur fusionne dans ~/.claude/settings.json, ~/.cursor/hooks.json et ~/.codex/config.toml, après avoir sauvegardé les fichiers existants. Les hooks n’interrompent jamais l’agent et échouent silencieusement par conception. Le panneau est entièrement personnalisable via des dossiers d’images et de JSON déposés (style WinAmp). Une fonction intégrée « Create a Theme » génère des invites pour des LLM capables d’images afin de produire des illustrations de thème. L’analyseur de barre de titre peut exécuter des formules de hauteur de barre définies par le thème. L’app n’établit aucune connexion réseau et son TerminalFocuser peut uniquement naviguer vers des fenêtres, sans saisir ni exécuter de commandes. Une fonction de réponse à distance a été prototypée puis délibérément supprimée pour des raisons de sécurité. Sous licence AGPL-3.0-or-later ; les contributions de code ne sont pas acceptées, mais les rapports de bugs et les thèmes sont bienvenus.