jj_tui, una interfaz de terminal para el sistema de control de versiones Jujutsu

Fuentes: jj_tui: a terminal UI for the Jujutsu version control system

jj_tui es una interfaz de usuario en terminal (TUI) para Jujutsu, el sistema de control de versiones que opera como una capa alternativa sobre Git. La herramienta está diseñada para abrirse con rapidez y permitir navegar por el historial de commits y archivos de forma ágil, sin ventanas emergentes superfluas, gracias a combinaciones de teclas pensadas para fijarse en la memoria muscular.

Su rasgo más diferencial es que reimplementa por completo el renderizador de Jujutsu para mostrar vistas previas del grafo de cambios en tiempo real mientras el usuario compone un rebase, mediante el comando rebasepreview. Entre las operaciones habituales que soporta se encuentran commits, rebase, push y pull en Git, gestión de bookmarks (añadir, mover y borrar), squash y split de commits, además de selección múltiple con la barra espaciadora para copiar, rebasear o crear commits sobre varios commits a la vez.

En la vista de archivos, jj_tui permite seleccionar ficheros con la barra espaciadora para commitearlos por separado o moverlos a otro commit, así como enviarlos al commit siguiente o anterior. También incorpora filtrado por revsets, la sintaxis de selección de revisiones de Jujutsu, lo que reduce el ruido al examinar repositorios grandes.

La instalación se realiza descargando el binario precompilado estático para Linux, un prebuild para macOS o mediante nix shell github:faldor20/jj_tui en NixOS. Requiere la CLI de Jujutsu en versión 0.30.0 o superior y, por ahora, solo funciona en entornos Unix: en Windows es necesario usar WSL.

El comportamiento se puede ajustar con un fichero config.yaml situado en $XDG_CONFIG_HOME/jj_tui/ (Linux) o ~/Library/preferences/jj_tui/ (macOS), que permite reasignar teclas, definir submenús de comandos y configurar parámetros como el umbral de ancho para cambiar a vista de panel único (110 columnas) o el número máximo de commits renderizados (100 por defecto) para evitar ralentizaciones. Los registros de actividad se guardan en $XDG_STATE_HOME/jj_tui/ o ~/Library/logs/jj_tui/. El proyecto se compila con Nix (nix build) o directamente con el gestor de paquetes de Dune.