Skip to content
From Jupyter notebooks to standalone web applications and dashboards
Python Jupyter Notebook JavaScript Smarty TypeScript HTML CSS
Branch: master
Clone or download
maartenbreddels chore: improve release instructions and include ipywidgets as test dep (

* chore: improve release instructions and include ipywidgets as test dep
Latest commit d8c040f Oct 18, 2019
Type Name Latest commit message Commit time
Failed to load latest commit information.
docs Merge pull request #377 from jtpio/docs-binder Oct 8, 2019
etc/jupyter Fixup nbextension Jun 4, 2019
js Update package_lock Oct 9, 2019
notebooks Voila manager constructor Jul 17, 2019
packages/jupyterlab-voila Release @jupyter-voila/jupyterlab-preview 0.1.3 Oct 13, 2019
share/jupyter/voila/templates/default Merge pull request #391 from martinRenou/ignore_empty_cells Oct 17, 2019
tests fix: the voila side output widget did not handle error msges (#425) Oct 16, 2019
voila Release 0.1.14 Oct 17, 2019
.gitignore Add .vscode to gitignore Oct 13, 2019
.travis.yml Update nbconvert in travis Oct 8, 2019 add note about installing and verifying the server extension (#420) Oct 13, 2019
LICENSE Cleanup package Oct 17, 2018 Cleanup package Oct 17, 2018 Added a link to the documentation in the Oct 15, 2019 chore: improve release instructions and include ipywidgets as test dep ( Oct 18, 2019
environment.yml Release 0.1.14 Oct 17, 2019
readthedocs.yml Add documentation skeleton Nov 23, 2018
setup.cfg adding flake8 linter, fixing lint errors Jan 30, 2019 chore: improve release instructions and include ipywidgets as test dep ( Oct 18, 2019
voila-basics.gif Add basic screencasts and release 0.1.2 Jun 10, 2019
voila-bqplot.gif Add basic screencasts and release 0.1.2 Jun 10, 2019
voila-cling.gif Add basic screencasts and release 0.1.2 Jun 10, 2019
voila-sources.gif Add basic screencasts and release 0.1.2 Jun 10, 2019


Documentation Binder Join the Gitter Chat

Rendering of live Jupyter notebooks with interactive widgets.


Voila serves live Jupyter notebooks including Jupyter interactive widgets.

Unlike the usual HTML-converted notebooks, each user connecting to the Voila tornado application gets a dedicated Jupyter kernel which can execute the callbacks to changes in Jupyter interactive widgets.

  • By default, voila disallows execute requests from the front-end, preventing execution of arbitrary code.
  • By default, voila runs with the strip_source option, which strips out the input cells from the rendered notebook.


Voila can be installed with the conda package manager

conda install -c conda-forge voila

or from pypi

pip install voila

JupyterLab preview extension

Voila provides a JupyterLab extension that displays a Voila preview of your Notebook in a side-pane:

jupyter labextension install @jupyter-voila/jupyterlab-preview


As a standalone tornado application

To render the bqplot example notebook as a standalone app, run voila bqplot.ipynb. To serve a directory of jupyter notebooks, run voila with no argument.

For example, to render the example notebook bqplot.ipynb from this repository with voila, you can first update your current environment with the requirements of this notebook (in this case in a conda environment and render the notebook with

conda env update -f environment.yml
cd notebooks/
voila bqplot.ipynb

For more command line options (e.g., to specify an alternate port number), run voila --help.

As a server extension to notebook or jupyter_server

Voila can also be used as a notebook server extension, both with the notebook server or with jupyter_server.

To install the notebook server extension, run

jupyter serverextension enable voila --sys-prefix

When running the notebook server, the voila app is accessible from the base url suffixed with voila.


To get started with using Voila, check out the full documentation:


The following two examples show how a standalone Jupyter notebook can be turned into a separate app, from the command-line integration.

Rendering a notebook including interactive widgets and rich mime-type rendering voila basics

Rendering a notebook making use of a custom widget library (bqplot)

voila bqplot

Showing the source code for a voila notebook

The sources of the Jupyter notebook can be displayed in a voila app if option strip_sources is set to False.

voila sources

Voila dashboards with other language kernels

Voila is built upon Jupyter standard formats and protocols, and is agnostic to the programming language of the notebook. In this example, we present an example of a voila application powered by the C++ Jupyter kernel xeus-cling, and the xleaflet project.

voila cling

Voila Gallery

The Voila Gallery is a collection of live dashboards and applications built with Voila and Jupyter widgets.

Most of the examples rely on widget libraries such as ipywidgets, ipyleaflet, ipyvolume, bqplot and ipympl, and showcase how to build complex web applications entirely based on notebooks.

New examples can be added to the gallery by following the steps listed in the voila-gallery/gallery repository.


See to know how to contribute and setup a development environment.

Related projects

Voila depends on nbconvert and jupyter_server.


We use a shared copyright model that enables all contributors to maintain the copyright on their contributions.

This software is licensed under the BSD-3-Clause license. See the LICENSE file for details.

You can’t perform that action at this time.