TLDR Code Analysis
Standalone Codex fallback
cc-settings does not install the TLDR MCP into standalone Codex. Ignore the
Claude context, allowed-tools, and requires frontmatter in that host and
keep the task read-only with native tools. Use rg --files to map the tree,
rg -n '<symbol|pattern>' for exact references, direct import searches such as
rg -n 'from .*<module>|require\(.*<module>', and caller searches for the
symbol followed by focused file reads. Use git diff --name-only plus test-name
and import searches for change impact.
Do not invoke or claim to have invoked a TLDR MCP in standalone Codex. Report the native searches actually run and their limitations. The remaining workflow is for Claude hosts with the configured TLDR MCP.
Token-efficient codebase analysis behind the tldr MCP server. It returns the symbols, edges, and slices you asked for instead of whole file bodies, so a question that would cost several full reads costs one small structured answer.
No measured savings figure is published here on purpose. cc-settings carried a "~95% fewer tokens" claim for months with no benchmark behind it anywhere in the repo — the kind of number
AGENTS.mdnow forbids (No savings against a run that never happened). To get a real figure, answer the same question both ways and compare the token counts your own session reports.
The engine is provisioned by cc-settings. The tool names below are the stable contract; only the engine behind them changes. Select with CC_CODE_INTEL_ENGINE.
Default: native-ts — a zero-dependency TypeScript-compiler codemap. TS/JS only. Implements structure, tree, extract, arch, imports, importers, calls, context, impact, change_impact. Everything else returns unsupported-by-native-engine, which means the analysis did not run — fall back to Grep, never report it as an empty finding.
Opt-in: CC_CODE_INTEL_ENGINE=llm-tldr — multi-language, plus semantic, dead, diagnostics, slice, cfg, dfg, search. Use it on Rust/Python/Go repos. Selecting it means re-running setup.sh with the variable set (see Prerequisites), not just exporting it. Two caveats, both measured 2026-07-27:
languagedoes NOT auto-detect — it defaults topython. On a TS repo, omitting it returns{"status":"ok"}with an EMPTY result rather than an error, so a wrong answer is indistinguishable from a true negative. Always passlanguageexplicitly (typescript,go,rust, … orall). The MCPimpactandsemantictools expose nolanguageparameter at all, so they cannot be fixed this way — cross-check withGrep.- Upstream is archived (
parcadei/llm-tldr, 2026-07-13). Neither caveat will be fixed upstream.
Quick Reference
| Task | Command |
|---|---|
| "How does X work?" | semantic† → context |
| "Who calls X?" | impact |
| "What would break?" | impact + change_impact |
| "Why is X null here?" | slice† (backward) |
| "What does X affect?" | slice† (forward) |
| "Project structure?" | arch + structure |
| "Find auth code" | semantic "authentication"† |
| "Data flow in function" | dfg† |
| "Control flow" | cfg† |
| "Find dead code" | dead† |
| "Type errors?" | diagnostics† |
| "File tree" | tree |
| "Regex search" | search† |
† Not implemented by the default native-ts engine — returns
unsupported-by-native-engine unless you opt into llm-tldr. Treat that as
"did not run", not "found nothing", and fall back to Grep.
Commands
Semantic Search (Natural Language)
Find code by meaning, not exact text. Uses 5-layer embeddings (AST + call graph + CFG + DFG + PDG):
mcp__tldr__semantic { "project": ".", "query": "user authentication flow" }
mcp__tldr__semantic { "project": ".", "query": "error handling" }
Function Context
Get LLM-ready summary instead of reading entire file:
mcp__tldr__context { "project": ".", "entry": "handleLogin", "depth": 2 }
Impact Analysis (Before Refactoring)
Find all callers - critical before changing any function:
mcp__tldr__impact { "project": ".", "function": "useAuth" }
Architecture Overview
Understand project layers and dependencies:
mcp__tldr__arch { "project": "." }
Program Slice (Debugging)
What affects a specific line (backward) or what it affects (forward):
mcp__tldr__slice {
"file": "src/auth.ts",
"function": "login",
"line": 42,
"direction": "backward",
"variable": "user"
}
Call Graph
Cross-file function call relationships (pass language explicitly):
mcp__tldr__calls { "project": "." }
Data Flow Graph
Variable references and def-use chains:
mcp__tldr__dfg { "file": "src/auth.ts", "function": "validateToken" }
Control Flow Graph
Basic blocks and branching:
mcp__tldr__cfg { "file": "src/auth.ts", "function": "handleRequest" }
Change Impact (Affected Tests)
Find tests affected by changed files (auto-detects from git diff):
mcp__tldr__change_impact { "project": "." }
Dead Code Detection
Find unreachable code (pass language explicitly):
mcp__tldr__dead { "project": "." }
Import Analysis
Parse imports or find importers:
mcp__tldr__imports { "file": "src/utils.ts" }
mcp__tldr__importers { "project": ".", "module": "auth" }
Diagnostics (Type/Lint)
Type checking and linting:
mcp__tldr__diagnostics { "path": "src/" }
File Tree
Quick project structure overview:
mcp__tldr__tree { "project": "." }
mcp__tldr__tree { "project": "src/", "extensions": [".ts", ".tsx"] }
Regex Search
Search files by regex pattern:
mcp__tldr__search { "project": ".", "pattern": "TODO|FIXME|HACK" }
Structure Overview
Functions, classes, methods per file (pass language explicitly):
mcp__tldr__structure { "project": ".", "max_results": 50 }
Full File Extract
Complete code structure from a single file (imports, functions, classes, call graph):
mcp__tldr__extract { "file": "src/auth.ts" }
Daemon Status
Check uptime and cache statistics:
mcp__tldr__status { "project": "." }
Prerequisites
The engine behind tldr is provisioned automatically by cc-settings (setup.sh).
Default engine: native-ts — no Python, no daemon, nothing to install.
See src/lib/code-intel-engine.ts.
Opt into llm-tldr for non-TS/JS repos or the analysis tools native-ts lacks.
Exporting the variable alone is not enough — the tldr entry in
~/.claude.json is written at install time, so a shell-only export leaves the
hooks on llm-tldr while the MCP server stays on native-ts. Re-run the installer
with the variable set, then restart Claude Code:
CC_CODE_INTEL_ENGINE=llm-tldr bash setup.sh # rewrites the MCP entry
pipx install llm-tldr # only if provisioning manually
tldr daemon start # background service (~100ms queries)
tldr semantic index . --lang typescript # per-language; the default index is empty
Rules
- On the opt-in llm-tldr engine, pass the
languageparam on every call: it defaults topythonand returns empty results for other languages without an error. The default native-ts engine detects the language itself. - Reach for
context/structure/callsBEFORE reading large files — with an explicit language. - Before refactoring, do NOT trust an empty
impact. On non-Python code it returns{"status":"ok","callers":[]}whether or not callers exist, and it has nolanguageparameter to fix that. Confirm withGrepormcp__tldr__calls(explicit language) before concluding nothing calls a symbol. semanticneeds an index built with the right language (tldr semantic index . --lang <lang>) and still ranks poorly on this repo — treat its hits as candidates to verify, not answers.- Use
grepfor exact string matching — and as the cross-check whenever a tldr result is empty.
Output
Return findings with:
- Relevant code: Key functions/files found
- Call chain: How things connect
- Recommendations: Next steps based on analysis
- Store as learning if discovering non-obvious patterns