Migrate from Sourcegraph
Sourcegraph discontinued the individual/indie tier in July 2025. If you were using Sourcegraph for code search and navigation, this guide maps those workflows onto Canopy.
What changes
Section titled “What changes”Two things. First, Canopy runs entirely locally: no server to run, no Docker container to maintain, no cloud account. The index lives in ~/.canopy/ and updates incrementally as files change.
Second, the interaction model changes. Sourcegraph returns search results you read through; Canopy returns answers. One tool — canopy_answer over MCP, or canopy answer "<question>" from the shell — routes each question to a deterministic recipe over the index: definition lookup, dependents, ownership, coverage, architecture.
Workflow mapping
Section titled “Workflow mapping”| Sourcegraph | Canopy question |
|---|---|
| Go to definition | ”where is the function createPayment defined?” |
| Find references | ”what calls createPayment?” or “what depends on src/lib/payments.ts?” |
| File overview / hover docs | ”what does src/lib/payments.ts do?” or “public surface of src/lib/payments.ts” |
| Symbol search | ”list functions defined in src/lib/” |
| Keyword / literal search | Ask about the thing directly: “how does checkout work?” |
| Ownership / blame | ”who last changed src/lib/payments.ts?” |
| Insights / repo metrics | ”architecture overview” |
| Cross-repo search | Pro tier multi-repo registry: canopy repo add each repo, then canopy answer "<q>" /path/to/other-repo |
| Batch changes | Not available — Canopy is read-only intelligence |
Specific question shapes beat generic ones. “how does checkout work?” is the semantic fallback — the weakest recipe. When you know the entity, name its type and backtick it.
Step 1: Install Canopy
Section titled “Step 1: Install Canopy”curl -fsSL https://downloads.canopy.gulfshieldtech.com/releases/latest/canopy-x86_64-unknown-linux-gnu.tar.gz \ | tar -xz -C ~/.local/bincanopy --versionSee Install Canopy for all platforms and Gatekeeper handling on macOS.
Step 2: Run setup
Section titled “Step 2: Run setup”cd /path/to/your/repocanopy setupcanopy setup is the whole onboarding: license, embedding runtime, summary backend, editor wiring, and the initial index, each with a default you can accept. When it finishes, the repo is indexed and every detected MCP editor is already connected. canopy setup --yes runs it with zero prompts.
Step 3: Replicate your searches
Section titled “Step 3: Replicate your searches”From the shell:
canopy answer "where is the function `createPayment` defined?"canopy answer "what calls `createPayment`?"canopy answer "what depends on `src/lib/payments.ts`?"canopy answer "who last changed `src/lib/payments.ts`?"canopy answer "architecture overview"Or from your editor — the same canopy_answer tool is available via MCP in Claude Code, Cursor, Zed, and VS Code + Continue.
Regex and structural search patterns: there is no regex query language. Ask for the fact the pattern was hunting — “what calls createPayment?” replaces the createPayment\(.*\) regex, and the answer is a resolved call list rather than a page of text matches. For raw text scans that aren’t questions about code structure, grep remains the right tool; Canopy replaces the questions, not every text scan.
- Community (free) — full local AST + full-text index, keyword answer recipes, the MCP server.
- Solo — adds semantic search (embeddings), the answer-quality lever for concept questions.
- Pro — adds the multi-repo registry, cross-repo search, and CI mode.
Activate with canopy activate <your-license-key>. A 14-day trial is available at canopy.gulfshieldtech.com.
What Canopy doesn’t have
Section titled “What Canopy doesn’t have”- Batch changes — Canopy is a read-only intelligence tool. It doesn’t write code.
- Saved searches / code monitors — no persistent search subscriptions. Ask on demand, or run
canopy ciin CI for recurring health checks.
Common pitfalls
Section titled “Common pitfalls”Vague questions return weak answers
Sourcegraph habits produce keyword queries (“checkout”). Canopy rewards full questions with the entity type named and paths/symbols backticked. “what does src/checkout/session.ts do?” beats “checkout”.
“Index not found”
canopy answer and canopy serve auto-detect the repo from the current directory. Run them from the repo root you indexed, or pass the repo path explicitly: canopy answer "architecture overview" /path/to/repo.