README
ยถ
๐บ๏ธ docmap
docmap โ instant documentation structure for LLMs and humans. Navigate massive docs without burning tokens.
The Problem
Documentation files are everywhere โ READMEs, design docs, changelogs, API references, PDFs. But:
- LLMs can't open large markdown files or PDFs (token limits)
- Humans have to open each file to see what's inside
- There's no "file tree" for documentation content
- And once you find a section, there's no way to say "show me the Python code block" or "find the warning callout"
The Solution
docmap .
โญโโโโโโโโโโโโโโโโโโโโโโโโ docs/ โโโโโโโโโโโโโโโโโโโโโโโโโฎ
โ 22 files โ 645 sections โ ~109k tokens โ
โ 18 callouts ยท 41 code blocks ยท 7 tables ยท 2 math โ
โ 33 tasks (19 done) ยท 4 wiki ยท 6 embeds โ
โฐโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฏ
โโโ README.md (3.8k, 18 ยง) ยท 14 code ยท 1 tables
โโโ docs/ARCHITECTURE.md (7.7k, 33 ยง) ยท 6 code ยท 3 callouts
โโโ docs/API.md (12.1k, 47 ยง) ยท 21 code ยท 4 tables
โโโ CHANGELOG.md (15.2k, 41 ยง) ยท 2 callouts
One command. Full inventory. No LLM needed.
Install the CLI
# macOS/Linux
brew tap JordanCoin/tap && brew install docmap
# Windows
scoop bucket add docmap https://github.com/JordanCoin/scoop-docmap
scoop install docmap
Other options: Releases |
go install github.com/JordanCoin/docmap@latest
Install the Claude Code skill
docmap ships a Claude Code skill (SKILL.md) that teaches Claude when and how to use the CLI โ the drill-downs, line lookups, search across notables, and --since git integration. Pick whichever install method fits your workflow.
Option A โ Plugin marketplace (recommended)
Inside Claude Code, add this repo as a marketplace and install the plugin:
/plugin marketplace add JordanCoin/docmap
/plugin install docmap@docmap
That's it. Claude Code clones the repo, picks up .claude-plugin/marketplace.json, and installs the docmap plugin from plugins/docmap/. The skill becomes available as /docmap and Claude will auto-invoke it when you're working with markdown docs.
Update later with /plugin marketplace update.
Option B โ Personal user skill
Drop the SKILL.md into your personal Claude skills folder so it's available across every project, no marketplace needed:
mkdir -p ~/.claude/skills/docmap
curl -o ~/.claude/skills/docmap/SKILL.md \
https://raw.githubusercontent.com/JordanCoin/docmap/main/plugins/docmap/skills/docmap/SKILL.md
Option C โ Project-scoped (commit to your repo)
If you want every contributor on a specific project to auto-load the docmap skill while working in that repo, commit it to .claude/skills/:
mkdir -p .claude/skills/docmap
curl -o .claude/skills/docmap/SKILL.md \
https://raw.githubusercontent.com/JordanCoin/docmap/main/plugins/docmap/skills/docmap/SKILL.md
git add .claude/skills/docmap/SKILL.md
Browse the skill
Read the shipped SKILL.md on GitHub before installing: plugins/docmap/skills/docmap/SKILL.md.
Usage
docmap . # Map everything in a directory
docmap README.md # Deep dive single file
docmap report.pdf # PDF document structure
docmap config.yaml # YAML file structure
docmap README.md --section "API" # Filter to section
docmap README.md --expand "API" # Show section content
docmap file.md --type code # List every code block
docmap file.md --type code --lang python # Only Python code blocks
docmap file.md --type callout --kind warning # Only warning callouts
docmap file.md --type table # Every table with its headers
docmap file.md --at 154 # What's at line 154?
docmap file.md --since HEAD~5 # Constructs on lines changed since a git ref
docmap file.md --search "auth" # Search titles, content, and notables
docmap . --refs # Cross-references between docs
docmap file.md --json # Full typed AST as JSON
Output
Single file deep dive
docmap docs/ARCHITECTURE.md
โญโโโโโโโโโโโโโโโโ ARCHITECTURE.md โโโโโโโโโโโโโโโโโโฎ
โ Sections: 33 โ ~7.7k tokens โ
โ 3 callouts ยท 6 code blocks ยท 2 tables โ
โฐโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฏ
โโโ System Design (2.1k) ยท core, actor model
โ โโโ Vision (214)
โ โโโ Core Principles (412) ยท Headless-first, Plan before execute
โ โโโ Architecture Overview (789) ยท go :42-68, mermaid :74-92
โโโ Components (3.2k)
โ โโโ Scheduler (892) ยท note :118 Schedulers run in their own actor
โ โโโ Orchestrator (1.1k) ยท 2 tables :156 Name, :172 State
โ โโโ Memory (RAG) (1.2k) ยท go :214-245, sql :250-268
โโโ Security (1.4k)
โโโ (empty heading)
Every section shows its token count plus a dense inline annotation of what's inside it. Code blocks, callouts, tables, and math blocks all carry :line jump targets.
Drilling into one construct type
Want every Python code block? Every warning? Every table?
docmap file.md --type code --lang python
โญโโโโ file.md โ code blocks โโโโโฎ
โ 3 code blocks in 2 sections โ
โฐโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฏ
Installation > Setup (214)
:34-41 python
Usage > Examples (1.1k)
:120-134 python
:142-156 python
Each hit carries the exact line range and breadcrumb. Drop that into a grep, an editor, or hand it to another agent.
What's at line N?
docmap file.md --at 154
โญโโโโ file.md โ line 154 โโโโโฎ
โ code_block โ
โฐโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฏ
Section: Installation > Setup
Node: code L154-156 lang=python
Changed since a git ref
docmap README.md --since HEAD~10
โญโโโโ README.md โ since HEAD~10 โโโโโฎ
โ 49 changed lines across 8 sections โ
โฐโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฏ
docmap > Usage (110)
code L64-71 lang=bash
docmap > PDF Support (231)
code L132-133 lang=bash
code L136-145 lang=(none)
Uses git diff --unified=0 under the hood.
PDF support
PDFs with outlines show document structure; tokens are estimated. PDFs without outlines fall back to page-by-page. Scanned/image-only PDFs show a page count but no text.
YAML support
YAML files map keys to sections with nested children. Sequences use name/id/title fields for titles when available.
References mode
See how docs link to each other:
docmap . --refs
What docmap recognizes
Full CommonMark + GitHub Flavored Markdown + Obsidian extensions:
- Headings โ ATX and Setext (underline) style, all 6 levels
- Frontmatter โ YAML, TOML, JSON at file start
- Callouts โ GFM alerts:
> [!NOTE]/[!TIP]/[!IMPORTANT]/[!WARNING]/[!CAUTION] - Tables โ with column alignment and inline content
- Code blocks โ fenced with language tag, indented, tilde-fenced, with attributes
- Lists & tasks โ ordered/unordered, nested, tight/loose, GFM task checkboxes
- Blockquotes โ plain, nested, lazy continuation
- Math โ inline
$โฆ$, block$$โฆ$$and\[โฆ\] - Footnotes โ references and multi-paragraph definitions
- Definition lists โ Pandoc-style
- HTML blocks โ
<div>,<details>,<kbd>, comments, entities - Link references โ
[label]: url "title", reference-style links and images - Autolinks โ angle-bracket URLs, GFM bare URLs, email addresses
- GFM extras โ
@mentions,#issues, commit SHA autolinks,:emoji:shortcodes - Obsidian โ
[[wiki links]],[[Page|alias]],[[Page#header]],[[Page#^block]],![[embeds]]with sizing
Why docmap?
| Before | After |
|---|---|
| "Read this 100k token doc" | docmap --type code file.md โ 8 jump targets |
| Open 20 files to find something | docmap . inventory header |
| Scroll through giant CHANGELOGs | --at 2400 โ which section am I in? |
| Guess what's in each doc | Every file has a one-line notable digest |
| grep for "warning" in callouts | --type callout --kind warning |
Sister tool
docmap is the documentation companion to codemap:
codemap . # code structure
docmap . # doc structure
Together: complete spatial awareness of any repository.
How it works
Markdown: parsed with goldmark (CommonMark + GFM extensions) plus post-passes for math blocks, GFM callouts, Obsidian wiki links, HTML entities, @mentions, #issue refs, commit SHAs, and emoji shortcodes. The result is a typed AST with 40+ node kinds that the renderer compresses into the dense tree view.
PDF: outline/bookmarks parsed by ledongthuc/pdf, falling back to per-page structure if no outline exists.
YAML: parsed by yaml.v3 with keys mapped to sections.
No API calls. Just fast, local parsing.
JSON output
docmap file.md --json emits the full typed AST alongside the legacy sections tree:
{
"documents": [{
"filename": "file.md",
"summary": {
"callouts": 5, "tables": 4, "code_blocks": 8,
"tasks": 6, "tasks_checked": 3, "wiki_links": 4
},
"sections": [...],
"nodes": [
{ "kind": "frontmatter", "format": "yaml", "raw": "..." },
{ "kind": "heading", "level": 1, "title": "..." },
{ "kind": "code_block", "language": "python",
"line_start": 154, "line_end": 156, "code": "..." },
{ "kind": "callout", "variant": "warning",
"line_start": 228, "line_end": 230 }
]
}]
}
Pipe it into jq, another tool, or hand it to an agent.
Contributing
- Fork โ 2. Branch โ 3. Commit โ 4. PR
See CONTRIBUTING.md for details.
License
MIT
Documentation
ยถ
There is no documentation for this package.