{"id":28710054,"url":"https://github.com/gulbanana/gg","last_synced_at":"2026-03-01T14:05:11.305Z","repository":{"id":227568666,"uuid":"754492064","full_name":"gulbanana/gg","owner":"gulbanana","description":"GG - Gui for JJ","archived":false,"fork":false,"pushed_at":"2026-02-22T12:27:48.000Z","size":4841,"stargazers_count":751,"open_issues_count":3,"forks_count":29,"subscribers_count":12,"default_branch":"master","last_synced_at":"2026-02-22T18:09:04.849Z","etag":null,"topics":["gui","jj","jujutsu","vcs"],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":false,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/gulbanana.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":"AGENTS.md","dco":null,"cla":null}},"created_at":"2024-02-08T06:58:08.000Z","updated_at":"2026-02-22T12:27:51.000Z","dependencies_parsed_at":"2024-05-01T16:42:02.635Z","dependency_job_id":"9d049a63-5415-4552-b8c3-656fab366d41","html_url":"https://github.com/gulbanana/gg","commit_stats":null,"previous_names":["gulbanana/gg"],"tags_count":28,"template":false,"template_full_name":null,"purl":"pkg:github/gulbanana/gg","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gulbanana%2Fgg","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gulbanana%2Fgg/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gulbanana%2Fgg/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gulbanana%2Fgg/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/gulbanana","download_url":"https://codeload.github.com/gulbanana/gg/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gulbanana%2Fgg/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29970546,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-01T13:32:00.443Z","status":"ssl_error","status_checked_at":"2026-03-01T13:32:00.084Z","response_time":124,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["gui","jj","jujutsu","vcs"],"created_at":"2025-06-14T21:01:01.668Z","updated_at":"2026-03-01T14:05:11.295Z","avatar_url":"https://github.com/gulbanana.png","language":"Rust","funding_links":[],"categories":["Tools","Rust","gui"],"sub_categories":[],"readme":"# ![icon](res/icons/24x24.png) GG - Gui for JJ\n\n![screenshot](res/screenshot.png)\n\nGG is a GUI for the version control system [Jujutsu](https://github.com/jj-vcs/jj). 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?\n\n## Installation\nGG is a desktop application with a keyboard \u0026 mouse interface, written in [Tauri](https://tauri.app/). Binaries are available for several platforms on the [releases page](https://github.com/gulbanana/gg/releases). Use the `.dmg` or `.app.tar.gz` on MacOS, and the `.msi` or `.exe` on Windows. \n\nYou 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).\n\n### Setup \nPut `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-\u003eOpen menu item. Tips:\n- `gg` or `gg gui` will launch a native application, `gg web` will open a web browser.\n- On MacOS, try adding `/Applications/gg.app/Contents/MacOS/` to your PATH environment variable. On Windows, add `C:\\Program Files\\gg\\`.\n- When using the app build, `gg \u0026` on MacOS/Linux or `start gg` on Windows will run in the background without blocking your shell.\n- `gg --help` will display some possible command-line arguments.\n\n### Configuration\nGG 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](src/config/gg.toml).\n\n## Features\nGG doesn't require [JJ](https://jj-vcs.github.io/jj/latest/install-and-setup/) to run, but you'll need it for tasks GG doesn't cover. What it *can* do:\n- Use the left pane to query and browse the log. Click to select revisions, shift-click for multiple selection, double-click to edit (if mutable) or create a new child (if immutable).\n- Use the right pane to inspect and edit revisions - set descriptions, issue commands, view their parents and changes.\n- Drag revisions around to rebase them; move them into or out of a revision's parents to add merges and move entire subtrees. Or just abandon them entirely.\n- Drag files around to squash them into new revisions or throw away changes (restoring from parents).\n- Drag bookmarks around to set or delete them. \n- Right click on any of the above for more actions.\n- Push and fetch git changes using the bottom bar.\n- Undo anything with ⟲ in the bottom right corner.\n\nMore detail is available in [the changelog](CHANGELOG.md).\n\n### Future Features\nThere's no roadmap as such, but items on [the to-do list](doc/TODO.md) may or may not be implemented in future. Just about everything is subject to change for now, including the name.\n\n### Known Issues\nGG 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. \n\nIf your repo is \"too large\" some features will be disabled for performance. See [the default config](src/config/gg.toml) for details.\n\n## Development  \nRecommended IDE: [VS Code](https://code.visualstudio.com/) + [rust-analyzer](https://marketplace.visualstudio.com/items?itemName=rust-lang.rust-analyzer) + [Svelte](https://marketplace.visualstudio.com/items?itemName=svelte.svelte-vscode) + [Tauri](https://marketplace.visualstudio.com/items?itemName=tauri-apps.tauri-vscode).\n\nInitial setup:\n1. Run the first frontend build: `npm install \u0026\u0026 npm run build`. Future builds will be done automatically by `cargo tauri` or `cargo publish`.\n2. (Optional) Install the Tauri CLI: `cargo install tauri-cli --version \"^2.0.0\" --locked`. This allows you to use `cargo tauri` instead of `npm run tauri`.\n3. (Linux) Install system dependencies (on Debian-likes, `apt install libpango1.0-dev libatk1.0-dev libgdk-pixbuf2.0-dev libgtk-3-dev libjavascriptcoregtk-4.1-dev libwebkit2gtk-4.1-dev`).\n\nSome useful commands:\n* `cargo check`, `npm run check` - execute type checkers.\n* `cargo test`, `npm run test` - execute unit tests.\n* `cargo gen` - update the IPC message types in app/messages from src/messages.rs.\n* `cargo tauri dev` - launch a debug build with automatic reloading.\n* `cargo tauri dev -- -- --debug` - run locally with --debug. Yes, both `--` are necessary.\n* `cargo tauri build` - create a standard release build. Require codesigning setup.\n* `cargo tauri build --target universal-apple-darwin` - create a fat binary for MacOS.\n\n[DESIGN.md](doc/DESIGN.md) has some basic information about how GG works and why.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgulbanana%2Fgg","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgulbanana%2Fgg","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgulbanana%2Fgg/lists"}