Ever watched your coding agent grep blind through a repo, open three files it didn't need, and burn fifteen thousand tokens just to answer "who calls this function"? That's the problem dekko exists to fix.
This demo runs on dekko's own repo (commit 835733c) — clone it and run the same three commands yourself.
dekko is a fast, offline, dependency-free static code map generator and codebase indexer for LLM coding agents. It scans a repository with tree-sitter (no model tokens spent parsing) and writes:
MAP.md— a human-readable map: a per-directory overview, an embedded architecture diagram, load-bearing/orchestrator rankings, then every file's functions/methods with signatures, doc lines, and who calls and is called by whom.map.json— the same graph in machine-readable form.
On top of the map, dekko gives an agent a token-cheap way to answer
questions like "what does this file contain," "who calls this function,"
and "what do I need to safely change this" — without reading whole files.
It ships as a CLI, a Claude Code /map plugin + MCP server
(Model Context Protocol), and
works with Cline too.
The result: 10x-300x fewer tokens than a plain Read/Grep workflow on the everyday tasks (orientation, outlining a large file, a symbol's callers), measured across 7 real, unmodified open-source repos on dekko 0.43.77. The floor, a small grep-friendly local symbol, is about 2.5x. The full breakdown is right below.
Why dekko?
Most agent workflows gather context by reading whole files or grepping
across a repo — expensive, and it throws away structure (who calls
what, what a function's fan-in/fan-out looks like). dekko instead
parses the repo once into a call graph and answers targeted questions
against it. Measured across 7 real, unmodified open-source repos
(Go, TypeScript, Java, Rust, Python/C++ — up to 14k files, 172k
symbols) on dekko 0.43.77, dekko's structured queries used 10x–300x
fewer tokens than the equivalent Read/Grep workflow for the same
task (repo orientation, outlining a large file, tracing a symbol's
callers).
| Task | Example repo (scale) | dekko | Read/Grep | Savings |
|---|---|---|---|---|
Repo orientation (summary) |
awesome-go (10 files) | 359 tok | ~16,328 tok | ~45x |
Repo orientation (summary) |
claude-buddy (57 files) | ~349 tok | ~113,514 tok (every source file) | ~325x |
| Outline a large file | claude-code REPL.tsx (5,005 lines) |
~1,154 tok | ~223,963 tok | ~194x |
| Outline a large file | cline SdkController.ts (84 KB) |
1,803 tok | ~21,023 tok | ~11.7x |
| Outline a directory | zed crates/git_ui/src (32 files) |
~35,778 tok | ~418,520 tok | ~11.7x |
| Callers of a symbol | claude-code errorMessage |
~602 tok | ~18,521 tok (323+ grep hits) | ~31x |
| Callers of a symbol | zed MultiWorkspace.new (22 sites, 8 files) |
~809 tok | ~381,446 tok (read the caller files) | ~471x |
| External-API usage | claude-code chalk |
~798 tok | ~8,099 tok | ~10x |
Bundled context (workset) |
awesome-go ToHTML |
263 tok | 4,104 tok | ~16x |
dekko's cost stays roughly flat per query while Read/Grep scales
with file/repo size, so the ratio grows with scale. It's fast in
wall-clock terms too: mapping dekko's own ~4,300-symbol codebase from a
cold cache takes about 5 seconds on all cores, an incremental remap
after an edit is well under a second, and queries against the resulting
map return instantly. The win isn't universal — small, self-contained
files and already-grep-friendly local symbols see little benefit (the
floor measured was about 2.5x). See
benchmarks/real-world-repos/
for the full per-task breakdown, methodology, the original 2026-08
study, and the correctness caveats it raised and how they were closed.
Compared to tag-index tools like ctags/gtags, dekko resolves actual
call edges (not just definitions), ranks files by load-bearing-ness,
and speaks directly to agents over MCP or the CLI — no editor plugin
required.
Install
uv tool install dekko # or: pip install dekko / pipx install dekko
dekko --claude-install # add the /map command + MCP server to Claude Code, then restart
Extras (dekko[all] for ~55 more languages, dekko[search] for
embedding search), installing from a local clone, and uninstalling are
in docs/install.md.
Quick start
cd my-project
dekko map # writes .dekko/MAP.md + .dekko/map.json
dekko summary # ~40-line digest: dirs, hotspots, entry points
.dekko/ is git-ignored by default; the map regenerates on demand, so
you rarely need to run dekko map again by hand. If your repo has
languages outside the default Tier-1 set (Python, C, C++, JS/TS, Go,
Java, Rust), dekko map will say so per file; install dekko[all] for
~55 more languages (see Install) and re-run.
Documentation
- docs/install.md — installation, extras, local clone, uninstall
- docs/cli.md — every CLI command, symbol targets, excluding files, notes, daemon mode, language support
- docs/claude-code.md — the
/mapplugin, push hooks, Claude Code skills, the MCP server, and Cline
Learn more
- CHANGELOG.md — per-version history
- CONTRIBUTING.md — dev setup, testing, releasing
- benchmarks/ — token-efficiency measurements, including a 7-repo real-world comparison against a plain Read/Grep workflow
Release files for dekko 1.3.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| dekko-1.3.0.tar.gz | 2.0 MB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| dekko-1.3.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 2.6 MB
Release files / dekko-1.3.0.tar.gz
| Download URL | dekko-1.3.0.tar.gz |
|---|---|
| Size | 2.0 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
558d816bba59de7c68d66f9e68f3cc3f2cbfa3402aba3381aeb7f72f45c496d2
|
|
BLAKE2b-256 checksum How to use checksums |
80c6b79c405898bf3396b6e3fd85922a617442a57e23cdebb83fe4829eb09e56
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 25, 2026.
Transparency logRelease files / dekko-1.3.0-py3-none-any.whl
| Download URL | dekko-1.3.0-py3-none-any.whl |
|---|---|
| Size | 628.2 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
4eb3ea63840431db5892089a47aa9d27c08e227f53259dae99af9152c22451f2
|
|
BLAKE2b-256 checksum How to use checksums |
afc71aca2cf149b8bfe1938af9e2c0f64b0a4ec68f02f6b694c3760a8c980873
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 25, 2026.
Transparency log