docmd
Documentation compiler that emits a docs site and the machine-readable context files AI systems read, from one Markdown source
docmd is an MIT-licensed documentation compiler: point it at a folder of Markdown files and one command builds a static docs site plus the machine-readable artifacts AI systems consume — llms.txt and llms-full.txt context files, an MCP server, and structured knowledge bundles. It had 2,437 GitHub stars as of 3 September 2026, and released 0.9.4 on 23 August 2026. For a founder the interesting part is not the site. It is that the AI-facing copy of your documentation is generated from the same source as the human-facing one, so the two cannot quietly disagree.
What docmd actually is
docmd (github.com/docmd-io/docmd) is a Node CLI that turns a folder of Markdown into a documentation site. `npx @docmd/core dev` runs in any folder with Markdown in it and serves on localhost with no config file, no frontmatter requirement and navigation derived from your directory structure; `npx @docmd/core build` writes a static site you can host anywhere. The licence is a plain MIT in the repository's LICENSE file, the project started in May 2025, and the release history is steady rather than bursty — 0.8.15 on 15 July 2026 through 0.9.4 on 23 August 2026, with 14 open issues at capture.
- It starts with nothing configured No config file is required at all. A `docmd.config.json` exists for when you want to set a title, a canonical URL, or a different source and output directory, and it can be written in TypeScript or JavaScript when you need dynamic values.
- It emits AI-facing outputs as core plugins, not add-ons The `llms`, `okf`, `search`, `seo` and `sitemap` plugins ship enabled by default, so the context files and the sitemap are produced by an ordinary build rather than by a step someone has to remember.
- It has a migration path in the box `docmd migrate` converts an existing Docusaurus, VitePress, MkDocs or Starlight setup, which matters mostly because it means trying it does not start with a rewrite.
- It handles locales and versions as first-class builds Multi-locale builds produce a per-locale search index, per-locale context files and hreflang tags, and doc versions are native rather than a plugin. If you are already translating a site, this is the part that decides whether it fits.
- Check the Node version against the package, not the README The README states Node.js 18 or newer; the published `@docmd/core` package declares `engines.node >= 20.0.0`. On a machine still running 18 the install is what will tell you, so plan for 20.
There is a hosted side too, and it is worth knowing where the line falls before you adopt it. The AI Assistant plugin does retrieval-augmented chat over your own docs using your own API key or a local model; the Cloud Relay at cloud.docmd.io exists so a purely static site can run that assistant without you standing up a backend. The compiler and every artifact below are in the MIT repository — the relay is the optional hosted convenience, which is the open core shape in miniature.
The four machine-facing artifacts, and what reads each
| Artifact | What it is | What consumes it |
|---|---|---|
| llms.txt | A short, structured index of the documentation, generated at build time | Assistants and AI crawlers deciding which pages are worth fetching |
| llms-full.txt | The documentation set flattened into one plain-text file | Models that would rather take the whole corpus in a single request |
| MCP server | `docmd mcp` exposes the docs over stdio so an agent can search, read and validate them | Coding agents in an IDE, wired up as a tool |
| OKF bundles | Structured, per-locale knowledge bundles rather than prose | AI systems ingesting the docs as data |
Here is why that list is worth more than it looks. We publish `llms.txt` and `llms-full.txt` for AgentCeres — the AI Growth Officer, at agentceres.com — and we wrote both by hand. They drifted. The files listed internal roles a customer cannot actually select, and a per-seat pricing table describing a model we have never sold. Nothing caught it for weeks, because the checks that guard our marketing copy scan the application's source directories, and those two files live in a static `public/` folder that none of them read. A generated context file removes that whole class of mistake by construction — not because generation is cleverer, but because there is no second copy left to fall out of date.
Where it fits when you are trying to get found
Documentation is one of the few things a small team writes that an answer engine can use directly: it is specific, it is dated, and it describes a product nobody else can describe as accurately. That makes it good raw material for Generative Engine Optimization, and docmd lowers the cost of making it retrievable to roughly zero. If your question is the broader one of how to get your startup cited by ChatGPT, this is one input to that, not the answer to it.
Be clear about the limit, because it is easy to overrate. Emitting a context file makes your docs cheap to retrieve; it does not make a model choose you, and no build step can. It also only covers the docs. Your pricing page, your comparison pages and your landing pages are a different corpus with different problems, and they are usually the ones a buyer's question actually lands on. If the job you have is a documentation site rather than the machine-readable half, Docusaurus is the more conventional pick and is covered separately.
The honest sequencing for a founder: build the docs because your users need them, take the context files as a free by-product, and treat the traffic as a second-order effect that may take months to show up. Publishing the files is a build flag. Being worth citing is the work, and that part is still writing — which is where AgentCeres drafts alongside you and a human approves anything that goes out.
FAQ
- Does generating an llms.txt get my site cited by ChatGPT?
- No. It makes your documentation cheap and unambiguous to retrieve, which removes one obstacle. Being cited still depends on whether the content answers the question better than the alternatives the model has, and on your site being crawlable and trustworthy in the ordinary ways. Treat the file as table stakes, not as a lever.
- Should I move off Docusaurus for this?
- Probably not for this alone. `docmd migrate` will convert a Docusaurus, VitePress, MkDocs or Starlight project, so the switch is cheap to try, but a working docs site is worth more than a marginally better one. The cases where it is worth a real look are a site you have not built yet, a payload you are unhappy with, or a genuine need for the MCP and knowledge-bundle outputs.
- What does docmd cost to run?
- The compiler is MIT and the output is a static site, so hosting it costs whatever your static host charges — often nothing. The two paid-adjacent pieces are optional: the AI Assistant runs on your own API key or a local model, and the Cloud Relay is there only if you want that assistant on a static site without operating a backend of your own.
You built it. Now grow it.
AgentCeres is a managed AI marketing team — specialists draft the SEO, social, and outreach that fill your links, you approve what ships. 14-day free trial, from $39/month.