Canopy
A bird's-eye view of every branch across every local git repo on your Mac. See what still needs your attention — at a glance.
30 repos. 200 branches. One window.
Whether you're juggling client projects, shipping a side hustle, or vibe-coding experiments with AI, your Mac fills up fast with half-finished work scattered across dozens of repos. Canopy gathers it all into one window so you never lose track of what you were working on, what got shipped, and what you can safely throw away.
Three steps to clarity
Setup takes under a minute.
Pick a folder
Point Canopy at the folder where your projects live — usually Documents/GitHub, ~/code, or wherever your repos accumulate.
See everything
Canopy finds every project automatically and lists every branch inside, color-coded by what each one needs.
Click any branch
See exactly what changed, jump back into the work, or send it to GitHub as a pull request with one click.
What you'll actually use
A tour of the bits people open the app for.
Every branch, color-coded
Glance at the dots to see which branches need attention, and spot open PRs without leaving the sidebar.
Sweep away the noise
One toggle hides every merged-and-done branch so only the in-flight stuff remains.
Loose ends, surfaced
Every TODO, FIXME, or HACK you added on a branch — listed by file, ready to clean up before the PR.
Branch context, one column away
Pull request actions, recent commits, and the worktree path all live in a dedicated right column — no menu hunting.
Reading the colors
Every branch shows a few colored dots so you can scan dozens at once. Here's what each color means in plain English.
Amber · Unsaved changes
You changed files here but haven't packaged them up into a commit yet. Easy to lose if you switch branches.
Violet · Set aside
You parked some work without committing it (git calls this a "stash") — usually a half-baked idea you wanted to come back to.
Sky · Not on GitHub yet
You committed locally but haven't pushed to GitHub. The work lives only on this Mac — back it up before you reformat.
Rose · Not in your main branch
This branch has work that isn't in your project's main branch yet. Could be ready to merge, could be an experiment you abandoned.
Made for anyone with too much code
If you've been writing software for a while — whether that's at a day job, freelance, or pair-programming with AI — you probably have:
- A handful of repos you barely remember spinning up
-
A dozen branches per repo with names like
feat/the-other-thing - One or two experiments you forgot to push — and almost lost when you swapped machines or wiped a worktree
- A low-grade worry that one of those branches has the version you actually want
Canopy puts every branch in one window so you can always answer: "where did I leave that?"