docmd is a free, open source documentation & knowledge base project written in TypeScript and released under MIT. It has 2,546 GitHub stars, 144 forks and 10 open issues, and was last pushed 3 days ago. On this registry it ranks #56 of 100 tracked projects in Documentation & Knowledge Base, with 5 head-to-head comparisons available. It gained 46 stars over the last 30 tracked days.

What is docmd?

docmd is an MIT-licensed TypeScript documentation compiler that turns one Markdown source into a website, an offline search index, AI context files, and structured knowledge formats for human readers and machines at the same time.

What it is

docmd lives in the Node.js and npm ecosystem (Node.js 18+), publishes a Docker image to GitHub Container Registry, and targets static hosts rather than an application server of its own. Point it at any folder of Markdown files and it compiles that source into a static single-page site whose navigation comes from the file structure, with no config file, no frontmatter, and no framework to learn. It sits in the Content & Publishing / Documentation & Knowledge Base category, is written in TypeScript under the MIT licence, and has a hosted homepage at docmd.io.

The problem it solves is fragmentation. A conventional documentation generator produces a website and stops, leaving teams to assemble separate pipelines for search, for llms.txt context, for MCP endpoints that IDE agents can query, and for RAG knowledge bundles. docmd compiles all of these from the same Markdown in a single build: static website, offline full-text search index, llms.txt, OKF bundles, sitemap and SEO metadata, robots.txt and Open Graph tags, an MCP server, and an optional Cloud Relay.

Key capabilities

  • Zero-config builds: navigation derived from the file structure, with no config file or frontmatter required.
  • Static output with no framework runtime — static HTML and minimal vanilla JavaScript, navigated as an instant SPA.
  • Offline full-text search index built in, with no cloud service required.
  • llms.txt AI context files and OKF structured knowledge bundles for RAG pipelines and knowledge systems.
  • MCP server endpoints for IDE agents such as Cursor and Claude Code.
  • AI Assistant through @docmd/plugin-ai: RAG chat grounded in the documentation, using your own API key or a local AI provider, with 100+ providers supported through AIPlug.
  • Publishing extras: generated sitemap, robots.txt, .nojekyll for GitHub Pages, canonical URLs and Open Graph metadata, plus multi-version and multi-locale builds (seven locales).

Who uses it and how

  • Documentation teams shipping to Vercel, Cloudflare Pages, Netlify, GitHub Pages, or any static host: build and deploy the generated site/ directory.
  • Engineering teams keeping docs as Markdown in a repository: point docmd at the folder, and git metadata is synced during the build.
  • Projects maintaining several documentation versions and locales at once: the build output indexes multiple versions and seven locales in one pass.
  • Teams whose developers work in IDEs with coding agents: the same build serves MCP endpoints to tools like Cursor and Claude Code.
  • Teams feeding retrieval pipelines: OKF bundles and RAG embeddings come from the same source that renders the public site.

Getting started

Run npx @docmd/core dev inside any folder of Markdown files — no install step required — then build for deployment with npx @docmd/core build. It also installs globally via npm (npm install -g @docmd/core) or pnpm, and runs as a container with docker run -p 3000:3000 ghcr.io/docmd-io/docmd:0.9.0.

How it compares

The facts name Docusaurus and Mintlify as the tools docmd compares itself against, with a fuller comparison page at docs.docmd.io/comparison. docmd's stated distinction is scope: other documentation tools build a website, while docmd also emits search, llms.txt, MCP endpoints, and OKF bundles from the same source, and it claims no other documentation tool generates all of these together.

When to use it — and when not to

Self-hosting docmd means running a Node.js 18+ build (locally, in CI, or through the Docker image) and serving static files; the AI Assistant additionally needs an API key, a local AI provider, or the hosted Cloud Relay, while the provided facts mention no database, object storage, or SMTP dependency. Teams that need a framework runtime and component-level templating in the published site should not pick it, because the output is static HTML with minimal vanilla JavaScript. The current line is the 0.9 series rather than a 1.0 release, and Docker builds should pin a version tag for reproducibility, so expect configuration and output details to keep moving.

project readme (upstream, from github) — read inline
EN  |  DE  |  中文  |  ES  |  日本語  |  FR  |  RU docmd

