mkdocs-multirepo-plugin
Build documentation in multiple repos into one site.
What it is and what it does
mkdocs-multirepo-plugin is an MkDocs plugin that pulls documentation from multiple Git repositories and builds them into a single searchable site. Instead of centralizing all docs in one repo, you keep documentation close to the code in separate repositories—each with its own mkdocs.yml—and the plugin fetches and merges them during the build process. It supports three import methods: automatic directory-based navigation via the `repos` config, explicit file imports via `nav_repos`, or inline `!import` statements in your nav section. Documentation is fetched asynchronously using asyncio, and the plugin can run in CI/CD pipelines.
The plugin is designed for monorepos and multi-service architectures where different teams maintain separate documentation but need a unified site. Configuration happens entirely within mkdocs.yml, and you can control which branch or tag to import, customize the docs directory path, and optionally preserve the docs directory structure in the final build.
Use it for:
- Build a unified documentation site for a microservices architecture where each service team maintains its own docs repository.
- Aggregate documentation from multiple open-source projects into a single searchable reference site.
- Create a monorepo documentation site that pulls docs from multiple project subdirectories, each with its own mkdocs.yml.
- Maintain a central documentation hub that imports README and docs from upstream projects without forking them.
- Set up a CI/CD pipeline that automatically rebuilds documentation when multiple source repositories change.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
Merges documentation from multiple Git repositories into a single MkDocs site, keeping docs distributed across repos while building them into one searchable site.
Yes, if you need to aggregate documentation from multiple Git repositories into one MkDocs site. The plugin is actively maintained, has no known vulnerabilities, and low install friction. It's suitable for production use in CI/CD pipelines. Install only if you actually have multiple documentation sources to merge; for single-repo documentation, standard MkDocs is simpler.
Install
mkdocs-multirepo-plugin on PyPI
pip
pip install mkdocs-multirepo-pluginuv
uv add mkdocs-multirepo-pluginpoetry
poetry add mkdocs-multirepo-pluginInstalling mkdocs-multirepo-plugin
Before you install
Low install friction with a pure-Python wheel distribution. Actively maintained as of 2026-03-19 with 195 repository stars. Six runtime dependencies are all standard Python packages, and asyncio-based imports mean documentation builds asynchronously.
License in practice
MIT license (permissive) means you can use, modify, and distribute this plugin freely with minimal restrictions—suitable for both open-source and commercial projects.
Quickstart
pip install mkdocs-multirepo-plugin
# In mkdocs.yml:
plugins:
- multirepo:
cleanup: true
nav:
- Home: 'index.md'
- Docs: '!import https://github.com/user/repo'
Requires Git to be installed and accessible; newer versions of Git are preferred per the documentation.
Verify before relying
- Whether the plugin works reliably with all Git hosting platforms beyond GitHub, or if there are known limitations with GitLab, Gitea, etc.
- Performance characteristics when importing documentation from many repositories or very large repositories.
- Whether the asyncio import mechanism is compatible with all MkDocs themes and extensions.
Package facts
| License | MIT (permissive) |
| Python support | not specified |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | 6 — asyncio, dacite, importlib-resources, mkdocs, python-slugify, typing-inspect |
| Maintenance | actively maintained — 731 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 74,434/month — #14,831 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: mkdocs_multirepo_plugin-0.8.3-py2.py3-none-any.whl
Keywords: mkdocs, docs, documentation
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-monorepo-pluginEnables building multiple sets of documentation…
permissive · top 5,000 on PyPI
mkdocs-redirectsA MkDocs plugin that generates HTTP redirects…
permissive · top 5,000 on PyPI
mkdocs-same-dirA ProperDocs plugin that allows placing the…
permissive · top 15,000 on PyPI
mkdocs-task-collectorA MkDocs plugin that scans Markdown files for…
permissive · top 15,000 on PyPI
mkdocs-techdocs-coreBundles Spotify's TechDocs defaults—themes,…
permissive · top 15,000 on PyPI
pierre-storagePython SDK for managing Git repositories…
permissive · top 5,000 on PyPI
poetry-multiproject-pluginA Poetry plugin that enables building and…
permissive · top 15,000 on PyPI
mkdocs-with-pdfGenerates a single PDF file from an MkDocs…
permissive · top 15,000 on PyPI
mkdocs-section-indexMkDocs plugin that makes section headers…
permissive · top 5,000 on PyPI
mkdocs-simple-hooksA MkDocs plugin that lets you define custom…
permissive · top 15,000 on PyPI