two sideswhyspotmultiplexremotedownload

from outcome
to working
software.

Tell Canopy what should change. Build mode plans, routes and verifies the work. Engineer mode gives you every terminal, process and diff. Both operate on the same local project, so nothing gets lost between intent and implementation.

Download for macOS (Apple Silicon)$ git clone canopy-ide ⧉
Canopy - The IDE built for driving agents, not typing code | Product Hunt
· free & open source · macOS, Windows & Linux · Intel Mac?
Canopy on open, the full-window launcher above a pick-up-where-you-left-off list
One IDE, two lenses

Start with the outcome. Drop into the implementation.

Build and Engineer are two views of the same local project. Move between them at any point without exporting, forking or rebuilding context.

Buildsame project runtimeEngineer
Under both sidesAgents coordinate through visible identities, messages, file claims and stalled-work signals.See how coordination works →
00 / one project

Two ways to build. One source of truth.

Build mode manages the path from outcome to verified result. Engineer mode exposes every terminal, process and diff. Both operate on the same local repository and runtime.

 
Build mode
Engineer mode
shared underneath
interaction
describe the outcome to Canopy
direct the CLI, terminal and tools
one project and conversation trail
execution
Canopy routes a durable task attempt
you choose the agent, account and model
visible route, process and evidence
verification
observed checks, browser and network
inspect output, diffs and review state
the same verification ledger
handoff
open the exact work in Engineer
return the project to Build
no export, fork or resync
01 / spot search

Find anything. Act on it.

Spot search: actions, in-file matches, agent conversations and research results in one palette
⌘Ksearch tabs, files, agents, research and tickets

Search what is open, what is on disk, and what your agents already learned.

Tabs, files, symbols, code, terminal output, agent conversations, scratchpad notes, research, tickets, PRs, branches, servers and completed tasks all meet in one palette.

fzf-grade rankingTypo-tolerant fuzzy matching with word, path and camelCase awareness.
local persistent memoryIndexes supported agent conversations and terminal scrollback on your machine.
search becomes actionOpen the result, run the request, research it, or save it for later.
02 / dictation

Say it. It's typed.

Speak instead of typing. Canopy transcribes on-device into terminals, editors and agent prompts, without uploading your audio.

Apple Silicon · Windows · supported Linux systems
offline after the model is installed
start anywhere with ⌃⌘D · Esc cancels
claude · auth-fixListening
you said
"refactor the auth module and add tests for the token flow"
prompt sent
Refactor the auth module and add tests for the token flow.
transcribed on-device · audio stays on your machine
04 / multiplex

More agents. Fewer tabs.

Turn one tab into a working surface for several independent agents.

Keep splitting right or down to build the layout you need, resize any boundary, and move focus by keyboard. Each pane keeps its own terminal, session and project context; the whole layout survives a restart.

⌘Dsplit right+
⇧⌘Dsplit down+
⌥⌘ + arrowfocus a neighboring pane
shortcuts shown for macOS
OC | Checkout + 3▦ 4nested splits · independent panes
checkout-flow+ ↔
claude
Implementing the checkout state machine.

· reading cart reducer
· updating payment tests
✓ 18 tests passing

I’ll keep the existing retry semantics and add the declined-card branch.
mobile-polish+
codex
Checking responsive states…
375px · 768px · 1280px
✓ layout clean
api-contract+
claude
Reviewing webhook types.
2 files touched
! needs your decision
release-notes+
opencode
Summarizing shipped changes.
✓ draft ready
checkout-flowlocalhost:4321/checkout−×
agent browserconnected
CURRENT ROUTE
/checkout/recovery
DOM statePASSconsole logUNKNOWNfailed requests0
console still active · Canopy will not infer a pass
EVIDENCE · PARTIAL
browser picture-in-picture
Watch the page an agent is driving without giving up your terminal. Drag, resize or minimize each agent’s live view.
one browser per agent
Multiple agent pages stay distinct and follow the pane that owns them instead of replacing one shared preview.
passive by design
PiP is a read-only view of native browser activity, currently available on macOS. Open the full preview when you want control.
the whole layout survives a restart, exactly as it was
09 / team

Private team sharing, hosted by you.

relayjoin codeJX4-9QN
mayaco-editing src/auth.rs
devwatching · "ship it"
⇄PR #481 shared2 reviews in
Chat & share PRs
Encrypted between connected Canopy instances.
Co-edit files
Share supported text files or a project and edit together.
Your Canopy is the relay
A teammate hosts the connection, not a Canopy cloud service.
10 / remote

Control Canopy from another device.

You choose when to enable access. Monitor agents, reply, start work and stop processes from a phone or desktop browser.

canopy remote
auth-fixneeds you
ui-polishworking
approvereply…
11 / workflows

