0.1.0
unreleased
Repository and history
- Opens the repository containing your working directory, from anywhere inside it — worktree, subdirectory, or bare clone.
- Sidebar of linked worktrees, local branches with ahead/behind counts, and remotes with their tracking branches. Sections reorder by dragging and stay where you put them.
- Commit graph painted from an incremental lane algorithm: merge curves, a stable colour per line of development, and a halo on the checked-out commit.
- History streams in on a worker thread and renders through a virtualized list, so repositories of any size open immediately.
- Branch, remote-branch, tag and
HEADchips on the rows they point at, ordered the way Git orders them. - Click a branch to scope history to it; click again to widen back out.
- Metadata refreshes by itself when refs or worktrees change outside the app, without losing your selection, your scope, or your scroll position.
- Cmd+F filters loaded history; arrows, Page Up/Down, Home and End drive the list.
Commit details and diffs
- Two-column details pane: full commit message on the left, changed files on the right, with per-file line counts.
- Working-tree and commit file lists render only visible rows, fixing a crash when opening repositories with tens of thousands of changed files.
- Merge commits compare against either parent, switched from the details header.
- Click a changed file to open its diff in a full-window overlay, unified or side by side — the layout you chose is remembered.
- The overlay's scrollbar is draggable, so long diffs scrub instead of scroll.
- Image diffs render as pictures: a juxtapose slider you drag between before and after, or both side by side.
- SVG files open with rendered before-and-after previews; switch to Source to inspect the markup diff. Local SVG images also render in Markdown previews.
- No diff is too large to open; content is virtualized rather than truncated.
Operations
- Fetch, run through your own
gitso SSH keys, credential helpers and hooks work exactly as they do in the terminal — with live progress and a cancel button. - Create a branch from any commit, optionally checking it out.
- Stage and unstage large selections without hitting command-line size limits. Filenames with spaces, wildcards, or leading dashes are handled literally, and files outside the selection stay untouched.
Context menus
- Right-click commits to copy the full SHA or create a branch at that commit. Branches, tags, files, worktrees, remotes and GitHub links offer the corresponding name, path and link actions.
- Consistent editing menus in every text field, plus copying from diff lines, Markdown blocks and Actions logs. Large log copies are prepared in the background.
- Control-click works on macOS. Shift+F10 opens the selected commit or focused text field's menu; arrows navigate and Escape dismisses.
- Stage or unstage files and sections, and fetch from a specific remote, through the same operation controls as the existing buttons.
Under the hood
- Native GPU-rendered interface built on GPUI; repositories are read with gitoxide rather than by scraping command output.
- A deterministic demo fixture (
sourcefour --demo) that renders through the real window, backing both the visual-regression suite and every screenshot on this site. - Panel sizes, section order, collapse state and diff layout persist between launches in one tolerant JSON file.
- The main window remembers its size and display mode, then opens centered on the primary display so changing monitor setups cannot strand it off-screen.
just reinstalluninstalls and reinstalls the packaged app in one command, keeping existing settings.