Skip to content

docmd-io/docmd

EN  |  ES  |  DE  |  日本語  |  FR  |  中文
docmd

Production-ready documentation from Markdown, in seconds.
Zero config. AI-native. Built for developers.

npm version monthly downloads GitHub stars license


docmd default theme — light and dark mode preview



Quick Start

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

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

 v1.x.x

┌─ 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 semantic search index (multi-version)
└──────────────────────────────────────────────────────────
┌─ Publishing
│  [ DONE ] Generated robots.txt
│  [ DONE ] Generated .nojekyll (disables Jekyll on GitHub Pages)
│  [ DONE ] Generated sitemap
│  [ DONE ] Generating LLMs context files
└──────────────────────────────────────────────────────────

⬢ 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
└──────────────────────────────────────────────────────────

docmd dev server preview

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.8.7

Non-root (UID 1001) — pass -u $(id -u):$(id -g) to keep host ownership. Pin a version for reproducible builds.

Why docmd?

Feature docmd Docusaurus MkDocs VitePress Mintlify
Config required None docusaurus.config.js mkdocs.yml config.mts docs.json
JS payload ~18 kb ~250 kb ~40 kb ~50 kb ~120 kb
Navigation Instant SPA React SPA Full reload Vue SPA Hosted SPA
Versioning Native Native (complex) mike plugin Manual Native
i18n Native Native (complex) Plugin-based Native Native
Multi-project Native Plugin Plugin - -
Search Built-in Algolia (cloud) Built-in MiniSearch Cloud
AI context (llms.txt) Built-in - - - Built-in
MCP server Built-in - - - Built-in
Agent skills Built-in - - - -
Docker image Official - Official - -
Self-hosted Yes Yes Yes Yes -
Cost Free (OSS) Free (OSS) Free (OSS) Free (OSS) Freemium

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.

Tiny by default, fast everywhere

The default JavaScript payload is ~18 kb. Pages navigate as an instant SPA. The output is static HTML — 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 is built for the way documentation is read and used today:

  • MCP Serverdocmd 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, ready for any LLM.
  • Agent Skills — modular instruction sets for LLMs and IDE agents (docmd-skills).
  • Copy as Markdown / Copy Context — one-click buttons in the browser, optimised for pasting into AI chat.

Built to scale

  • Internationalisation with multi-locale builds
  • Versioning for multiple doc releases
  • Workspaces for monorepos and multi-project setups
  • Plugin system for extending core behaviour
  • 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 migrate        # import 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
search ✅ Core Offline full-text search with fuzzy matching
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)
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.

docmd live editor preview

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.