| Crates.io | gg-cli |
| lib.rs | gg-cli |
| version | 0.37.2 |
| created_at | 2025-12-14 05:18:06.875719+00 |
| updated_at | 2026-01-18 17:35:21.957678+00 |
| description | GG - Gui for JJ |
| homepage | https://github.com/gulbanana/gg |
| repository | https://github.com/gulbanana/gg |
| max_upload_size | |
| id | 1983819 |
| size | 2,927,999 |

GG is a GUI for the version control system Jujutsu. It takes advantage of Jujutsu's composable primitives to present an interactive view of your repository. Just imagine: what if you were always in the middle of an interactive rebase, but this was actually good?
GG is a desktop application with a keyboard & mouse interface, written in Tauri. Binaries are available for several platforms on the releases page. Use the .dmg or .app.tar.gz on MacOS, and the .msi or .exe on Windows.
You can also build from source using cargo install --locked gg-cli. This non-app build doesn't support as many OS integration features, but it's easier to package and detaches from your shell by default (use --foreground to prevent this).
Put gg on your path and run it from a Jujutsu workspace, pass the workspace directory as an argument or launch it separately and use the Repository->Open menu item. Tips:
gg or gg gui will launch a native application, gg web will open a web browser./Applications/gg.app/Contents/MacOS/ to your PATH environment variable. On Windows, add C:\Program Files\gg\.gg & on MacOS/Linux or start gg on Windows will run in the background without blocking your shell.gg --help will display some possible command-line arguments.GG uses jj config; revset-aliases.immutable_heads() is particularly important, as it determines how much history you can edit. GG has some additional settings of its own, with defaults and documentation here.
GG doesn't require JJ to run, but you'll need it for tasks GG doesn't cover. What it can do:
More detail is available in the changelog.
There's no roadmap as such, but items on the to-do list may or may not be implemented in future. Just about everything is subject to change for now, including the name.
GG is lightly maintained and will have bugs. In theory it can't corrupt a repository thanks to the operation log, but it never hurts to make backups.
If your repo is "too large" some features will be disabled for performance. See the default config for details.
Recommended IDE: VS Code + rust-analyzer + Svelte + Tauri.
Initial setup:
npm install && npm run build. Future builds will be done automatically by cargo tauri or cargo publish.cargo install tauri-cli --version "^2.0.0" --locked. This allows you to use cargo tauri instead of npm run tauri.apt install libpango1.0-dev libatk1.0-dev libgdk-pixbuf2.0-dev libgtk-3-dev libjavascriptcoregtk-4.1-dev libwebkit2gtk-4.1-dev).Some useful commands:
cargo test - execute unit tests.cargo gen - update the IPC message types in app/messages from src/messages.rs.cargo tauri dev - launch a debug build with automatic reloading.cargo tauri dev -- -- --debug - run locally with --debug. Yes, both -- are necessary.cargo tauri build - create a standard release build. Require codesigning setup.cargo tauri build --target universal-apple-darwin - create a fat binary for MacOS.DESIGN.md has some basic information about how GG works and why.