Releases: FluidWorksApp/canopy-ide
Release list
Canopy 0.2.1
The collaboration release: your issue tracker, your teammates, and your own colour scheme all move inside Canopy — and everything you can see, you can open.
Team relay — work alongside other people
- Encrypted peer-to-peer sessions. Host or join with a short code; there is no server in the middle. The code drives a SPAKE2 key exchange and every frame and file is sealed with ChaCha20-Poly1305, so the channel is safe to carry over the internet, not just a trusted LAN.
- Local hosting works out of the box — teammates on the same network (office, VPN) join via your LAN address. Hosting to the internet needs TCP port forwarded to your machine on your router; there is no NAT traversal or hole punching yet, so a public-mode host is not reachable without that.
- Team chat and direct messages, with history, unread badges, and native notifications for the conversation you are not looking at.
- Review requests: send a teammate a PR and it opens in their Canopy as a native tab, not a browser round-trip.
- File transfer with drag-and-drop, live progress, verified identity, and an integrity check on arrival.
Issues and tickets — natively viewable
- Unified Issues panel: one status-grouped list across sources, with source pills. GitHub is on by default; Linear is opt-in.
- Send an issue to an agent — an existing terminal or a fresh one, with a worktree and branch prepared for it.
- Issues, commits, and branches open as native tabs. Nothing bounces you to a browser to read a diff.
- Loose ends: every branch and worktree audited by what you would actually lose if you deleted it — dirty, unpushed, unmerged, or genuinely safe. Each row opens the real diff.
- History opens commits as tabs; quick-open and search stop hiding dotfiles (your
.envis findable again).
Appearance and settings
- Themes: dark, light, and system, with accent colours that follow whatever the system picks.
- A real Settings dialog — VS Code-style tabs for appearance, agents, editor, terminal, guard, and integrations — plus a Help page and a settings gear on the rail.
- Font and cursor control for both the terminal and the editor, picked from a dropdown of what is actually installed rather than typed into a text box.
- Tracker connections and GitHub sign-in/out live in Settings → Integrations.
Security
- Issue bodies are sanitized. Rendered markdown from a remote tracker reached the page unsanitized, and every Tauri command is callable from page script — so an
<img onerror>in an issue you opened was arbitrary command execution. Now sanitized through a single vetted path, with a CSP and hardened link handling behind it. - Relay join codes are unguessable. They came from a non-cryptographic hash of the clock. SPAKE2 protects a short code against offline attack only if the code itself cannot be predicted; the code and the file-transfer keys now come from the OS CSPRNG.
- Accepting a file no longer destroys the file it replaces. The destination was truncated before any bytes arrived and deleted on failure. Transfers now land in a temp file and are renamed into place only after the hash checks out.
- Stopping a relay session now actually retires its in-flight file listeners.
Fixes
- Terminals stop garbling output after a tab switch. A grid measured mid-layout could be pushed to the shell, which then re-wrapped its output at the wrong width — permanently, in scrollback. Measurements are now verified before they reach the pty.
- Terminals re-measure when fonts resolve and when the window regains focus, so a drifted grid repairs itself instead of staying broken for that terminal's life.
- Toasts have kinds: failures stay until read, everything else clears itself.
- Flat buttons everywhere, dialogs that wrap their text, hover actions that no longer land on top of the content they cover, and hidden actions that stop reserving empty space.
- Dev builds run beside an installed copy instead of fighting it for the single-instance lock.
Installing
- macOS:
Canopy-macos-arm64.dmg(Apple silicon) orCanopy-macos-intel.dmg. - Linux:
Canopy-linux-x86_64.AppImage,.deb, or.rpm. - Windows:
Canopy-windows-x86_64-setup.exe— still unsigned, so Windows will show a SmartScreen warning. Choose More info → Run anyway.
Existing installs update themselves; the Canopy-* names above are stable aliases that always point at the latest release.
Full changelog: v0.2.0...v0.2.1
Canopy 0.2.0
The agent-parity release: Canopy stops being a Claude-only IDE. Every agent CLI with an integration surface now feeds the same panels, plus a big idle-footprint cut, a resource breakdown, project CRUD, and Windows builds.
Agents — parity beyond Claude Code
- All seven CLIs integrate (Claude Code, Codex, Antigravity, Aider, OpenCode, oh-my-pi, Amp): hook/plugin auto-setup at boot, per-CLI setup buttons in the Agents panel, and a research dossier at
docs/agent-parity.md. - Codex: full hooks (incl. permission requests) with the legacy notify kept for older versions; shared-context injection.
- Antigravity: Agent Hooks + OSC 9 notifications wired; sessions detected, restorable via
agy --conversation. - Aider: waiting-for-input (incl. y/n confirms) surfaces as cards via its notifications-command.
- OpenCode / oh-my-pi / Amp: generated bridge plugins forward session, tool, and permission events.
- Agent detection derives from the CLI registry (no more hand-maintained regex drift); Gemini CLI leaves the launcher (Google retired its individual login; Antigravity is the successor).
- Universal fallback: an agent that goes quiet after working rings its tab, hooks or not.
- Restore sessions now lists non-Claude conversations (they were hidden behind Claude-specific checks).
Agent UX
- Needs-your-input redesigned: questions, permission requests, and "finished" are distinct; one urgent card per session; cards are dismissible; viewing the terminal auto-clears them; single-select questions are answerable directly from the panel.
- Model switcher on the status-bar model chip — switches the live Claude session via
/model, with a context warning first. - Tab strip puts agents first: tinted tabs with a live dot, then shells, then files/PRs.
Performance
- Process monitor no longer re-reads every process's command line each tick, and idles when no terminals are open.
- Token/cost tray parses transcripts incrementally instead of re-reading multi-MB files every 8s.
- Stats updates no longer re-render every open project; hidden projects pause their polling entirely.
IDE
- Resource breakdown: click the cpu/mem chip for per-project → per-terminal → per-process usage, with listening ports and a Core-services line.
- Project manager: titlebar "Projects ▾" / ⌘⇧M — create, open, edit, delete any project, with a proper delete confirmation.
- Project dialog redesigned: directory cards with a clear, explained run-commands zone.
- Terminals repaint instantly on tab switch (no more blank-then-fill); links in terminals open in your browser.
- Shortcuts: ⌘⌥←/→ cycle projects, ⌘1–9 jump to a project, ⌘⌫ kills the line; Ctrl+Tab still cycles tabs.
- CLI install buttons refresh when the installer finishes instead of on a timer.
Platform
canopy <dir>opens a directory from the command line (Canopy → Install 'canopy' Command…).- Automatic update checks (launch + every 12h); .deb/.rpm installs are pointed at the downloads page.
- First Windows build (NSIS installer) — unsigned for now, expect a SmartScreen warning.
Full changelog: v0.1.0...v0.2.0
Canopy 0.1.0
The first release of Canopy — a local-first, memory-light desktop IDE for driving code with agents. Run Claude Code, Codex, Aider and friends in a first-class terminal, and see what changed and what's running, in one native window.
Which file do I want?
| Your machine | Download |
|---|---|
| Mac with Apple Silicon (M-series) | Canopy-macos-arm64.dmg |
| Mac with Intel | Canopy-macos-intel.dmg |
| Linux — any distro | Canopy-linux-x86_64.AppImage |
| Linux — Debian / Ubuntu | Canopy-linux-x86_64.deb |
| Linux — Fedora / RHEL | Canopy-linux-x86_64.rpm |
| Windows | coming soon — watch this repo |
Not sure? canopyide.dev/downloads detects your platform and hands you the right file.
Highlights
- Agent-native terminal — a launcher for Claude Code, Codex CLI, Amp, Aider, Gemini CLI, OpenCode and any shell, with full TUI support (
vim,htop,tmuxjust work) - Diff-first — agents edit under you, you get side-by-side diffs, never a silent reload; a git-backed Changes panel groups everything touched
- Multi-project, multi-component — label your directories (frontend, backend, …) and give each its run commands in the RUNS rail
- Session awareness — every agent session across the project: branch, task, CPU/memory, ports; sessions survive crashes with one-click restore
- Native Git — staging, stash, branches, worktrees, history and PRs, one rail from the terminal
- Light — Rust core, no Electron, no extension host; ~5% CPU, ~120 MB with agents running
Good to know
- The macOS builds are signed and notarized. The
.dmgand.AppImageauto-update in-app;.deb/.rpmupdate through your package manager. - The
.sig,.app.tar.gzandlatest.jsonassets are the auto-updater's plumbing — the app downloads them itself. - MIT licensed. Issues, PRs and strong opinions welcome: CONTRIBUTING.md