Tech stack

Native where it counts. Small everywhere else.

A Rust core does the work. A thin interface shows it. Every choice keeps Canopy light, local and easy to read.

The layers

Four layers, one direction of trust.

The interface asks; the Rust core acts. There's no application server between them.

  1. InterfaceReact 19 · Vite · TypeScript

    Tabs, panels, the launcher and every view of the project.

  2. Terminals and editorxterm.js · Monaco

    Full TUI support for agent CLIs, plus a real code editor with diagnostics.

  3. ShellTauri v2 · your system's webview

    A native window instead of a bundled copy of Chromium.

  4. CoreRust

    Terminals, child processes, files, Git, language servers, local servers, the browser preview and shutdown.

Choices

What we picked, and what we left out.

Tauri, not Electron

A native app, not a browser in a box.

Canopy draws its interface in the webview your OS already has and does the heavy work in Rust.

Real terminals

Agents run as real processes.

Each CLI runs in a terminal owned by the Rust core, so its own interface works as it does in your terminal app.

No extension host

What ships is what runs.

Canopy isn't a VS Code fork and doesn't host extensions. The viewers you need are built in.

Built-in viewers

Open the file, skip the setup.

Markdown with Mermaid, HTML, JSON, spreadsheets and CSV, Word files, PDFs, images and notebooks render offline.

Local first

Your machine, your data.

Canopy works offline. The network traffic it makes is the traffic you turn on.

  • No required account, no telemetry. Crash reports are opt-in.
  • Your project state stays local. Workspace state, notes, research and search indexes live in your projects and ~/.canopy.
  • Agent CLIs are separate tools. They use their own accounts and networks. Canopy doesn't read their tokens.
  • Network features are opt-in. Remote is off by default. Team payloads are end-to-end encrypted. Cloud workspaces run only if you create one.
  • Dictation stays on the machine. Speech models run locally through ONNX Runtime. Intel Macs don't include dictation.

Open source

Read it. Build it yourself.

You need Rust (stable) and Node 20 or later. The architecture docs explain every boundary above.

Architecture docs

$ git clone https://github.com/FluidWorksApp/canopy-ide
$ cd canopy-ide && npm install
$ npm run tauri dev