Canary is being rewritten as a workspace with three coordinated products:
canary: the local monitor and wrapped-agent launcher that serves the browser UI, watches repo changes, and starts attributed Codex or Claude sessionscanaryctl: the local review CLI that writes typed review threads and file briefs directly into SQLiteskills: agent instructions that teach Codex and Claude how to usecanaryctl
packages/
canary/ monitor + wrapped agent launcher + React/Vite UI
canaryctl/ review CLI
canary-core/ schema, migrations, repositories, shared types
canary-observers/ agent adapter definitions
skills/ canonical agent skill bundle
pnpmworkspacesTypeScripton Node.js 20+better-sqlite3for per-user SQLite persistenceReact + Vitefor the review UIcommanderfor the CLIs
Project state lives under ~/.canary/projects/<project-hash>/canary.db.
npm install -g @canaryctl/canaryTo set up the agent skill:
canaryctl skill setup --codex
# or
canaryctl skill setup --claude-codeDevelopment (from source)
corepack enable
pnpm install
pnpm buildTo symlink local builds into your PATH:
pnpm install:localThis links canary and canaryctl into ~/.local/bin and installs the Canary skill into $CODEX_HOME/skills/canary.
Releasing a new version
Push a tag and the GitHub Actions workflow handles the rest:
git tag v0.x.0
git push origin v0.x.0This automatically creates a GitHub release and publishes all packages to npm.