skillfed

mike

Manage multiple versions of your MkDocs-powered documentation

mike v2.2.0 1.6M downloads/30d#3,698 on PyPI737
Permissive license BSD-3-Clause Active released

What it is and what it does

mike is a deployment tool for MkDocs that solves the problem of hosting multiple versions of documentation simultaneously. Instead of rebuilding all versions every time you release, mike lets you deploy each version once and then leave it untouched—old docs built with old MkDocs versions stay frozen in your gh-pages branch, eliminating breakage from upstream MkDocs changes. It works by creating Git commits on your deployment branch for each version, with support for aliases (like 'latest' or 'dev') that can point to specific versions via symlinks, HTML redirects, or file copies.

The package integrates with MkDocs via a plugin that adds a version selector widget to your documentation and manages site URLs. You deploy with `mike deploy`, serve locally with `mike serve` to test all versions, and delete old versions with `mike delete`. Configuration happens in mkdocs.yml or via command-line flags, letting you customize alias behavior, redirect templates, deployment prefixes, and canonical version hints for search engines.

Use it for:

  • Host stable and development versions of docs side-by-side, with aliases pointing to specific versions.
  • Maintain documentation for multiple major versions without rebuilding older docs when MkDocs updates.
  • Create permanent URLs to specific documentation versions for linking in changelogs or support tickets.
  • Test versioned documentation locally before pushing to production using `mike serve`.
  • Manage documentation for libraries with long-term support branches by deploying each branch version independently.

Worth the install?

AI-flagged interpretation of the facts on this page — verify before relying

mike deploys multiple versions of MkDocs-generated documentation to a Git branch (typically gh-pages), managing version history and aliases without rebuilding or modifying older docs.

Yes. mike is actively maintained, has no known vulnerabilities, low install friction, and solves a real problem for projects using MkDocs. It's well-suited for any project that needs to host multiple documentation versions without the overhead of rebuilding or managing them manually. The BSD-3-Clause license is permissive. Install it if you maintain MkDocs documentation and need version management.

Install

mike on PyPI

pip

pip install mike

uv

uv add mike

poetry

poetry add mike

Installing mike

Before you install

Low install friction; pure Python wheel with 8 runtime dependencies including mkdocs, jinja2, and pyyaml. Active maintenance with last commit 2026-08-01 and 737 repository stars.

License in practice

BSD-3-Clause permissive license allows commercial and private use with minimal restrictions; suitable for most projects.

Quickstart

pip install mike
mike deploy [version] [alias]
mike serve

Requires an existing MkDocs project with mkdocs.yml configuration and a Git repository with a gh-pages branch (or equivalent deployment branch).

Verify before relying

  • Whether mike works with non-GitHub Git hosting (GitLab, Gitea, etc.) or only GitHub Pages.
  • Performance characteristics when managing many documentation versions.
  • Compatibility with MkDocs themes other than the officially supported ones.
  • Minimum Python version requirements (classifiers list 3.8 through 3.13 but requires_python is unspecified).

Package facts

License BSD-3-Clause (permissive)
Python support not specified
Install friction low — pure-Python wheel
Runtime dependencies 8 — jinja2, mkdocs, pyparsing, pyyaml, pyyaml-env-tag, verspec, importlib-metadata, importlib-resources
Maintenance actively maintained — 122 days since the last release
Last repo commit
First released
Downloads 1,637,523/month — #3,698 on PyPI (30-day window, as of 2026-08-14)
Known vulnerabilities none known (OSV.dev, checked 2026-08-14)

Evidence: mike-2.2.0-py3-none-any.whl

Keywords: mkdocs, multiple, versions

Development Status :: 5 - Production/StableIntended Audience :: DevelopersProgramming Language :: Python :: 3Programming Language :: Python :: 3.10Programming Language :: Python :: 3.11Programming Language :: Python :: 3.12Programming Language :: Python :: 3.13Programming Language :: Python :: 3.8Programming Language :: Python :: 3.9Topic :: Documentation

Tags

mkdocs versioned documentationdeploy multiple doc versions gitgithub pages doc versioningmkdocs version selectordocumentation version managementgh-pages multi-version docsmkdocs deployment tool
mkdocs-pluginversion-managementgh-pages

More Documentation packages

docutils

Docutils converts plaintext documentation in…

unclear · top 1,000 on PyPI

Sphinx

Sphinx generates professional documentation…

permissive · top 1,000 on PyPI

griffe

Griffe extracts the complete structure and…

permissive · top 1,000 on PyPI

sphinxcontrib-serializinghtml

A Sphinx extension that outputs documentation…

permissive · top 1,000 on PyPI

alabaster

Alabaster is a clean, responsive Sphinx theme…

permissive · top 1,000 on PyPI

sphinxcontrib-htmlhelp

A Sphinx extension that generates HTML help…

permissive · top 1,000 on PyPI

ghp-import

Automates publishing built documentation to…

permissive · top 5,000 on PyPI

mkdocs-redirects

A MkDocs plugin that generates HTTP redirects…

permissive · top 5,000 on PyPI

to-requirements.txt

Automatically synchronizes your project's…

permissive · top 15,000 on PyPI

sphinx-multiversion

Sphinx extension that builds and serves…

permissive · top 15,000 on PyPI

mkdocs-autorefs

A MkDocs plugin that automatically creates…

permissive · top 5,000 on PyPI

mkdocs-multirepo-plugin

Merges documentation from multiple Git…

permissive · top 15,000 on PyPI

mkdocs-git-revision-date-plugin

Adds a Git-based revision date to MkDocs…

permissive · top 15,000 on PyPI

mkdocstrings

An MkDocs plugin that automatically generates…

permissive · top 5,000 on PyPI

mkdocs-with-pdf

Generates a single PDF file from an MkDocs…

permissive · top 15,000 on PyPI

mkdocs-static-i18n

A MkDocs plugin that adds static multi-language…

permissive · top 15,000 on PyPI