¿Qué es jjui?
jjui es una interfaz de usuario de terminal para Jujutsu, el sistema de control de versiones compatible con Git que se maneja con el comando jj. Ejecútalo dentro de un repositorio jj y muestra el grafo de revisiones, y te deja trabajar directamente sobre él: cambiar el revset con autocompletado para elegir qué se muestra, hacer rebase de una revisión o de una rama entera, hacer squash, split y abandon de revisiones, mover bookmarks, abrir una revisión para ver sus ficheros y diffs y restaurar ficheros uno a uno, previsualizar la salida de jj show y jj diff junto al grafo, hacer push y fetch desde un menú Git, y recorrer o restaurar el registro de operaciones. Todo funciona con el teclado o con el ratón. jjui está escrito en Go por Ibrahim Dursun y tiene licencia MIT.
apt upgrade normal, que actualiza a la vez jjui y el jj del que depende.
⚡ Funciones clave de jjui
🌳 El grafo de revisiones, en vivo
jjui arranca con el mismo grafo que imprime jj log, pero puedes recorrerlo, seleccionar revisiones y actuar sobre ellas, y el grafo se redibuja tras cada cambio.
🔎 Revsets con autocompletado
Edita el revset de la parte superior de la pantalla para elegir qué revisiones se muestran; las funciones y los alias se completan mientras escribes, así que no tienes que recordar el lenguaje de revsets.
✂️ Rebase, squash, split, abandon
Haz rebase de una sola revisión o de una rama entera sobre otra, fusiona una revisión con su padre (squash), pártela en dos (split), descártala (abandon) o mueve un bookmark, todo desde el grafo, y ve el resultado al instante.
📄 Ficheros, diffs y vistas previas
Abre una revisión para listar los ficheros que cambia, leer sus diffs y restaurar ficheros de forma interactiva, o mantén un panel de vista previa con la salida de jj show o jj diff de lo que tengas seleccionado.
🔄 Menú Git y registro de operaciones
Haz push y fetch desde un menú Git sin salir del grafo, y recorre el registro de operaciones para ver qué cambió y devolver el repositorio a un estado anterior.
🖱️ Teclado, ratón, Lua y temas
Cada acción tiene un atajo de teclado (pulsa ? para verlos todos) y el ratón también funciona. Los scripts en Lua añaden tus propias acciones y los temas cambian los colores.
apt upgrade te mantiene en la última versión.
📦 Instalación desde deb.griffo.io
Paso 1: Añadir el repositorio
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🆓 Existe un espejo gratis para siempre. deb-free.griffo.io sirve paquetes gratis para siempre: sin cuenta, sin suscripción, como máximo 2 meses por detrás del upstream, correcciones de seguridad inmediatas. Ahora mismo incluye cliamp, Forgejo Runner, Ghostty, lazydocker, Oh My Posh, Uncloud y Zed; jjui no está entre ellas, así que hoy el repositorio de arriba es la única forma de instalarlo — pídelo y puede añadirse.
Paso 2: Instalar jjui
# Instalar la última versión de jjui (instala también jujutsu, que aporta jj)
sudo apt install jjui
# Verificar la instalación
dpkg -s jjui | grep Version# Instalar la última versión de jjui (instala también jujutsu, que aporta jj)
apt install jjui
# Verificar la instalación
dpkg -s jjui | grep VersionPaso 3: Primer arranque
# jjui maneja jj, así que empieza dentro de un repositorio jj
cd ~/src/myproject
# ¿Un checkout de Git existente? Coloca jj junto a él primero
jj git init --colocate
# Abrir el grafo de revisiones
jjui
# Pulsa ? dentro de jjui para ver los atajos de teclado, q para salir🎯 Ejemplos básicos de uso
Arrancar y configurar jjui:
# Abrir el grafo de revisiones del repositorio en el que estás
jjui
# Editar la configuración en $EDITOR (atajos de teclado, tema, acciones Lua)
jjui -config
# jjui ejecuta el jj de tu PATH; comprueba qué versión es
jj --versionDentro de jjui:
# Pulsa ? para ver todos los atajos de la vista en la que estás
# Cambia el revset de arriba, con autocompletado, para elegir qué se muestra
# Selecciona una revisión y haz rebase, squash, split o abandon, o mueve un bookmark
# Abre una revisión para listar sus ficheros, leer sus diffs y restaurarlos uno a uno
# Previsualiza jj show / jj diff junto al grafo, o abre el registro de operaciones para restaurar un estado
# Haz push y fetch desde el menú Git, sin salir del grafoMantenerlo al día:
# jjui y jj se actualizan con el resto del sistema
sudo apt update && sudo apt upgrade
# Qué versiones están instaladas y cuáles son las más recientes disponibles
apt policy jjui jujutsu
# Desinstalarlo (jj sigue instalado)
sudo apt remove jjui# jjui y jj se actualizan con el resto del sistema
apt update && apt upgrade
# Qué versiones están instaladas y cuáles son las más recientes disponibles
apt policy jjui jujutsu
# Desinstalarlo (jj sigue instalado)
apt remove jjui🔧 Integraciones
jjui es una interfaz para jj, así que encaja allí donde jj ya lo hace:
- Jujutsu: cada acción ejecuta el comando
jj, así que jjui ve el mismo repositorio, la misma configuración y los mismos alias de revset que el propio jj; el paquete depende dejujutsu (>= 0.37), y deb.griffo.io empaqueta Jujutsu para todas las versiones, así que apt lo instala junto con jjui - Remotos Git: en un repositorio colocado, el push y el fetch del menú Git van a tus remotos Git de siempre, con las credenciales que ya usas
- Tu editor:
jjui -configabre el fichero de configuración en$EDITOR, donde viven los atajos de teclado, el tema y las acciones personalizadas - Scripts en Lua: escribe tus propias acciones en Lua y asígnalas a teclas, para los comandos jj que usas a menudo
- Temas: los colores del grafo, de la selección y de los paneles vienen de un tema que puedes cambiar o escribir tú mismo
- Ratón: haz clic para seleccionar revisiones y desplázate por el grafo y la vista previa, en cualquier terminal con soporte de ratón
- Documentación: upstream no publica página man, así que la guía completa está en idursun.github.io/jjui, y
?dentro de jjui lista los atajos de teclado
🚀 ¿Por qué elegir deb.griffo.io?
- Ubuntu oficial: no empaqueta jjui,
apt install jjuifalla en un sistema recién instalado - Descargas de upstream: un zip con un único binario en la página de releases de GitHub, que copias a mano en tu PATH, que hay que volver a bajar en cada versión, y jj instalado aparte
- Compilar desde el código fuente: una toolchain de Go y un
go installen cada versión, y jj todavía por instalar de otra forma - deb.griffo.io: última versión con actualizaciones automáticas
- ✅ La única fuente apt: jjui no está ni en el archivo de Debian ni en el de Ubuntu; este repositorio empaqueta la versión oficial de upstream
- ✅ jj viene incluido: el paquete depende de
jujutsu (>= 0.37), el mínimo de upstream, y deb.griffo.io empaqueta Jujutsu para todas las versiones, así quesudo apt install jjuiinstala un jj reciente en el mismo paso - ✅ Empaquetado honesto: el binario de upstream en
/usr/bin/jjui: upstream no publica página man ni autocompletado para la shell, así que el paquete no se inventa ninguno - ✅ Actualizaciones automáticas: los paquetes se actualizan pocas horas después de cada versión upstream
- ✅ Dos arquitecturas: amd64 y arm64 en todas las versiones, así que el mismo jjui funciona en portátiles, servidores y placas ARM como la Raspberry Pi
- ✅ Multidistribución: funciona en Ubuntu 22.04, 24.04, 25.10 y 26.04
- ✅ Mantenimiento sencillo: actualizaciones con los comandos apt de siempre
📦 Repositorio de compilación del paquete
Los paquetes de Ubuntu se compilan y mantienen automáticamente en este repositorio de GitHub:
- 🪢 jjui-debian - Compilaciones de las últimas versiones
🔗 Paquetes relacionados
También disponibles en deb.griffo.io:
- Jujutsu - El sistema de control de versiones jj que maneja jjui, instalado con él
- lazygit - Una interfaz de terminal para Git, para los repositorios que sigues manejando con git
- GitUI - Una interfaz de terminal para Git rápida y solo de teclado
- difftastic - Una herramienta de diff estructural que jj puede usar para sus diffs
- serie - Un grafo de commits de Git enriquecido en la terminal