| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
| Name | Name | Last commit date | ||
|---|---|---|---|---|
JayJay is a native macOS GUI for Jujutsu and a set of Rust libraries for jj-aware diff and review tooling.
This repository has two primary products:
JayJay is a fast, keyboard-driven GUI for people who use jj every day.
See the full feature guide for screenshots and workflows.
Requirements: macOS 26 or later.
Homebrew:
brew install --cask hewigovens/tap/jayjayDirect download: grab the latest .zip from GitHub Releases, unzip, and move JayJay to Applications.
JayJay checks for updates automatically through Sparkle. You can also run JayJay -> Check for Updates.
Choose Help -> Send Feedback in JayJay to email us.
just run # Build and launch the SwiftUI macOS app
just install-cli # Install the jayjay launcher to ~/.local/bin
jayjay . # Open the current repoThe app is not the only product here. The Rust workspace is split so reusable lower layers do not have to inherit jj-lib.
| Crate | Role | jj-lib? |
|---|---|---|
| jj-diff | Standalone diff engine: histogram line diff, word diff, syntax highlighting, context collapse, side-by-side rows | No |
| jayjay-primitives | Shared jj-lib-free domain and review identity types | No |
| jayjay-review | Local review marks, notes, and reconciliation | No |
| jayjay-network | Shared blocking HTTP helpers | No |
| jayjay-core | App-facing repo operations, jj data access, mutations, and format projections | Yes |
| jayjay-uniffi | Swift bindings for the SwiftUI app | Through jayjay-core |
| jayjay-cli | Thin app launcher; command-line subcommands are served by the bundled macOS app executable | No |
Rule of thumb: jj-lib belongs in jayjay-core. Diff rendering, review state, and shared domain types stay below that boundary so they can be reused without embedding jj's repo model.
jj-diff is the most reusable standalone library in the repo. It has zero dependency on jj-lib.
[dependencies]
jj-diff = { git = "https://github.com/hewigovens/jayjay" }use jj_diff::{collapse_context_with_mapping, compute_file_diff};
let diff = compute_file_diff("main.rs", &old_content, &new_content, false);
let collapsed = collapse_context_with_mapping(&diff);
for line in &collapsed.diff.lines {
// render line.style and line.spans in your UI
}Features:
See crates/jj-diff/README.md for the full API.
There is also an experimental GPUI shell whose current parity target is Linux. Its macOS build is for development; the released macOS product remains the SwiftUI app. See Roadmap.md if you want to follow or try that track.
just gpui # Build and launch the alpha GPUI shell
just gpui-appimage # Build the Linux AppImage| Key | Action |
|---|---|
| Cmd+Shift+P | Command palette |
| Cmd+F | Find in diff |
| Cmd+R | Refresh |
| Cmd+O | Open repository |
| Cmd+Plus / Cmd+Minus / Cmd+0 | Zoom in / out / reset |
| Cmd+Shift+B | Bookmark Manager |
| Opt+Cmd+W | Toggle workspace sidebar |
| Cmd+Shift+U | Undo through operation log |
| Space | Toggle file reviewed |
| Shift+Click | Compare two revisions |
This repository is a fork of hewigovens/jayjay. Upstream remains the source of the product name and bundle id.
| Back | FazBrowse Home | New Git URL |