canopy
Beta waitlist open

Git, but for the way you actually work.

Canopy is a Git GUI built for multi-repo projects. Branch across repos. Commit with shared context. Ship coordinated changes, all from one workspace.

Your project spans multiple repos. Your tools don't.

You have a feature that touches three repositories. You need to create the same branch in each. Write similar commit messages in each. Open three PRs. Check CI in three browser tabs. Merge in the right order or risk breaking production.

You've been doing this manually. Canopy does it in one flow.

Everything you need, in one place

Unified Workspace

See all your repos at a glance. Current branch, working tree status, upstream sync, CI health. One dashboard, not five terminal windows.

payments-platform
payments-api clean
feature/auth-v2
CI passing
payments-shared 3 modified
feature/auth-v2
CI running
payments-web clean
main
CI passing
payments-infra 2 conflicts
feature/auth-v2
CI failed

Coordinated Branching

Create a feature branch across all repos with one action. Switch branches across repos simultaneously. Never forget to branch a repo again.

Branch Matrix
Branch api shared web infra
feature/auth-v2 * * *
feature/billing * * *
main * * * *
New branch across repos feature/ |

Cross-Repo Commits

Write your commit message once. Customise per-repo where needed. Commit across all repos in one flow.

Commit
Message
[AUTH-42] Add OAuth2 token refresh
Implements automatic token refresh with
configurable expiry window
payments-api 3 files
payments-shared 1 file
payments-web no changes
Commit 2 repos

PR Orchestration

Create PRs across repos as a group. Canopy auto-generates cross-references, tracks aggregate status, and merges in dependency order. Review PRs without leaving the app: inline comments, approvals, and checks.

PR Group ready to merge
AUTH-42: OAuth2 token refresh
3 PRs · dependency order enforced
payments-shared #142 merged
payments-api #89 approved
payments-infra #31 review pending
Merge in order

One CI view

See CI/CD status for all repos on one screen. No more bouncing between GitHub Actions tabs.

CI Status Last updated 12s ago
payments-api ✓ passing
buildtestdeploy-staging
payments-shared ● running
buildtestlint
payments-infra ✗ failed
buildterraform plan

Full Git GUI

Canopy is a complete Git client on its own. Stage by hunk or line. Resolve merge conflicts. Browse history, blame, and file history. Stash, bisect, and manage worktrees and submodules. Undo most operations with Cmd+Z.

src/auth/token.rs +12 -4
42  impl TokenManager {
43 -  pub fn refresh(&self) {
43 +  pub async fn refresh(&self) -> Result<Token> {
44 +    let expiry = self.config.expiry_window;
45 +    let token = self.provider.refresh(expiry).await?;
46     self.cache.store(token.clone());
47     Ok(token)
48  }
Stage hunk Discard

Built for performance

Built from the ground up with a fresh approach to git operations. Native speed. Instant launch. A lightweight app that never gets in your way.

Be the first to try Canopy

Canopy runs your branch, commit, PR, and CI workflow across every repo in one desktop app. Join the beta waitlist for early access and a founding user discount.