VisualJJ (Beta) — Jujutsu for Visual Studio Code
VisualJJ is a visual interface for Jujutsu and Git inside VS Code. It shows your repository as a change tree, makes history edits and rebases safe, and integrates with GitHub so you can create Pull Requests without leaving the editor.

Why VisualJJ?
Version control has a simple core: a shared timeline (main) and changes being shaped to extend it. But Git's mental model — branches, HEAD, staging, rebase anxiety — buries that simplicity.
VisualJJ shows you what actually matters:
- Where your work sits in relation to
main — a change tree, always visible.
- Edit any change — double-click to jump in, shape it, move on. Your work in progress stays flexible.
- Share and ship — create a request (PR), get feedback, ship to main.
Your repo stays Git. VisualJJ just makes version control feel like it should.
What VisualJJ does
- Shows your change tree in a dedicated view.
- Start new work from any point — click New Change Here.
- Edit any change — double-click to jump into any in-progress change, including earlier ones in your stack or a teammate's work.
- Shape your work — split, squash, reorder (drag-and-drop), revert, duplicate.
- Share a change:
- Create Request (PR) on GitHub.
- Ship Now to push directly to main (useful for solo projects or non-GitHub remotes).
Quick start (60 seconds)
- Open a folder with a Git repository.
- Click the VisualJJ icon in the Side Bar to see your change tree.
- Make a small edit to a file. VisualJJ creates a change and gives it an automatic title. Right-click → Create Request (PR).
You’ve just done the basic loop:
- Shape a change (edit it, refine the description if you want),
- Share it (Create Request),
- Ship it once approved.
Note: VisualJJ will ask you to sign in to GitHub to create Pull Requests.
If the repository doesn't use GitHub as a remote, use Ship Now to ship your change directly.
Common workflows
Share your work for review:
Select the top change of your stack and run Create Request (PR). VisualJJ includes the full stack.
Keep up to date with main:
Click Fetch. When main is ahead, right-click and select Rebase on Main. Then Update Request (PR) to sync GitHub.
Break up a large change:
Use Split, or drag files between changes to move them where they belong.
Squash small changes:
Start a new change to mark the next step of work, then use Squash to combine them later.
Edit a teammate's change:
Double-click any change in the tree to start editing it — VisualJJ handles the rest.
Requirements & compatibility
- Git: your local repository remains in Git format. Your usual Git tools continue to work.
- Jujutsu: VisualJJ uses Jujutsu under the hood. No separate installation is required.
- Environments: Local, WSL, SSH, and Dev Containers are supported.
Telemetry & privacy
- VisualJJ sends minimal, anonymous usage data (e.g. feature usage, errors) to help improve the extension.
- It respects VS Code's telemetry setting. If telemetry is disabled in VS Code, VisualJJ does not send usage events.
- No personal code or repository contents are transmitted.
Questions about data? Contact support@visualjj.com.
Licensing & pricing
VisualJJ is distributed under a proprietary license. See the LICENSE file for details.
- Free: for solo developers — personal, work, or open-source.
- Pro: for teams that use VisualJJ as part of their daily workflow.
See pricing and details at visualjj.com/pricing.
Documentation
For detailed guides and workflows, see the full documentation.
Feedback & support
- Email: support@visualjj.com
- Issues and suggestions are welcome – please include your OS, VS Code version, and a short repro if possible.
| |