Sodium : un dashboard Git en terminal, disponible sur GitHub

D6Soft · · 4 min de lecture
open sourcegitrustterminal

Sodium : un dashboard Git en terminal, disponible sur GitHub

Gérer plusieurs dépôts Git au quotidien, c’est jongler entre git status, git log, git push et une dizaine d’autres commandes. Quand on travaille sur 5, 10 ou 15 projets en parallèle, le terminal devient vite un enchaînement de cd et de commandes répétitives.

C’est pour répondre à ce problème concret que nous avons développé Sodium, un dashboard Git en terminal avec une interface visuelle pensée pour aller à l’essentiel.

Aujourd’hui, nous le publions sur GitHub : github.com/d6soft/sodium

Le problème : trop de projets, trop de commandes

En tant que développeur, une journée type ressemble souvent à ça :

  • Vérifier l’état de 3 ou 4 dépôts avant de commencer
  • Commiter sur un projet, pusher sur un autre
  • Basculer entre des branches, merger quand c’est prêt
  • Se rappeler quel dépôt a des modifications non commitées

Les outils graphiques comme GitKraken ou SourceTree existent, mais ils sont lourds, consomment des ressources et imposent une interface qui ne correspond pas toujours au workflow des développeurs habitués au terminal.

La solution : une TUI Git multi-projets

Sodium est une interface terminal (TUI) construite en Rust avec Ratatui. Elle scanne votre répertoire de développement et affiche tous vos dépôts Git dans un seul écran.

Vue multi-projets

Au lancement, Sodium affiche la liste de tous les dépôts trouvés dans votre dossier ~/dev (configurable). Pour chaque projet, vous voyez immédiatement :

  • La branche active
  • Le nombre de fichiers modifiés, ajoutés ou supprimés
  • L’état de synchronisation avec le remote
  • L’indicateur GITCON (inspiré du DEFCON) qui résume la situation d’un coup d’œil

Plus besoin d’ouvrir chaque projet un par un. Un seul écran suffit pour savoir où vous en êtes.

Commits interactifs

Quand vous entrez dans un projet, Sodium vous présente les fichiers modifiés avec leurs statistiques de diff. Vous pouvez :

  • Sélectionner les fichiers à inclure dans le commit
  • Tout commiter d’un coup si vous préférez
  • Rédiger votre message de commit directement dans l’interface

Pas de git add -p laborieux ni de git diff --stat à lire dans un terminal brut. L’information est structurée et lisible.

Gestion des branches

Créer une branche, basculer, merger vers main — tout se fait depuis l’interface avec des raccourcis clavier. Sodium affiche un overlay visuel pour les opérations de branche, ce qui rend le processus plus intuitif qu’une succession de commandes.

Miroir GitHub

Pour ceux qui maintiennent des dépôts sur un serveur privé tout en publiant sur GitHub, Sodium gère le push automatique vers un remote secondaire. Il suffit de configurer le miroir dans le fichier TOML du projet :

[projects.mon-projet]
github = "git@github.com:user/mon-projet.git"

À chaque push, Sodium propose de synchroniser le miroir GitHub en parallèle.

Heatmap d’activité

Un détail qui change la perspective : Sodium affiche une grille d’activité sur 91 jours pour chaque projet. Commits, merges, pulls — tout est visible d’un coup d’œil. C’est un bon moyen de repérer les projets qui stagnent ou ceux qui sont en phase active.

Pourquoi Rust ?

Le choix de Rust n’est pas anodin. Pour un outil qu’on lance des dizaines de fois par jour, la vitesse de démarrage et la faible consommation mémoire comptent.

Sodium démarre en quelques millisecondes, même avec une vingtaine de dépôts à scanner. Il utilise git2 (les bindings Rust de libgit2) pour les opérations Git, combiné à des appels shell ponctuels quand c’est nécessaire.

Le résultat est un binaire unique, sans dépendance runtime, qui tourne sur Linux et macOS.

Installation

Sodium nécessite Rust et les outils de compilation C (pour libgit2). L’installation se fait en quelques commandes :

git clone https://github.com/d6soft/sodium.git
cd sodium
cargo build --release

Le binaire compilé se trouve dans target/release/sodium. Au premier lancement, Sodium crée son fichier de configuration dans ~/.config/sodium/sodium.toml où vous pouvez ajuster le répertoire racine, le serveur remote et les miroirs par projet.

Un outil né d’un besoin réel

Sodium est né de notre propre workflow chez D6Soft. Avec une dizaine de projets actifs (le site d6soft.fr, l’API Joris, Tantale, Shannon et d’autres), nous avions besoin d’un outil qui s’intègre dans notre façon de travailler : rapide, en terminal, sans fioritures.

L’outil a commencé comme un script Bash, puis a été entièrement réécrit en Rust pour gagner en fiabilité et en fonctionnalités. Aujourd’hui, c’est notre outil quotidien de gestion Git.

Et maintenant ?

Sodium est disponible sur GitHub. Le code est ouvert, les retours sont les bienvenus.

Les prochaines évolutions prévues incluent le support multi-utilisateurs et la distribution de binaires précompilés pour simplifier l’installation.


Vous développez des outils internes ou des applications métier ? Contactez-nous pour discuter de vos besoins.

Ce site utilise des cookies strictement nécessaires à son fonctionnement. Aucun cookie tiers n'est utilisé.