mkdocs-monorepo-plugin
Plugin for adding monorepository support in Mkdocs.
What it is and what it does
This plugin extends Mkdocs to support documentation structures spread across multiple folders and configuration files, rather than requiring all docs in a single location. It introduces an `!include` directive in mkdocs.yml that lets you reference separate mkdocs.yml files from subdirectories, which the plugin then merges into a unified site. This is designed for large codebases—especially monorepos—where different teams own different parts of the codebase and want to maintain their documentation close to their code.
The plugin preserves the normal Mkdocs developer experience: you can run `mkdocs serve` at the root to see the merged documentation with live reload, or in a subfolder to work on a single section. It also supports glob-style patterns (via `*include`) to automatically include multiple matching configuration files without listing each one individually.
Use it for:
- Building unified API documentation for a monorepo where each API version lives in its own folder with its own mkdocs.yml
- Organizing documentation by team ownership in a large codebase, with each team maintaining their own docs folder and navigation
- Merging documentation from multiple Git repositories using submodules into a single published site
- Maintaining separate changelogs and reference docs for different components while presenting them under one navigation structure
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
Enables building multiple sets of documentation from separate folders and mkdocs.yml files within a single Mkdocs site, using an `!include` syntax to merge navigation and content.
Yes, if you have a monorepo or multi-team codebase and need to organize documentation across multiple folders. The plugin is stable and has low install friction. However, note that maintenance is aging (435 days since last release); verify that it works with your specific mkdocs version and plugin ecosystem before committing to it for a critical project.
Install
mkdocs-monorepo-plugin on PyPI
pip
pip install mkdocs-monorepo-pluginuv
uv add mkdocs-monorepo-pluginpoetry
poetry add mkdocs-monorepo-pluginInstalling mkdocs-monorepo-plugin
Before you install
Low install friction with only two runtime dependencies (mkdocs and python-slugify). Maintenance status is aging—last release was 435 days ago—but the repository remains active and the package is marked Production/Stable.
License in practice
Licensed under Apache-2.0 (permissive), allowing commercial and private use with minimal restrictions; you must include a copy of the license and state significant changes.
Quickstart
pip install mkdocs-monorepo-plugin
# In root mkdocs.yml:
nav:
- Home: 'index.md'
- API:
- v1: '!include ./v1/mkdocs.yml'
- v2: '!include ./v2/mkdocs.yml'
plugins:
- monorepo
Requires Python 3.9 or later and mkdocs 1.0.4 or above. Each included mkdocs.yml must have a corresponding docs folder in the same directory.
Verify before relying
- Whether Git Submodules integration for cross-repository documentation merging is fully functional in current versions
- Compatibility with mkdocs plugins beyond the core ecosystem
- Performance characteristics when merging documentation from many subfolders
Package facts
| License | Apache-2.0 (permissive) |
| Python support | supports the current Python release (>=3.9) |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | 2 — mkdocs, python-slugify |
| Maintenance | aging — 435 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 2,021,911/month — #3,358 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: mkdocs_monorepo_plugin-1.1.2-py3-none-any.whl
Keywords: mkdocs, monorepo
Tags
More Documentation packages
Docutils converts plaintext documentation in…
unclear · top 1,000 on PyPI
SphinxSphinx generates professional documentation…
permissive · top 1,000 on PyPI
griffeGriffe extracts the complete structure and…
permissive · top 1,000 on PyPI
sphinxcontrib-serializinghtmlA Sphinx extension that outputs documentation…
permissive · top 1,000 on PyPI
alabasterAlabaster is a clean, responsive Sphinx theme…
permissive · top 1,000 on PyPI
sphinxcontrib-htmlhelpA Sphinx extension that generates HTML help…
permissive · top 1,000 on PyPI
mkdocs-multirepo-pluginMerges documentation from multiple Git…
permissive · top 15,000 on PyPI
mkdocs-techdocs-coreBundles Spotify's TechDocs defaults—themes,…
permissive · top 15,000 on PyPI
mkdocs-task-collectorA MkDocs plugin that scans Markdown files for…
permissive · top 15,000 on PyPI
mkdocs-simple-hooksA MkDocs plugin that lets you define custom…
permissive · top 15,000 on PyPI
mkdocs-same-dirA ProperDocs plugin that allows placing the…
permissive · top 15,000 on PyPI
mkdocs-meta-managerA MkDocs plugin that automatically applies meta…
permissive · top 5,000 on PyPI
mkdocs-awesome-pages-pluginA plugin for MkDocs that lets you customize…
permissive · top 5,000 on PyPI
mkdocs-include-dir-to-navA MkDocs plugin that automatically expands…
permissive · top 15,000 on PyPI
mkdocs-section-indexMkDocs plugin that makes section headers…
permissive · top 5,000 on PyPI
mkdocs-literate-navMkDocs plugin that lets you define site…
permissive · top 5,000 on PyPI