From Basemind
Searches indexed code structures to find definitions, references, callers, call graphs, implementations, dependents, and file outlines without opening files, reducing token usage vs grep or reading source.
How this skill is triggered — by the user, by Claude, or both
Slash command
/basemind:basemind-code-searchThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
basemind pre-indexes the repo into a tree-sitter code map across 300+ languages. Structural
basemind pre-indexes the repo into a tree-sitter code map across 300+ languages. Structural questions — where a symbol lives, what calls it, what shape a file has — resolve from the index in milliseconds and return paths, line numbers, and signatures, not file bodies. That is a fraction of the tokens of reading source, so it is the default, not an optimization.
basemind first, grep/read fallback. If a question is about where, what calls, what shape,
or what implements, a basemind tool answers it cheaper than grep/rg or opening files. Drop to
raw shell only when no tool covers the question.
outline a file before you open it. A 1000-line file becomes a 30-line table of contents.
Read the actual source only once you have the exact span, then read that range, not the file.search_symbols instead of grep for a definition. It matches indexed symbol names and
returns path:line, skipping the comment/string/test-name noise grep drowns you in.find_references / find_callers instead of grepping call sites. Indexed call edges, not
text matches.workspace_grep instead of shelling out to ripgrep when you genuinely need regex over
content — it runs over the in-RAM index and returns capped, structured hits.rescan after you edit code, not a server reconnect. Pass paths: [...] to limit it.| Question | MCP tool | CLI |
|---|---|---|
| "Where is X defined?" | search_symbols (substring, optional kind) | basemind query symbol "X" |
| "What's the shape of file F?" | outline (add l2: true for calls + docs) | basemind query outline F [--l2] |
| "What calls X?" (any name) | find_references | basemind query references "X" |
| "What calls this specific definition?" | find_callers (path + name + optional kind) | basemind query callers F name [--kind] |
| "Trace the call graph from a function?" | call_graph (BFS, bounded by max_depth / max_nodes) | basemind query call-graph "name" [--direction --max-depth] |
| "What implements / extends / inherits X?" | find_implementations (Rust, Python, TS/TSX, JS) | basemind query implementations "X" |
| "What imports module M?" | dependents | basemind query dependents "M" |
| "What files are indexed?" | list_files (filter by language / path_contains) | basemind query list-files [--language --path-contains] |
| "Regex over file contents?" | workspace_grep | basemind query grep "pattern" [--language --path-contains] |
| "What's indexed?" | status | basemind query status |
| "Refresh the index after editing?" | rescan (optional paths) | basemind scan |
| "Fetch the next page?" | pass next_cursor from the prior response as cursor | — |
search_symbols { needle: "MapCache" }
→ src/mcp/mod.rs:79:1 MapCache (struct)
src/mcp/mod.rs:88:1 MapCache (impl)
find_references { name: "process_file" }
→ src/scanner.rs:142:9 process_file
src/scanner.rs:201:13 process_file
outline { path: "src/mcp/tools.rs" }
→ 21 #[tool] outline (function)
112 #[tool] search_symbols (function)
find_references("bar") matches Foo::bar() and
bar() alike. There is no scope resolution — cross-check with outline when disambiguation matters.limit, default 100, max 1000). Index scanners use scan_cap = limit * 8 to
bound work on common names..basemind/ — run basemind scan first (see the basemind-scan skill). "No
indexed files" means the scan hasn't run in this repo yet.For git history / blame / diffs see basemind-git-history; for document RAG and semantic search see
basemind-documents; for agent coordination see basemind-comms.
npx claudepluginhub goldziher/basemind --plugin basemindSearches code symbols, finds function calls and references, lists file symbols, outlines files, checks index status, and searches static analysis findings.
AST-aware code search, symbol navigation, and dependency graph analysis via the gcode CLI. Essential for exploring codebases, finding functions/classes, understanding call graphs, and checking blast radius before changes.
Navigate codebases via an MCP server: symbol search, reference/caller lookups, commit history, blame, diffs, and document RAG over 90+ formats without reading source files.