Documentation for humans and machines.
One Markdown source → website, search, AI context, and agent protocols. All generated together.

npm version monthly downloads GitHub stars license

Website  ·  Documentation  ·  AI Cloud Relay  ·  Live Editor  ·  Agent Skills  ·  Report a Bug


docmd default theme — light and dark mode preview



✦ 0.9 Series — Documentation for Humans and Machines

docmd compiles your Markdown into everything the modern stack needs — a fast static website for human readers, search indexes, AI context files (llms.txt), MCP server endpoints for coding agents, and structured knowledge bundles (OKF) for RAG pipelines.

One source. One build. Every output.

Follow the 0.9 roadmap →

Quick Start

Run docmd in any folder with Markdown files — no install needed:

npx @docmd/core dev
Opens at http://localhost:3000
    _                 _ 
  _| |___ ___ _____ _| |
 | . | . |  _|     | . |
 |___|___|___|_|_|_|___|

 v0.9.0

BUILD
  Engine          JS
  Source          docs/
  Output          site/
  Versions        2 (06, 05)
  Locales         7 (en, hi, zh, es, de, ja, fr)

DATA INDEXING
  [ DONE ] Syncing git metadata
  [ DONE ] Building search index & RAG embeddings (multi-version)
  [ DONE ] Generating AI Assistant RAG context

PUBLISHING
  [ DONE ] Generated robots.txt
  [ DONE ] Generated .nojekyll (disables Jekyll on GitHub Pages)
  [ DONE ] Generated sitemap
  [ DONE ] Generating LLMs context files (llms.txt)
  [ DONE ] Generating OKF bundles

⬢ Initial build completed in 1.2s.

WATCHING
  Source          ./docs
  Config          ./docmd.config.json
  Assets          ./assets

DEVELOPMENT SERVER RUNNING
  Local Access    http://127.0.0.1:3000
  Network Access  http://192.168.1.6:3000
  Serving from    ./site

Navigation is generated from your file structure. No config file, no frontmatter required, no framework to learn.

When you're ready to ship:

npx @docmd/core build

This outputs a highly optimized static site (SPA) ready for deployment to Vercel, Cloudflare Pages, Netlify, GitHub Pages, or any static host.

Requirements: Node.js 18+

Or install globally / via Docker
# Install globally via npm
npm install -g @docmd/core

# Or via pnpm
pnpm add -g @docmd/core

# Run it
docmd dev    # start dev server
docmd build  # build for deployment

Or run via Docker:

docker run -p 3000:3000 ghcr.io/docmd-io/docmd:0.9.0

Pin a version for reproducible builds.

Why docmd?

Other documentation tools build a website. docmd builds an entire knowledge ecosystem:

Markdown source
     │
     ▼  docmd
     │
     ├──→  Static website       (for browsers and readers)
     ├──→  Search index         (offline full-text, no cloud needed)
     ├──→  llms.txt             (for LLMs and chatbots)
     ├──→  OKF bundles          (for RAG pipelines and knowledge systems)
     ├──→  Sitemap + SEO meta   (for search engines)
     ├──→  robots.txt + OG tags (for crawlers and social cards)
     ├──→  MCP server           (for IDE agents like Cursor, Claude Code)
     └──→  Cloud Relay          (hosted AI search for static sites)

One source, one command. No other documentation tool generates all of these together.

image

**See Complete Comparison with Docusaurus, Mintlify and others →"

Features

Zero config, instant start

Point docmd at any Markdown folder and it runs. Navigation is built automatically from your file structure. You can write your first doc and have it live in under a minute — no boilerplate, no build pipeline to configure, no decisions to make upfront.

Lightweight by default, fast everywhere

No framework runtime — the output is static HTML and minimal vanilla JavaScript. Pages navigate as an instant SPA. SEO-optimised, with sitemap, canonical URLs, and Open Graph metadata included. Offline full-text search is built in, no cloud service required.

AI-native