Keep the work, not just the terminal.

multiple accounts

Switch between agent accounts.

Keep supported work and personal CLI logins separate, and choose which profile new agents use.

new agents launch as
✓Defaultexisting logins
Workclaude · codex
Personalclaude
scratchpad

Catch it before it disappears.

A bug you just noticed. An idea for later. A cleaner way through. Jot it down against the project, then find it when you're ready to pick it up.

Write it down…Save
IN PROGRESS 1
0006Update the icon setTasks is now a bolt, Scratchpad a pencil…
IDEAS 2
0008Fix closed-item behavior
DONE 5
0006In progress1d ago
Create a reminder to update the rail icon set.

Research now has a page-and-magnifier mark; Scratchpad a pencil. Changes are linked to the main checkout.

WHAT CAME OF IT
↕ PR #358 open
▸ What was on screen when you wrote this
Work on itClaude Code
companion⌘/

Ask for help from anywhere.

Name it, shape it, summon it anywhere in Canopy. Your companion uses the available project and open-view context to explain code, review a PR or start saved services.

Jarvis· Claude Codeesc
jarvis

The local server is running on :4321. I also checked the homepage changes; the build is clean.

Ask Jarvis anything…Send
research

Questions become project knowledge.

Run a research task and keep its question, sources, findings, recommendation and open questions with the project.

Research a question…Research
RESEARCHED 8
0009Where should search live?
The index belongs beside the project, not in a remote service…
0007Browser engine options
Chromium over CDP keeps the native shell light…
0006Own the control plane
A durable path for remote access and identity…
0010RESEARCHED23h ago
Canvas or DOM for Canopy's UI?
FINDING
The experiment already ran. Windowed UI and content visibility keep the DOM-native path faster and simpler.
RECOMMENDATION
Keep the DOM. Spend the effort on first paint, file open and occlusion instead.
Write-up, sources and open questions stay attached.
tasks

The work stays after the terminal closes.

Completed agent jobs remain searchable with their brief, outcome, files and timing. Continue the session or run the job again.

Completed tasks8988 done · 1 blocked
Search summaries, briefs and output…All 89
TODAY
✓
Review PR #365, companion attachmentsThree PR tools and chat attachments verified · 2 findings
6m 35s
Claude CodePR #365Continue as sessionRun again
THE AGENT REPORTED
PR #365 gives the companion three PR tools plus chat attachments; 2 blocking findings remain.
2 files touched · terminal tail retained
✓
Update Tasks and Scratchpad iconsShared rail icon set updated and typecheck passed
9m 9s
!
Frontend CI checkBlocked by the orphan-browser takeover; evidence retained
8m 57s
12 / more

Small details, big difference.

native tab switcher

See the tab before you switch.

Hold Ctrl+Tab and scan live previews of every open terminal, agent, file, PR and page. Stop hunting through tiny tab titles.

OC | Convert skin selector to dropdown1 / 13
AGENT
OC | Skin dropdown
$ working on the current task
· reading project context
· updating files
Build · clean
AGENT
Remote Parity
$ working on the current task
· reading project context
· updating files
Build · clean
AGENT
OC | Product Hunt
$ working on the current task
· reading project context
· updating files
Build · clean
TASK
Review agent mesh
$ working on the current task
· reading project context
· updating files
Build · clean
loose ends
See what would be lost before cleaning branches and worktrees.
tickets to agents
Start GitHub or Linear work in an isolated worktree.
native viewers
Docs, diagrams, PDFs, sheets, notebooks, images and JSON.
true TUIs
Full terminals, no emulation shortcuts.
skins
Recolor the whole app · terminals too.
project sleep
Free everything running, then wake the full workspace later.
keyboard-first
Shortcuts for core navigation and actions.
agent browser
Test real flows while Canopy fills approved logins safely.
13 / foundation

Fast, local and open.

core
Rust · no GC pauses, no runtime tax
shell
Tauri on your OS's webview, not bundled Chromium
footprint
Designed to stay light while your agents and services run
platforms
macOS, Windows and Linux · in-app or package-manager updates
architecture
Local-first · your workspace stays on your machine
credentials
Canopy keeps credentials local; your agent CLI connects to its provider
the full stack, choice by choice →

Get Canopy.

free & open source · MIT
macOS
Apple silicon & Intel · .dmg
download →
Linux
AppImage & .deb · x86_64
download →
Windows
x86_64 · .exe installer
download →

Build it. It's yours.

MIT licensed. Issues, PRs and strong opinions welcome, contribute on GitHub.

requires: rust (stable) · node 20+
♥ Support to keep Canopy independent
sh
$ git clone https://github.com/FluidWorksApp/canopy-ide
$ cd canopy-ide && npm install
$ npm run tauri dev   # or: npm run tauri build