After installation, using sphinx-multiversion should be fairly straightforward.

To be able to build multiple versions of Sphinx documentation, sphinx-multiversion acts as wrapper for sphinx-build. If you’re already using Sphinx documentation for your project, you can now use sphinx-multiversion to build the HTML documentation. You can check if it works by running:

# Without sphinx-multiversion
sphinx-build docs build/html

# With sphinx-multiversion
sphinx-multiversion docs build/html

Don’t worry - no version picker will show up in the generated HTML yet. You need to configure the extension first.

See also

If you’re not using Sphinx yet, have a look at the tutorial.

Next, you need to add the extension to the conf.py file.

extensions = [

To make the different versions show up in the HTML, you also need to add a custom template. For example, you could create a new template named versioning.html with the following content:

{% if versions %}
<h3>{{ _('Versions') }}</h3>
  {%- for item in versions %}
  <li><a href="{{ item.url }}">{{ item.name }}</a></li>
  {%- endfor %}
{% endif %}

See also

You can also list branches, tags, released versions and development branches separately. See Templates for details.

Assuming that you’re using a theme with sidebar widget support, you just need to make sure that the file is inside the templates_path and add it to the html_sidebars variable.

templates_path = [

html_sidebars = {
    '**': [

Now rebuild the documentation:

sphinx-multiversion docs build/html


See also

By default, all local branches and tags will be included. If you only want to include certain branches/tags or also include remote branches, see Configuration.