Local codebase intelligence for AI agents — a SQLite index of symbols, imports, and calls. SQL and recipes instead of scanning the tree.
Codemap exposes 21 tools with explicit schemas and descriptions. Most tools have clear verb-noun naming (query, audit, validate, trace, explore). However, descriptions vary significantly in quality and depth. Many tools lack sufficient detail about when to use them vs. alternatives, expected output structure, and error recovery paths. Parameter descriptions are present but often generic. Several tools (audit, context, validate, show, snippet, impact, affected, trace, explore, node) have minimal descriptions (under 50 chars) that fail to guide LLM selection. Output schemas are not documented in the tool definitions themselves, LLMs must infer structure from descriptions alone. Error handling guidance is absent across all tools.
Find tests affected by code changes.
Apply code transformations from a recipe or diff.
Apply transformations from a diff input.
Apply transformations to specific rows from a query result.
Audit the codebase for issues. Supports baseline comparison and various output formats.
Build a context envelope for the codebase suitable for LLM consumption.
Delete a named baseline.
Minimal descriptions on 9 tools (audit, context, validate, show, impact, affected, trace, explore, node), under 50 chars, insufficient for LLM tool selection.
No output schemas documented in tool definitions. LLMs cannot infer what fields to expect from query results, audit output, or graph traversal responses. Agents must guess structure, risking failed downstream chaining.
No error handling guidance. Tools do not document what errors can occur, whether they are retryable, or what the LLM should do next. E.g., 'query' with invalid SQL returns an error, but the description does not explain recovery.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 57 | 2026-07-28+ | v2 |
Explore the codebase graph starting from a symbol.
Analyze the impact of changes on the codebase.
Ingest code churn data into the index.
Ingest code coverage data into the index.
List all saved baselines.
Get detailed information about a specific node in the codebase graph.
Run one read-only SQL statement against the codemap index (default `.codemap/index.db`). Returns the JSON envelope `codemap query --json` would print: row array by default, {count} under `summary`, {group_by, groups} under `group_by`, baseline diff under `baseline` (incompatible with non-json `format` / `group_by`). Pass `format: "sarif"` / `"annotations"` / `"mermaid"` / `"diff"` / `"diff-json"` / `"codeclimate"` / `"badge"` to receive a formatted payload (incompatible with `summary` / `group_by` / `baseline`). With `format: "badge"`, optional `badge_style: "markdown"` (default) or `"json"` (`codemap-badge/v1`). Mermaid requires `{from, to, label?, kind?}` rows; diff requires `{file_path, line_start, before_pattern, after_pattern}` rows; codeclimate/badge require locatable rows (badge counts them; codeclimate emits one issue per locatable row).
Run N read-only SQL statements in one round-trip. Each item is either a bare SQL string (inherits batch-wide flags) or an object {sql, summary?, changed_since?, group_by?} overriding batch-wide flags per-key. Returns an N-element array; per-element shape mirrors single `query`'s output for that statement's effective flag set.
Run a recipe by id (bundled or project-local). Output rows carry per-row `actions` hints (recipe-only — `query` never adds them). Parametrised recipes accept `params: {key: value}` validated against recipe frontmatter. Compose with `summary` / `changed_since` / `group_by` / `baseline` exactly like `query` (`baseline` adds `actions` on `added` rows only). Pass `format: "sarif"` / `"annotations"` / `"mermaid"` / `"diff"` / `"diff-json"` / `"codeclimate"` / `"badge"` to receive a formatted payload (incompatible with `summary` / `group_by` / `baseline`); SARIF rule id derives from the recipe id (`codemap.<recipe>`). With `format: "badge"`, optional `badge_style: "markdown"` (default) or `"json"` (`codemap-badge/v1`). codeclimate/badge require locatable rows (badge counts them; codeclimate emits one issue per locatable row). List available recipes via the `codemap://recipes` resource.
Save the current query results as a named baseline for future comparison.
Show detailed information about a symbol or file.
Extract a code snippet from a file.
Trace call paths through the codebase.
Validate the codebase index for consistency and correctness.
Destructive tools (apply, apply_rows, apply_diff_input, drop_baseline) lack confirmation or dry-run support. No description warns that these operations are irreversible or suggests a preview step before commit.
Parameter descriptions are generic or missing context. E.g., 'focus' in context tool is described as 'File paths or symbols to focus on' but does not explain the expected format, whether paths are relative/absolute, or how to distinguish files from symbols.