Skip to content
Miosa-osaPublic

About

Open-source workspace protocol for AI agent systems. If OSA / Claude Code is the employee, Canopy is the office.

Resources

Contributing

Stars

232 stars

Watchers

0 watching

Forks

Repository files navigation

Canopy

Canopy is a desktop workspace for terminal sessions, agent runtimes, and git worktrees. Its current product focus is session continuity across restarts. The current product contract separates implemented persistence from remaining end-to-end verification. A saved session row or a passing build does not establish complete terminal-screen or agent-conversation restoration.

Current scope

The visible product centers on Build, sessions, runtimes, workspaces, and terminal access. Broader module routes remain in source but are parked in navigation. Their existence and historical completion reports do not establish current product readiness.

Implemented foundations include session snapshots, guarded restore behavior, scrollback storage, workspace state, and a workspace-local OptimalEngine task bridge. See the product evidence and Engine execution contract for code, tests, and limitations.

Start here

Use development and verification for current setup instructions. From the repository root:

make doctor
python3 scripts/agent_control_plane.py
make setup

make setup installs dependencies, creates and migrates the development database, seeds it, and generates OpenAPI TypeScript types. It requires PostgreSQL with the vector extension available. Tool versions are pinned in .tool-versions and package.json.

For browser development, run these in separate terminals:

cd backend && mix phx.server
cd desktop && pnpm dev

The backend listens on http://localhost:9190; the frontend uses http://localhost:5280. Browser mode does not provide Tauri's native folder picker. For native development, follow the separate instructions in development and verification.

Verification

make test
make lint
python3 -m unittest discover -s scripts/tests -p 'test_agent_control_plane.py'

make test runs ExUnit, Vitest, and Rust tests sequentially. The CI backend job additionally collects coverage with an explicit 67.5% floor; the desktop job also checks types and builds the SPA. Rust CI runs tests, clippy, and rustfmt. See the evidence and retest commands for the September 8 baseline and the limits of each check. The historical 80% coverage target and Mix's former implicit 90% threshold were not achieved baselines.

Documentation and ownership

agent-authority.json classifies current contracts, reference material, and historical documents. Start with CLAUDE.md, the documentation index, and CONTRIBUTING.md. Historical plans are preserved for provenance and do not override current contracts.

Path Purpose
backend/ Elixir/Phoenix API, sessions, persistence, workspace Engine bridge
desktop/ SvelteKit/Svelte 5 SPA, terminal UI, workspace state
src-tauri/ Rust/Tauri shell and native commands
packages/types/ Generated OpenAPI TypeScript definitions
docs/ Classified contracts, guidance, and historical evidence
.github/ CI and code-owner configuration

Protected main requires the four named checks and independent code-owner review, including for administrators. See permission review for the dated settings and review requirements.

Apache 2.0: see LICENSE and NOTICE.md.

About

Open-source workspace protocol for AI agent systems. If OSA / Claude Code is the employee, Canopy is the office.

Resources

Contributing

Stars

232 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages