Skip to content

ashmitb95/canopy

Repository files navigation

Canopy

Multi-repo worktree manager with MCP server for AI agents

Python 3.10+ Tests MCP Tools VSCode Extension License MIT


Canopy coordinates Git worktrees across multiple repositories. It creates isolated working directories for each feature, opens them in your IDE, runs pre-commit checks, and exposes every operation as both a CLI command and an MCP tool — so AI agents can operate your workspace through the same interface you use.

Why

Working on a feature that spans multiple repos means coordinating branches, switching, and managing worktrees across all of them. Git worktrees solve the context-switching problem, but the UX for managing them across multiple repos doesn't exist. Canopy provides it: one command to create worktrees in every repo, one command to open them in your IDE, one command to check everything before you commit.

How It Looks

canopy worktree

More CLI screenshots

canopy status
canopy review
canopy list

Install

Requires Python 3.10+.

pipx install git+https://github.com/ashmitb95/canopy.git

If you don't have pipx: brew install pipx && pipx ensurepath.

Or from source, for contributors:

git clone https://github.com/ashmitb95/canopy.git ~/projects/canopy
cd ~/projects/canopy && pip install -e .

Quick Start

cd ~/my-product/
canopy init                                        # scan for repos, generate canopy.toml

canopy worktree ENG-412-add-oauth2-login ENG-412   # create worktrees + link Linear issue
canopy code ENG-412                                # open in VS Code (alias resolves)
canopy preflight                                   # stage + run pre-commit hooks
canopy done ENG-412                                # clean up when merged

VSCode Extension

Prefer a sidebar over the CLI? Install Canopy from the VSCode marketplace — features, worktrees, per-repo changes, and review readiness in one native panel, backed by the same MCP tools the CLI uses.

MCP

Every CLI operation is available as an MCP tool:

{
  "mcpServers": {
    "canopy": {
      "command": "canopy-mcp",
      "env": { "CANOPY_ROOT": "/path/to/workspace" }
    }
  }
}

Canopy is also an MCP client — it spawns external MCP servers (Linear, GitHub) to fetch issue and PR data, so there are zero direct API integrations in the codebase.

Docs

Development

cd ~/projects/canopy
pip install -e ".[dev]"
pytest tests/ -v             # 192 tests, ~2s, all use real temporary Git repos

License

MIT

About

Git worktree manager for multi-repo workspaces — create, commit, and open feature branches across all your repos with one command. CLI + MCP server so AI agents use the same interface you do.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors