Jujutsu
Jujutsu (jj) is a Git-compatible version control system designed to be simple and powerful, featuring automatic working-copy commits, first-class conflict handling, and an operation log with undo.
At a Glance
Fully free and open source under the Apache 2.0 license. No cost to use, modify, or distribute.
Engagement
Available On
Alternatives
Listed May 2026
About Jujutsu
Jujutsu (command-line tool: jj) is an open-source version control system started by Martin von Zweigbergk as a hobby project in late 2019 and now developed as his full-time project at Google, with several other Googlers contributing. It uses Git repositories as its default storage backend, making it interoperable with GitHub, GitLab, and other Git forges today. The project is hosted under the jj-vcs GitHub organization and is licensed under Apache 2.0.
What It Is
Jujutsu is a CLI-based VCS that draws inspiration from Git, Mercurial/Sapling, and Darcs while introducing its own innovations. Its core design separates the user interface and version control algorithms from the underlying storage system, allowing multiple possible backends. The current production-ready backend stores data in Git repositories using the gitoxide Rust library, so commits created with jj look like regular Git commits and can be pushed to any Git remote.
Key Design Choices
Several design decisions distinguish Jujutsu from Git:
- Working copy as a commit: File changes are automatically snapshotted as a real commit and amended on every subsequent change, eliminating the need for
git stashor a staging area/index. - Operation log and undo: Every repository operation—commits, pulls, pushes—is recorded with a snapshot of repo state, enabling easy undo of any past operation, not just the most recent.
- Automatic rebase: Modifying any commit automatically rebases all descendants onto the updated version, transparently combining the behavior of
git rebase --update-refsandgit rerere. - First-class conflicts: Conflicts are stored as first-class objects in commits rather than as blocking textual diffs. Operations succeed even when conflicts exist, and conflict resolutions propagate automatically through descendants.
- Revset language: A Mercurial-inspired expression language for selecting sets of commits, enabling powerful history queries.
- Anonymous branches: Like Mercurial, branches are anonymous by default—no need to name every small change.
Architecture and Storage Model
The internal architecture abstracts the VCS algorithms from the storage layer. While the Git backend is the only production-ready option today, the design explicitly supports alternative backends such as Mercurial, Breezy, or cloud-based systems like Google's Piper/CitC. Bookmarks (branches) and higher-level metadata are stored outside of Git in custom storage, while commits and file content live in the Git object store. An experimental feature supports safe concurrent replication via tools like rsync or Dropbox without risking repository corruption.
Workflow and Commands
Jujutsu provides a rich set of history-rewriting primitives:
jj describe— edit the commit message of any commit, not just HEADjj diffedit— edit the diff of a commit without checking it outjj split— split one commit into twojj squash -i --from X --into Y— move part of a commit's changes to another commitjj restore— restore files from any commit into any commitjj file annotate— equivalent togit blame(added in v0.24)
Colocated workspaces allow jj and git commands to be used interchangeably in the same directory.
Update: v0.41.0
The latest release is v0.41.0, published on May 7, 2026. The repository moved to the jj-vcs GitHub organization in December 2024. Version 0.24 (November 2024) added jj file annotate. The project is pre-1.0 and the README notes there will be backward-incompatible on-disk format changes before 1.0, though transparent upgrades are provided where possible. A mandatory CLA is required for contributors; it does not transfer copyright to Google. The README explicitly states this is not a supported Google product—support is community-provided.
Community Discussions
Be the first to start a conversation about Jujutsu
Share your experience with Jujutsu, ask questions, or help others learn from your insights.
Pricing
Open Source
Fully free and open source under the Apache 2.0 license. No cost to use, modify, or distribute.
- Full CLI version control system
- Git-compatible backend
- All core features including operation log, automatic rebase, and conflict handling
- Community support via Discord and GitHub Discussions
Capabilities
Key Features
- Git-compatible storage backend using gitoxide Rust library
- Working copy automatically committed as a real commit
- Operation log recording every repository action with undo support
- Automatic rebase of descendants on commit modification
- First-class conflict objects stored in commits
- Conflict resolution propagated automatically through descendants
- Revset language for selecting commits
- Anonymous branches (no mandatory branch naming)
- jj describe: edit commit message of any commit
- jj diffedit: edit commit diff without checkout
- jj split: split a commit into two
- jj squash: move partial changes between commits
- jj file annotate: equivalent to git blame
- Colocated workspaces supporting both jj and git commands
- Experimental safe concurrent replication via rsync/Dropbox
- Configurable template language for output formatting
- Immutable revsets to prevent accidental edits
- Bundled merge and diff editor for all platforms
Integrations
Demo Video

