Canopy — AI coding agent built for stability, memory efficiency, and developer experience.
An AI coding agent focused on:
- Overflow recovery — Long sessions don't kill context
- Memory — Lower RSS in sessions with many tool calls
- Security — Protection against accidental file deletion
- Extended thinking — Bedrock Converse support
- Multi-project — Work on multiple projects simultaneously
- Global context — Persist context on external SSD
# Via script
curl -fsSL https://canopy.dev/install | bash
# From source
git clone https://github.com/mateussiqueira/canopy.git
cd canopy
bun install
bun run buildcanopy # starts in current directory
canopy /path/to/project # opens specific projectCanopy supports working on multiple projects simultaneously with isolated contexts.
# List all projects
canopy projects list
# Create a new project
canopy projects create "my-app" /path/to/project
# Switch to a project
canopy projects switch <project-id>
# Show current project
canopy projects current
# Delete a project
canopy projects delete <project-id>
# Manage project context
canopy projects context get [project-id]
canopy projects context set <key> <value> [project-id]Canopy can store all context on an external SSD for persistence across sessions:
# Set global data directory
export CANOPY_GLOBAL_DATA=/Volumes/BACKUP/canopy
# Or use the launcher script
/Volumes/BACKUP/canopy/canopy-global.sh- Ultra-fast project switching: 0.12ms average (8,333 switches/second)
- Context reads: 0.02ms average (50,000 reads/second)
- Memory efficient: ~85MB RSS, zero memory leak
Each project has its own isolated context:
- Database connections
- Redis instances
- Environment variables
- Custom configuration
All project data persists on your external SSD:
- Session history
- Project configurations
- Context variables
- Metrics and logs
bun install
bun run devbun run test # unit tests
bun run test:e2e # e2e with PlaywrightRun the performance benchmark:
cd packages/core
CANOPY_GLOBAL_DATA=/Volumes/BACKUP/canopy bun run benchmark.tspackages/
├── core/ # Main logic (agent, session, tools, multi-project)
├── llm/ # LLM client (providers, streaming)
├── opencode/ # CLI/TUI
├── app/ # Web UI
├── ui/ # Components
└── sdk/ # SDK for integrations