Qu'est-ce que jjui ?
jjui est une interface utilisateur en terminal pour Jujutsu, le système de gestion de versions compatible Git que l'on pilote avec la commande jj. Lancez-le dans un dépôt jj : il affiche le graphe des révisions et vous laisse travailler directement dessus. Vous changez le revset avec autocomplétion pour choisir ce qui est affiché, faites un rebase d'une révision ou d'une branche entière, un squash, un split ou un abandon de révisions, déplacez des bookmarks, ouvrez une révision pour voir ses fichiers et ses diffs et restaurer les fichiers un par un, prévisualisez la sortie de jj show et jj diff à côté du graphe, faites push et fetch depuis un menu Git, et parcourez ou restaurez le journal des opérations. Tout se fait au clavier ou à la souris. jjui est écrit en Go par Ibrahim Dursun et distribué sous licence MIT.
apt upgrade ordinaire suffit, et il met à jour en même temps jjui et le jj dont il dépend.
⚡ Fonctionnalités clés de jjui
🌳 Le graphe des révisions, en direct
jjui s'ouvre sur le même graphe que celui qu'affiche jj log, mais vous pouvez vous y déplacer, sélectionner des révisions et agir dessus, et le graphe se redessine après chaque modification.
🔎 Des revsets avec autocomplétion
Modifiez le revset en haut de l'écran pour choisir les révisions affichées ; fonctions et alias se complètent pendant la saisie, inutile donc de retenir le langage des revsets.
✂️ Rebase, squash, split, abandon
Faites un rebase d'une seule révision ou d'une branche entière sur une autre, fusionnez une révision dans son parent (squash), coupez-la en deux (split), abandonnez-la ou déplacez un bookmark, le tout depuis le graphe, avec le résultat visible aussitôt.
📄 Fichiers, diffs et aperçus
Ouvrez une révision pour lister les fichiers qu'elle modifie, lire leurs diffs et restaurer des fichiers de façon interactive, ou gardez un panneau d'aperçu avec la sortie de jj show ou jj diff pour l'élément sélectionné.
🔄 Menu Git et journal des opérations
Faites push et fetch depuis un menu Git sans quitter le graphe, et parcourez le journal des opérations pour voir ce qui a changé et ramener le dépôt à un état antérieur.
🖱️ Clavier, souris, Lua et thèmes
Chaque action a un raccourci clavier (appuyez sur ? pour tous les voir) et la souris fonctionne aussi. Les scripts Lua ajoutent vos propres actions, et les thèmes changent les couleurs.
apt upgrade vous maintient sur la dernière version.
📦 Installation depuis deb.griffo.io
Étape 1 : ajouter le dépôt
sudo install -d -m 0755 /etc/apt/keyrings
curl -fsSL https://deb.griffo.io/EA0F721D231FDD3A0A17B9AC7808B4DD62C41256.asc | sudo gpg --dearmor --yes -o /etc/apt/keyrings/deb.griffo.io.gpg
echo "deb [signed-by=/etc/apt/keyrings/deb.griffo.io.gpg] https://deb.griffo.io/apt $(. /etc/os-release; echo ${DEBIAN_CODENAME:-${UBUNTU_CODENAME:-$VERSION_CODENAME}}) main" | sudo tee /etc/apt/sources.list.d/deb.griffo.io.list > /dev/null
sudo apt updateinstall -d -m 0755 /etc/apt/keyrings
curl -fsSL https://deb.griffo.io/EA0F721D231FDD3A0A17B9AC7808B4DD62C41256.asc | gpg --dearmor --yes -o /etc/apt/keyrings/deb.griffo.io.gpg
echo "deb [signed-by=/etc/apt/keyrings/deb.griffo.io.gpg] https://deb.griffo.io/apt $(. /etc/os-release; echo ${DEBIAN_CODENAME:-${UBUNTU_CODENAME:-$VERSION_CODENAME}}) main" | tee /etc/apt/sources.list.d/deb.griffo.io.list > /dev/null
apt update🆓 Il existe un miroir gratuit pour toujours. deb-free.griffo.io distribue des paquets gratuitement pour toujours — sans compte, sans abonnement, au plus 2 mois derrière l'upstream, correctifs de sécurité immédiats. Il contient aujourd'hui cliamp, Forgejo Runner, Ghostty, lazydocker, Oh My Posh, Uncloud et Zed ; jjui n'en fait pas partie, le dépôt ci-dessus reste donc le seul moyen de l'installer — demandez-le et il pourra y être ajouté.
Étape 2 : installer jjui
# Installer la dernière version de jjui (installe aussi jujutsu, qui fournit jj)
sudo apt install jjui
# Vérifier l'installation
dpkg -s jjui | grep Version# Installer la dernière version de jjui (installe aussi jujutsu, qui fournit jj)
apt install jjui
# Vérifier l'installation
dpkg -s jjui | grep VersionÉtape 3 : premier lancement
# jjui pilote jj, commencez donc dans un dépôt jj
cd ~/src/myproject
# Un checkout Git existant ? Colocalisez d'abord jj avec lui
jj git init --colocate
# Ouvrir le graphe des révisions
jjui
# Dans jjui, ? affiche les raccourcis clavier et q quitte🎯 Exemples d'utilisation de base
Lancer et configurer jjui :
# Ouvrir le graphe des révisions du dépôt où vous êtes
jjui
# Modifier la configuration dans $EDITOR (raccourcis, thème, actions Lua)
jjui -config
# jjui exécute le jj de votre PATH ; vérifier sa version
jj --versionDans jjui :
# ? affiche tous les raccourcis de la vue courante
# Changez le revset en haut, avec autocomplétion, pour choisir ce qui est affiché
# Sélectionnez une révision, puis rebase, squash, split ou abandon, ou déplacez un bookmark
# Ouvrez une révision pour lister ses fichiers, lire leurs diffs et les restaurer un par un
# Prévisualisez jj show / jj diff à côté du graphe, ou ouvrez le journal des opérations pour restaurer un état
# Push et fetch depuis le menu Git, sans quitter le grapheRester à jour :
# jjui et jj se mettent à jour avec le reste du système
sudo apt update && sudo apt upgrade
# Quelles versions sont installées, et quelles sont les plus récentes disponibles
apt policy jjui jujutsu
# Le désinstaller (jj reste installé)
sudo apt remove jjui# jjui et jj se mettent à jour avec le reste du système
apt update && apt upgrade
# Quelles versions sont installées, et quelles sont les plus récentes disponibles
apt policy jjui jujutsu
# Le désinstaller (jj reste installé)
apt remove jjui🔧 Intégrations
jjui est une interface pour jj, il s'intègre donc partout où jj le fait déjà :
- Jujutsu : chaque action exécute la commande
jj, jjui voit donc le même dépôt, la même configuration et les mêmes alias de revset que jj lui-même ; le paquet dépend dejujutsu (>= 0.37), et deb.griffo.io package Jujutsu pour chaque version, apt l'installe donc avec jjui - Remotes Git : dans un dépôt colocalisé, le push et le fetch du menu Git vont vers vos remotes Git habituels, avec les identifiants que vous utilisez déjà
- Votre éditeur :
jjui -configouvre le fichier de configuration dans$EDITOR, là où se trouvent les raccourcis clavier, le thème et les actions personnalisées - Scripts Lua : écrivez vos propres actions en Lua et associez-les à des touches, pour les commandes jj que vous lancez souvent
- Thèmes : les couleurs du graphe, de la sélection et des panneaux viennent d'un thème que vous pouvez changer ou écrire vous-même
- Souris : cliquez pour sélectionner des révisions et faites défiler le graphe et l'aperçu, dans tout terminal qui gère la souris
- Documentation : upstream ne fournit pas de page de manuel, le guide complet se trouve donc sur idursun.github.io/jjui, et
?dans jjui liste les raccourcis clavier
🚀 Pourquoi choisir deb.griffo.io ?
- Ubuntu officiel : ne package pas jjui,
apt install jjuiéchoue sur un système de base - Téléchargements upstream : un zip contenant un seul binaire sur la page des releases GitHub, copié à la main dans votre PATH, à récupérer de nouveau à chaque version, et jj à installer séparément
- Compiler depuis les sources : une toolchain Go et un
go installà chaque version, et jj encore à installer autrement - deb.griffo.io: dernière version avec mises à jour automatiques
- ✅ La seule source apt : jjui n'est ni dans l'archive Debian ni dans celle d'Ubuntu ; ce dépôt package la version officielle d'upstream
- ✅ jj est fourni avec : le paquet dépend de
jujutsu (>= 0.37), le minimum d'upstream, et deb.griffo.io package Jujutsu pour chaque version,sudo apt install jjuiinstalle donc un jj récent dans la même étape - ✅ Un paquetage honnête : le binaire upstream dans
/usr/bin/jjui: upstream ne fournit ni page de manuel ni complétions shell, le paquet n'en invente donc aucune - ✅ Mises à jour automatiques : les paquets sont mis à jour quelques heures après chaque version upstream
- ✅ Deux architectures : amd64 et arm64 sur chaque version, le même jjui tourne donc sur les portables, les serveurs et les cartes ARM comme le Raspberry Pi
- ✅ Multi-distribution : fonctionne sur Ubuntu 22.04, 24.04, 25.10 et 26.04
- ✅ Maintenance simple : des mises à jour avec les commandes apt habituelles
📦 Dépôt de construction du paquet
Les paquets Ubuntu sont construits et maintenus automatiquement dans ce dépôt GitHub :
- 🪢 jjui-debian - Constructions des dernières versions
🔗 Paquets associés
Également disponibles sur deb.griffo.io :
- Jujutsu - Le système de gestion de versions jj que pilote jjui, installé avec lui
- lazygit - Une interface terminal pour Git, pour les dépôts que vous pilotez encore avec git
- GitUI - Une interface terminal pour Git, rapide et entièrement au clavier
- difftastic - Un outil de diff structurel que jj peut utiliser pour ses diffs
- serie - Un graphe de commits Git riche dans le terminal