Index Your First Repo
If you ran canopy setup inside your repo, it already indexed it — this page
explains what got built and how to re-index. If you skipped setup, indexing is
one command.
Basic indexing
Section titled “Basic indexing”cd ~/path/to/your/repocanopy indexExpected output:
canopy: indexing /path/to/your/repo (incremental)canopy: AST index done — 2104 files indexed, 12 skipped, 0 errors (2631 ms)canopy: building full-text search index...canopy: search index done — 2104 files, 46210 chunks, 46210 indexed (5892 ms)canopy: generating vector embeddings...canopy: embeddings done — 46210 vectors (local provider)Everything is on by default: the AST index, the full-text search index, vector
embeddings for semantic search — and git history is ingested automatically
whenever a .git/ directory is present. The first run is the slow one;
subsequent runs process only changed files.
The flags
Section titled “The flags”| Flag | What it does |
|---|---|
--full | Wipe and re-index from scratch |
--no-search | Skip the full-text index (AST-only — keyword/pattern/semantic recipes unavailable) |
--no-embeddings | Skip vector embeddings (keyword-only index) |
--with-git / --no-git | Force or skip git-history ingestion (auto by default) |
--with-summaries | Build Tier-A file summaries on top — richer file-level answers |
--list-ignored | Show what the ignore rules exclude, without indexing |
Excluding files
Section titled “Excluding files”Canopy respects .gitignore, ships sensible bundled defaults (lockfiles,
build output, vendored code), and reads a .canopyignore file for anything
repo-specific:
# .canopyignore — same syntax as .gitignoregenerated/*.snapdocs/internal/Run canopy index --list-ignored to audit what’s being excluded.
Checking the index
Section titled “Checking the index”canopy doctorIndex status: indexed database: ~/.canopy/<repo-id>/forge.dbcanopy doctor is the one-stop readiness view — index status, license tier,
active summary backend, and the data-flow line showing what (if anything)
leaves your machine.
Where the index lives
Section titled “Where the index lives”Everything is stored locally under ~/.canopy/<repo-id>/ — one directory per
repo, holding the SQLite AST database, the Tantivy search index, and the
vector store. To reset a repo completely:
canopy index --fullSupported languages
Section titled “Supported languages”Canopy indexes 55+ languages and formats — symbols and import edges — from TypeScript, Python, Rust, Go, Java, Kotlin, C/C++, C#, Swift, Ruby, and PHP through build files (CMake, Gradle, Make), config formats (YAML, TOML, INI), Dockerfiles, GraphQL, Protobuf, and more. Files Canopy can’t parse structurally are still indexed for full-text search.
See Concepts: AST Parsing for how parsing works and its tradeoffs.
Connect to Claude Code — or
just start asking: canopy answer "architecture overview".