docmd treats AI as a first-class way to consume documentation — without replacing the documentation itself.

  • AI Assistant (@docmd/plugin-ai) — RAG-powered chat grounded in your documentation. Use your own API key or connect a local AI provider, with support for a wide range of 100+ providers through AIPlug.
  • Cloud Relay — enable the AI Assistant on static documentation without running your own AI backend. Try it →
  • MCP Server — docmd mcp exposes your docs to AI agents over stdio, letting them search, read, and validate content directly.
  • Context (llms.txt / llms-full.txt) — complete documentation context generated at build time.
  • Agent Skills — modular instruction sets for LLMs and IDE agents.
  • Open Knowledge Format (OKF) — structured, multi-locale knowledge bundles for AI systems.
  • Copy as Markdown / Copy Context — one-click context extraction directly from the browser.

Built to scale

  • Internationalisation with multi-locale builds (per-locale search index, llms, okf, hreflang)
  • Versioning for multiple doc releases (with auto-detection of the current version)
  • Workspaces for monorepos and multi-project setups
  • Plugin system for extending core behaviour (per-hook return-type validation, async-friendly)
  • Full theming support, built-in templates, custom CSS/JS, light/dark mode

CLI

docmd dev            # local development server
docmd build          # build for deployment
docmd live           # browser-based Live Editor
docmd init           # scaffold a new docmd.config.json in the current folder
docmd stop           # stop any running `docmd dev` / `docmd live` servers
docmd doctor         # pre-flight check: config + plugin install status
docmd migrate        # migrate to docmd from Docusaurus, VitePress, MkDocs, or Starlight
docmd deploy         # generate config for Docker, NGINX, Caddy, Vercel, Netlify
docmd validate       # check all internal links
docmd mcp            # run as an MCP server over stdio
docmd add <name>     # install a plugin or template

Plugins

Core functionality is powered by a robust plugin system. The essentials are included by default, while optional plugins can be added for specific needs.

Plugin Status Description
ai Core RAG-powered AI Assistant with BYOK, local providers, and Cloud Relay
search Core Offline full-text search (keyword + optional semantic via docmd-search)
seo Core SEO tags and Open Graph metadata
sitemap Core Generates sitemap.xml
git Core Git commit history and last-updated dates
analytics Core Lightweight analytics integration
llms Core AI context generation (llms.txt / llms-full.txt)
okf Core Open Knowledge Format bundles for AI agents (per-locale)
mermaid Core Mermaid diagram support
openapi Core Build-time OpenAPI 3.x spec renderer
pwa Optional Progressive Web App — offline navigation
threads Optional Inline discussion threads (by @svallory)
math Optional KaTeX / LaTeX math rendering

Install optional plugins:

docmd add <plugin-name>

Build your own: Plugin Development Guide

Configuration

No configuration is required to get started. Add a docmd.config.json (or .ts / .js) in your project root only when you need more control:

{
  "title": "My Project",
  "url": "https://docs.myproject.com",
  "src": "./docs",
  "out": "./dist"
}

TypeScript and JavaScript config files are supported for dynamic values.

Full reference: Configuration Overview

Project Structure

my-docs/
├── docs/                ← Your markdown files
├── assets/              ← Images and static files
├── docmd.config.json    ← Optional configuration
└── package.json

Live Editor

A browser-based editor for writing and previewing docs — no local setup required.

Try it at live.docmd.io

Programmatic API

Use docmd in Node.js scripts, CI pipelines, or custom build steps. (Supports both CommonJS and ESM).

import { build } from '@docmd/core';

await build('./docmd.config.json', { isDev: false });

Full reference: Node API

Community

Support

  • Getting the word out is the most direct way to support docmd's development. Share it on X with friends or give it a star.
  • If docmd saves you time, a GitHub sponsorship goes a long way.
  • Got ideas or bugs? Open an issue or PR, feel free to contribute your own plugins.

License

MIT License. See LICENSE for details.

Frequently asked questions

Is docmd free to use?

docmd is open source under the MIT licence. There is no licence fee and no seat count — you can self-host it or, where the project offers one, pay a vendor for a managed version instead.

What does docmd do?

Documentation compiler for humans and machines. One Markdown source to website, search, AI context, and knowledge formats together.

What is docmd written in?

docmd is primarily written in TypeScript. Its source is publicly available at https://github.com/docmd-io/docmd, and it has 2,546 GitHub stars.