Safe to delete.
Here’s the proof.
Orchard finds every git worktree on your Mac and tells you which ones are already in main — squash and rebase merges included — with evidence you can check. Clean them up in one go, and change your mind for 7 days. Work that hasn’t landed stays flagged, so nothing gets lost.
Worktrees pile up.
Nobody remembers which ones still matter.
Three agents, three worktrees, and your main checkout on yet another branch. A week later some PRs were squash-merged, some changes are still sitting on disk, and some commits were never pushed. Every delete feels like a gamble.
git tells you where they are
13 worktreesOrchard tells you what to do
same worktreesNot a guess.
Evidence.
git branch --merged can’t see squash or rebase merges, so everything looks unmerged and nothing feels safe to delete. Orchard checks three layers, fastest first, and shows exactly what it found.
- Computed, not predicted. A deterministic algorithm makes the call. AI never decides what’s in main or what to delete.
- Readable reasons. “1 commit already in main with identical changes”, “PR #142 merged 3 days ago” — never a bare “safe”.
- Cross-checked with GitHub. With
ghsigned in, PR status confirms what the commits say.
CommitsThe branch tip is already an ancestor of main. Catches plain merges and fast-forwards.
PatchesCompares each commit’s patch and the branch’s overall change to catch rebases, cherry-picks and squashes — then cross-checks PR status on GitHub.
ContentEven uncommitted changes are compared piece by piece: identical content is already in main, or it’s an older version that a later commit replaced.
Free 1.2 GB in one click.
Undo for 7 days.
Check the worktrees you’re done with and clean them up together. Every one lands in Recently Cleaned with a Restore button.
- Snapshot first. Uncommitted changes (new files included) and the branch tip are saved to
refs/orchard/trash/before anything is removed. - Ignored files too. Things like
.envaren’t in git, so you’re told and they’re backed up separately. - Remote untouched. No remote branch is ever deleted and nothing is ever force-pushed.
- Just want the space? Clean only build artifacts like
node_modulesand keep the worktree.
What hasn’t landed
stays in front of you.
The Inbox lists only worktrees that would lose work if deleted. Each card names the concrete reason and puts the next step on the right: commit and open a PR, save orphaned commits to a branch, or hand it back to an agent.
Uncommitted changes
Including new files git isn’t tracking yet. Most half-finished agent work lives here.
Committed, not pushed
Only on this Mac. Commits already in main don’t count, so no false alarms.
Branches never pushed
Created locally, never on the remote — the easiest thing to lose with a worktree.
Stashes
Grouped under the worktree they belong to, instead of an anonymous stash@{3}.
Commits on a detached HEAD
Not on any branch; switch away and they’re gone. Save them to a branch in one click.
Interrupted operations
A rebase, merge or cherry-pick stopped halfway. Such worktrees can never be cleaned up.
One line
tells the story.
Every card has a branch rail: the grey line is main, the curve is this worktree’s branch. One glance shows where the risk is; hover for a plain-English explanation.
Careful by design.
More careful than you at 2 a.m.
The worst thing a cleanup tool can do is delete the wrong thing. So a few rules are hard-coded, and each one is tested against real git repositories.
Read-only in the background — agents keep working
Auto-refresh runs only read-only git commands with GIT_OPTIONAL_LOCKS=0, so git status never refreshes the index or fights a working agent for index.lock. The only background write is git fetch, and you can turn it off.
Some worktrees can never be cleaned up
One an agent process is working in; one with a rebase, merge or cherry-pick stopped halfway; the main worktree. The button simply isn’t there.
Snapshot before every delete
Uncommitted changes and the branch tip go to refs/orchard/trash/ and stay restorable for 7 days. Ignored files like .env are flagged and backed up first.
Never deletes remote branches, never force-pushes
The remote is off limits. Orchard doesn’t create worktrees or start agents either — it only observes and tidies what’s there.
Every action shows its commands
Before committing, pushing or cleaning up, you see the exact git commands that will run. Confirmation dialogs state facts: what happens, what isn’t affected, how to undo.
Your code stays on your Mac
No account, no uploads. AI is optional and uses your own ChatGPT sign-in; without it, every core feature works in full.
From “what’s this?”
to done, in one window.
Commit & Create PR
AI splits the changes into sensible commits and drafts the PR title and description, and lists files that won’t be committed (like .env.local). Every command is shown before it runs.
Lives in your menu bar
What hasn’t landed, one click away.

Hand off to an agent
Summarizes a worktree’s state and copies it, ready to paste into Claude Code or Codex to pick up where it left off.
Collision warnings
Two agents editing the same file in different worktrees? You’ll know before you merge.
⌘K, in plain words
Filter by name, or — signed in to ChatGPT — search by description.
Live, and quiet about it
FSEvents watches for changes and refreshes only the affected worktree, skipping folders like node_modules. PR status comes from your signed-in gh, one request per repository.
The free version isn’t a trial.
Every feature is free, with no time limit and no account. You pay for one thing only: tracking more than one project.
Tracks 1 project, with any number of worktrees.
- 1 project, unlimited worktrees
- All six kinds of unlanded work + three-layer checks
- Clean up with 7-day restore, Commit & Create PR
- AI summaries and drafts (with your ChatGPT)
- Menu bar, live updates, auto-updates
Unlock every project. Pay once — no subscription, no expiry.
- All projects, tracked together
- Everything in Free
- Activate on 2 Macs at once
- New Mac? Deactivate the old one in Settings
- Supports an independent developer
Questions you might have
How does Orchard know a worktree is safe to delete?
It checks three layers: whether the branch tip is already in main’s history, whether each commit’s patch (or the whole branch as one squash) matches something in main — cross-checked with the PR on GitHub — and whether uncommitted changes already exist in main. A deterministic algorithm decides; AI is never involved. Each verdict comes with the reason, so you can check it yourself.
What if I clean up the wrong thing?
Before cleanup, uncommitted changes (including new files) and the branch tip are snapshotted to refs/orchard/trash/ and kept for 7 days. Restore with one click under Clean Up › Recently Cleaned. Files ignored by git, like .env, aren’t in the snapshot, so they’re flagged and backed up separately first.
Will it get in the way of Claude Code or Codex?
No. Every background command runs with GIT_OPTIONAL_LOCKS=0, so it never refreshes the index or takes index.lock. When an agent process is working in a worktree, Orchard shows it as “Agent working” and won’t clean it up.
Does Orchard change my repositories?
Auto-refresh is read-only. Writes happen only when you click a button (commit, create PR, clean up, save as branch), and you see the commands first. Orchard doesn’t change your git config; the only extra thing it writes is refs/orchard/* for cleanup snapshots.
Do I need GitHub? What about GitLab?
The core features need only git. PR status and Commit & Create PR use GitHub’s official gh CLI, signed in once. Only GitHub is supported for now.
How does AI work, and is my code sent anywhere?
AI is optional. It runs through “Sign in with ChatGPT” and uses your own ChatGPT plan — Orchard doesn’t charge for it. Changes are sent to OpenAI only when you’re signed in and use an AI feature. Signed out, no code leaves your Mac.
What’s the difference between Free and a License?
Just one: the free version tracks 1 project; a license unlocks all of them. Every feature, AI included, works fully in the free version, with no time limit and no account.
What do I need to run it?
on a Mac with , and git. Orchard is notarized by Apple and keeps itself up to date.
Delete with confidence.
Restore if you change your mind.
Installs in a minute. Your first scan shows what’s safe to clean up.