Your agent doesn't need
the whole knowledge base.It needs one section.
vexp indexes every Markdown heading as a node in a local graph. When your AI agent asks a question, it gets the matching sections with their tables, instead of whole files to read or a wall of grep hits.
One-time email with install links. No spam.
Free up to 2,000 nodes · No account · Your documents never leave your machine
grep finds the word. It cannot tell you which policy it sits in, or under which heading.
Chunked vector search hands back paragraphs cut loose from their headings: too much noise, or the one section you needed missing.
So you keep an index by hand. A manifest, a table of contents, tags that stopped being true months ago.
And the agent still opens file after file to answer one question, paying for every line it reads.
Prose has structure. Your headings already say what belongs to what.
From the field
6,000 Markdown files. One hand-built index, deleted.
An enterprise user managing 6,000 Markdown files ran vexp against the whole repository through Claude Code. Their numbers and their queries, published with permission.
6,000+
Markdown files
~70,000
indexed nodes
1
hand-built index retired
Asked
Recent vendor BPO agreements and schedule commitments, across active drafts and past archives.
Came back
The exact nested section and its schedule table, ranked #1.
Asked
How should we handle task management?
No file path, no symbol name, no word that matches a title.
Came back
The task lifecycle schema, then the section that defines the split: 9 actions handled by AI, 6 decisions by humans, 4 records by Notion.
The question goes to the agent, and the agent calls vexp once. The agent brings the intent; the graph brings the exact section.
“I officially deleted my manual MANIFEST indexing system today. Vexp has completely superseded months of custom-built knowledge management tooling in my workflow.”
Enterprise user
Managing 6,000 Markdown files
“A standard grep for that query returns 0 hits (or 1,000+ noisy lines if split).”
How it works
Headings are the index you already wrote.
vexp treats a Markdown heading the way it treats a function: a node with a name, a body and a place in a tree. No embeddings, no chunking, nothing to host.
Index
Every .md, .mdx and .markdown file becomes a Document node. Every heading becomes a Section nested under its parent, carrying its own text and tables. Every URL becomes a Link. It all lives in local SQLite and follows your edits.
Ask
Ask your agent the way you would ask a colleague. It turns the question into one run_pipeline call before it starts opening files.
Receive
Full-text and TF-IDF search find the candidate sections, the graph ranks them, and the answer stays inside a token budget. Every result carries the reason it ranked.
The section and its table go to the agent. Its siblings stay closed.
Know what you are getting
What it is. What it isn't.
vexp was built for code and turned out to work on prose with structure. Here is where that holds, and where it stops.
What it is
A structural index, on your disk.
Documents, sections and links in a local SQLite graph. Nothing to host, no account, and your documents never leave your machine.
Section-level answers for the agent you already use.
Claude Code, Cursor, Codex, Copilot and the rest of the 17 supported agents call it over MCP.
Ranking you can audit.
Every result says why it ranked. Name a file you expected with vexp capsule --explain and vexp tells you where it dropped out.
What it isn't
Not semantic search.
No embeddings, no vector database. vexp matches the words your agent sends against names, headings and text, then lets structure decide.
Not a chat app.
vexp answers agents, not people. You keep the agent and the editor you have.
Not for flat text.
A file with no headings is a single node, so vexp can only hand back the whole file. Retrieval is as sharp as your headings are.
Not neutral about records.
Dated files and folders named notes/, journal/ or blog/ are read as records of what happened, and rank below the documents that define things.
The exact rules are in the docs: Documentation-only repositories.
Setup
Two commands, then ask.
A folder with no source code at all is a valid workspace. No manifest to write, no tags to maintain.
Install the CLI.
npm install -g vexp-cli
Runs on Windows, macOS and Linux.
Run setup in your docs folder.
cd your-docs && vexp setup
Indexes the folder, detects your agents and writes their MCP configuration.
Ask.
Who approves a refund over the limit?
Put the question to your agent. It calls vexp and reads the sections that come back.
Using the VS Code extension? In a Markdown-only folder run vexp setup first: the extension activates once the index exists.
Every document, heading and link is a node. Starter is free up to 2,000 nodes, Pro covers 50,000, Team is unlimited. See pricing
Get started
Stop maintaining the index. Your headings are one.
One-time email with install links. No spam.
Free up to 2,000 nodes · No account · Your documents never leave your machine