Skip to content
Canopy is in pre-release. These docs describe the product at its public launch — commands, tool names, and integration examples reflect what you'll see once binaries ship. Join the waitlist →

What Canopy Is and Isn't

Canopy is a local code-intelligence engine: it indexes your repository and exposes one tool — canopy_answer — that makes an AI agent’s answers about your code more correct and far cheaper. One binary, no cloud, no API keys required.

Every word in that sentence is doing work. Here is the unpacking.

Canopy transforms a raw repository into a structural index — AST symbols, a dependency graph, full-text and semantic search, git history — and answers questions over it through a single tool. The agent (Claude Code, Cursor, or any MCP client) supplies the reasoning; Canopy supplies verified facts about your specific codebase: who depends on this file, what its public surface is, whether it is reachable, who last changed it.

An agent without Canopy is a very smart developer who has never seen your codebase and must grep and read to find out. With Canopy, the same developer asks one question and gets a structural answer computed from the index — complete by construction, not by diligence.

The correctness and cost claims are measured, not asserted:

  • Library suite (3 OSS repos, 270 questions, cold sessions, grading independent of Canopy’s own output): 0.932 vs 0.530 correctness against the shell grep/read loop (+76%), at −69% tokens — about 5× cheaper per correct answer.
  • Application corpus (Cal.com, 6,118 files, 39 cross-layer questions): 0.923 vs 0.872, at −80% tokens — 81% cheaper per correct answer.

See the benchmark report for methodology and reproduction commands.

The binary indexes your repo into ~/.canopy/ on your machine. The MCP server runs on your laptop or CI runner — not on Gulf Shield Technologies infrastructure. Your code, your questions, and your file paths never leave the machine. The only routine network call is a weekly license heartbeat; --no-network makes “nothing leaves the box” an enforced guarantee, and the Air-Gapped tier compiles networking out entirely. See License and Privacy.

No Docker, no daemon, no runtime to install. One static binary on your PATH. canopy setup onboards the repo end to end, canopy answer "<question>" answers from the terminal, canopy serve runs the MCP server, canopy doctor tells you if anything is off.

There is no “Canopy Cloud.” The product is a binary you download and run. Nothing about answering questions requires a network connection, an account in a web app, or credits.

Canopy includes no AI model and writes no code. It answers structural questions about your codebase — the facts an agent (or a human) needs before writing code.

Canopy does not plan, edit files, or run your tests. It is the retrieval layer under your agent: the agent decides what to ask and what to do with the answer.

Canopy is not a faster search box, and its differentiation is not “AST search” — several free tools do that. Canopy returns answers, not search results: a dependents trace is every inbound edge in the graph, a wiring check is a reachability proof, a public-surface answer is the export list — not a page of ranked matches for you to assemble yourself. And when nothing clears the relevance floor, it says “No strong match in this repository for …” instead of relaying tangential files.

Canopy is not a replacement for ESLint, Clippy, or mypy. Those enforce style and language rules; Canopy operates at the architectural level — dependency edges, reachability, ownership, blast radius. Keep running your existing analysis tools alongside it.

  • Indexing means symbols and imports. 55+ languages and formats are indexed for symbol extraction and import edges. Canopy does not claim deeper per-language semantics than that; compiler-precise edges are an opt-in upgrade via SCIP ingestion.
  • Concept questions are the weakest recipe. “How does X work?” falls back to semantic search. Questions that name a file or symbol get structural answers; see Phrasing Picks the Recipe.
  • The first full index is the slow path. Subsequent indexing is incremental and fits inside a normal development loop.
  • A weekly heartbeat exists. One license-validation call per week. If your environment requires zero network calls, that is what the Air-Gapped tier is for.