Installation
Installation
This guide will help you install jjj on your system.
Prerequisites
Before installing jjj, you need:
- Jujutsu (jj) - version 0.12.0 or later
- Rust toolchain - for building from source
Installing Jujutsu
If you don’t have Jujutsu installed yet:
macOS:
brew install jjLinux:
# Arch Linuxpacman -S jujutsu
# Or build from sourcecargo install --git https://github.com/martinvonz/jj jj-cliWindows:
# Using wingetwinget install jujutsu
# Or using cargocargo install --git https://github.com/martinvonz/jj jj-cliVerify jj is installed:
jj --versionInstalling jjj
One-Line Install
Install directly from GitHub with Cargo (no cloning required):
cargo install --git https://github.com/doug/jjjThis builds from the latest main branch and installs the jjj binary to ~/.cargo/bin/.
From a Local Clone
If you want to track development or contribute:
git clone https://github.com/doug/jjj.gitcd jjjcargo install --path .Verify Installation
Check that jjj is installed correctly:
jjj --versionYou should see output like:
jjj 0.1.0Shell Completion (Optional)
jjj uses clap for CLI argument parsing, which supports shell completion.
Bash
# Generate completion scriptjjj completion bash > ~/.local/share/bash-completion/completions/jjj
# Or add to your ~/.bashrc:eval "$(jjj completion bash)"Zsh
# Add to your ~/.zshrc:eval "$(jjj completion zsh)"Fish
# Generate completion scriptjjj completion fish > ~/.config/fish/completions/jjj.fishPowerShell
# Add to your PowerShell profilejjj completion powershell | Out-String | Invoke-Expression
# Or save to profilejjj completion powershell >> $PROFILEElvish
# Add to your ~/.elvish/rc.elveval (jjj completion elvish | slurp)Editor Integration
VSCode
A VSCode extension for jjj provides IDE integration with:
- Sidebar views for problems, solutions, critiques, and milestones
- Command palette integration
- JSON-based communication with jjj CLI
- Planned: Interactive Kanban board, code review, and more
See the VSCode Extension Guide for installation and usage instructions.
Other Editors
jjj provides JSON output for all commands via the --json flag, making it easy to integrate with any editor:
# Get problems as JSONjjj problem list --json
# Get solutions as JSONjjj solution list --json
# Get status as JSONjjj status --jsonUpdating jjj
To update jjj to the latest version:
cd /path/to/jjj/repogit pullcargo install --path . --forceUninstalling
To remove jjj:
cargo uninstall jjjTroubleshooting
jjj command not found
If jjj is not found after installation:
-
Ensure
~/.cargo/binis in your PATH:Terminal window echo $PATH | grep cargo -
Add to your shell profile if needed:
Terminal window # ~/.bashrc or ~/.zshrcexport PATH="$HOME/.cargo/bin:$PATH" -
Reload your shell:
Terminal window source ~/.bashrc # or source ~/.zshrc
Build Errors
If you encounter build errors:
-
Update Rust:
Terminal window rustup update -
Clear cargo cache:
Terminal window cargo cleancargo build --release -
Check Rust version (requires 1.70+):
Terminal window rustc --version
jj not found
If jjj complains that jj is not found:
-
Verify jj is installed:
Terminal window which jjjj --version -
Ensure jj is in your PATH
-
Try running with full path:
Terminal window JJ_PATH=/path/to/jj jjj init
Next Steps
Now that jjj is installed, proceed to:
- Quick Start - Get started with your first jjj project
Getting Help
If you encounter issues:
- Check the troubleshooting section above
- Search existing issues
- Ask in GitHub Discussions
- Open a new issue