<!-- REPO.MD:START -->
One file tells agents
where everything is.
repo-md walks your repository and writes REPO.md β a token-budgeted map of structure, tech stacks, and entry points. Coding agents read one file instead of exploring your tree with a dozen tool calls.
npx @i_kabir/repo-md init$ npx @i_kabir/repo-md initπ Indexing /your-repo β¦β REPO.md written (485 tokens, 1938 chars)π Injected pointer into: AGENTS.md, CLAUDE.md$
# REPO.md β your-repo<!-- REPO.MD:STRUCTURE:START -->βββ api/ β Node+Express, API layerβ βββ index.ts β entry pointβββ frontend/ β Node+Viteβββ src/ β source<!-- REPO.MD:STRUCTURE:END -->## Stack Β· ## Entry Points Β· ## Updatedβ¦
<!-- REPO.MD:HOW:START -->
Three commands. Thatβs the whole workflow.
The structural index is generated locally in seconds. AI passes are optional and only ever touch REPO.md.
Map the repository
Walks the file tree β respecting .gitignore, .bobignore, and nested ignores β detects per-folder stacks, and writes REPO.md under a hard token budget.
npx @i_kabir/repo-md initPoint agents at it
Adds a short βread REPO.md firstβ block into AGENTS.md and CLAUDE.md. Idempotent by design: run it daily, still exactly one block, your text untouched.
runs automatically after initUpdate only what changed
update re-indexes, diffs against the existing file, and rewrites only the sections that moved. An agent skill can do this live inside Bob IDE.
npx @i_kabir/repo-md update<!-- REPO.MD:VS:START -->
How it relates to the files you already have.
REPO.md doesnβt replace your agent instructions β it completes them.
<!-- REPO.MD:STATS:START -->
The token math is the point.
Every exploratory tool call an agent makes is context you pay for, twice. Real numbers from a sample repo, measured with repo-md stats:
<!-- REPO.MD:SPEC:START -->
A convention, not a dump.
Every REPO.md has the same five marker-delimited sections, so any agent β and any teammate β knows exactly whatβs where. Content outside the markers is yours and is never touched.
Compact ASCII tree with one-line purpose tags. β€6 words per annotation, no sentences.
package.json, go.mod, Cargo.toml, requirements.txt, and framework dirs become labels like Node+Express+Prisma.
index, main, app, server, cli files, listed relative to root.
Starts empty; the optional agent pass fills in naming, patterns, and tooling notes. Hand-editable forever after.
Timestamp, git branch and HEAD, uncommitted changes, recent commits β so an agent knows how stale the map is.
update rewrites only between markers. Your notes outside them survive every regeneration.
<!-- REPO.MD:INSTALL:START -->
Run it against any repo.
No install, no config file, no account. One command maps the repo youβre in.
# map the current repo + inject pointers $ npx @i_kabir/repo-md init# refresh after structural changes $ npx @i_kabir/repo-md update# install the maintenance skill for Bob IDE $ npx @i_kabir/repo-md skill --install# or install globally $ npm i -g @i_kabir/repo-md