arbor : gerer ses worktrees Git depuis un desktop Rust avec terminal integre
https://penso.github.io/arbor/
https://github.com/penso/arbor
📌 Arbor transforme la gestion quotidienne des worktrees Git en workflow visuel fluide: création, suppression, navigation, diff, terminal et suivi d’activité agent sont réunis dans une app desktop Rust pensée pour enchaîner les tâches sans perdre le contexte.
Arbor est un gestionnaire desktop centré sur les worktrees Git, avec une approche orientée exécution concrète plutôt que simple inspection de dépôt. L’application rassemble dans une seule interface la liste des repositories, les worktrees actifs et l’état des modifications, ce qui évite de multiplier terminal, explorateur de fichiers et interfaces web Git. Le résultat est un poste de travail cohérent pour passer rapidement d’une branche à l’autre tout en gardant une vision claire de l’avancement.
Le cœur de l’outil simplifie d’abord la mécanique des worktrees: lister, créer, supprimer et revenir en arrière dans l’historique de navigation. En pratique, cela réduit les frictions quand plusieurs sujets sont traités en parallèle sur un même repo. Arbor ajoute aussi des garde-fous utiles, comme la détection de commits non poussés avant suppression, afin d’éviter les pertes de travail. Cette logique de sécurité intégrée fait gagner du temps parce qu’elle évite les vérifications manuelles répétitives.
Un autre point fort est le terminal intégré avec support PTY, truecolor et xterm-256color. Au quotidien, cela permet de lancer les commandes Git, build, test ou scripts sans quitter le contexte du worktree affiché. Arbor gère plusieurs onglets terminal par worktree et prend en charge des backends alternatifs comme Alacritty ou Ghostty. Les sessions daemon persistantes permettent de reprendre une session après redémarrage de l’app, ce qui améliore la continuité sur des tâches longues.
La vue diff et changements sert à traiter les modifications rapidement: fichiers modifiés, arbre de fichiers, diff côte à côte et comptage des lignes ajoutées/supprimées. Cette combinaison facilite les revues locales avant commit, surtout quand plusieurs worktrees avancent en même temps. La navigation multi-onglets côté diff rend aussi les comparaisons plus rapides quand il faut valider plusieurs zones de code dans une même session.
La couche GitHub intégrée complète ce flux avec la détection automatique des pull requests, les avatars de repository et des actions Git déclenchables dans l’interface comme commit et push. L’intérêt n’est pas de remplacer Git, mais de réduire les allers-retours entre outils en gardant les actions fréquentes accessibles au bon moment.
points cles
- ⚡ Gestion complète des worktrees Git avec création/suppression/navigation sans changer d’outil.
- 🖥️ Terminal intégré par worktree avec onglets, sessions persistantes et support de plusieurs backends.
- 🔍 Vue diff + arbre de fichiers pour relire vite les changements avant commit.
- 🌐 Intégration GitHub avec détection de PR et actions Git courantes depuis l’interface.
- 🤖 Détection d’agents de code actifs (Claude Code, Codex, OpenCode) avec indicateurs d’état en temps réel.
- 🔐 Support des outposts distants via SSH et Mosh pour piloter des environnements éloignés.
Arbor couvre aussi un besoin qui monte vite dans les workflows modernes: la supervision d’agents de code en parallèle. L’application détecte les agents en cours d’exécution et expose leur état (travail, attente) via des indicateurs visuels et un flux temps réel WebSocket. Cela permet de garder une lecture opérationnelle de ce qui tourne réellement, sans ouvrir plusieurs consoles ni perdre la trace des sessions actives.
Pour les environnements hybrides local/serveur, Arbor propose les Remote Outposts. Le principe est de piloter des worktrees distants via SSH, avec configuration multi-hôtes, ports personnalisés et fichiers d’identité. Le support Mosh améliore la robustesse en connexion instable, et le daemon arbor-httpd ouvre une couche d’accès distante pour les terminaux et la supervision. Cette architecture rend l’outil pertinent autant sur un laptop unique que sur une flotte de machines de build ou de dev.
Le démarrage est direct selon le contexte. Sur macOS, l’installation peut passer par Homebrew (brew install penso/arbor/arbor) ou via les releases GitHub. Pour compiler depuis la source, Arbor s’appuie sur Rust nightly (version indiquée dans le projet), le runner just, et quelques dépendances système selon l’OS. Les commandes de base couvrent format, lint, tests et exécution locale, ce qui permet de vérifier rapidement l’état du projet avant une contribution.
Côté configuration, Arbor utilise un fichier TOML dans ~/.config/arbor/config.toml avec rechargement à chaud. On peut y ajuster thème, backend terminal, URL de daemon, notifications et hôtes distants. Cette approche garde des réglages explicites, versionnables et simples à reproduire d’une machine à l’autre. L’application propose aussi un catalogue de thèmes très large, utile pour adapter le confort visuel sans toucher au comportement fonctionnel.
Sur les aspects compatibilité et écosystème, le projet est structuré en plusieurs crates (arbor-core, arbor-gui, arbor-httpd, arbor-web-ui), ce qui clarifie les responsabilités entre logique métier, interface desktop, daemon distant et assets web. La CI couvre format, lint et tests, puis des builds multi-plateformes (Linux, macOS, Windows), un signal concret de maturité pour un usage quotidien. Les releases automatisées facilitent enfin la distribution de binaires prêts à l’emploi.
Concernant la confidentialité, Arbor ne repose pas sur un service SaaS obligatoire pour fonctionner. Le flux principal reste local, avec des options distantes explicites quand elles sont activées. Cette séparation est importante: elle permet d’adopter l’outil progressivement, d’abord en local sur des repos sensibles, puis éventuellement avec des outposts maîtrisés par configuration.
Concrètement, Arbor est un excellent choix pour gérer plusieurs branches actives sans chaos opérationnel. Il combine les avantages d’un cockpit visuel, d’un terminal natif au contexte et d’une couche distante solide, tout en restant ancré dans un workflow Git pragmatique.
En savoir plus sur Clement MONDARY
Subscribe to get the latest posts sent to your email.
