For the age of coding agents

Rewind what your agents wrote.

Retrace puts every repository, worktree and branch in one window, keeps your integration branch pinned left, and opens any commit's message and diff with a click. It never commits, merges or rewrites a thing.

macOS 13+ · Apple silicon & Intel · Free and open source (MIT) · v0.4.0

One window. Every worktree.

Twelve worktrees, four agents, one review. Projects and changes on the left, the commit graph on top, the commit you picked underneath.

Retrace showing a commit's message, PR link and side-by-side diff under the commit graph
  1. 1The trunk holds column 0. Agent branches join from the right, so main is always one straight line.
  2. 2Worktrees, folded. Active, merged and branch-only trees each live in one menu.
  3. 3PR in one click. Squash and merge commits link straight to the pull request.
  4. 4Diffs that read well. Side by side, highlighted off the main thread.
0worktrees in one view
0agents, no tab juggling
0click to the diff
0accidental commits

Review like a reviewer, not a git client.

The integration branch stays left

main owns column 0 of a compact, one-line graph. Other branches join only when you ask for them.

Worktrees, folded

Active, merged and branch-only trees sit in three menus. Remove merged ones safely: no --force, checked again first.

Diffs that read well

Side by side, no wrapping, highlighted off the main thread. One file at a time, or the whole commit in a row.

Browse any version

See the whole tree as it was at any commit. Code, images, and Markdown rendered like GitHub.

Your layout

Drag any view to dock it beside another or swap them. Close the diff and the graph takes the space.

A proper Mac app

Native menu bar, keyboard first, light and dark, English and 中文. Built with Tauri: a few megabytes, not a browser.

Two writes. That's it.

Agents are busy in those trees. Retrace reads with GIT_OPTIONAL_LOCKS=0, never takes the index lock, and lists changes with plumbing that doesn't touch the index.

zsh — retrace
  1. git commit -m "…"never
  2. git add -Anever
  3. git merge · git rebasenever
  4. git reset --hardnever
  5. git push --forcenever
  6. git stash dropnever
  7. git fetchremote-tracking branches only · can be off
  8. git worktree removemerged & clean · after you confirm · no --force

Keyboard first. Try it.

Press a key below — or on your keyboard.

 

Retrace v0.4.0

Free and open source. macOS 13 or later.

Not notarised yet: if macOS refuses the first launch, choose Open Anyway in System Settings → Privacy & Security, or run xattr -dr com.apple.quarantine /Applications/Retrace.app.