JJ Evolved

A terminal interface for Jujutsu that makes changes to revision history visible before you apply them.

  • TypeScript
  • Bun
  • OpenTUI
View on GitHub
JJ Evolved comparing a proposed rebase on the left with the current revision tree on the right. Two login changes move together onto main.
A rebase preview captured from the app’s renderer using an example repository. Select the image to view it full size.

See the change before making it

Rebasing a stack can be easier to understand as a graph. Select a revision, choose its destination, and compare the proposed history with the current tree. Rebase and squash previews show bookmarks and conflict markers, while menus keep the graph in view.

Stay in the terminal

Keyboard controls connect revision browsing, diffs, bookmarks, and history editing. Recovery is part of the same interface: inspect a change’s evolution, preview an undo, or restore an earlier repository operation. For detailed file editing and conflict resolution, the app opens the tools already configured in Jujutsu.

Built around Jujutsu

The app runs the installed jj executable and follows its repository rules. Reviewed actions reject stale state if the repository changes before confirmation. Tests exercise real Jujutsu operations and the OpenTUI renderer in disposable repositories. The project is under active development.