A client library for executing notebooks. Formerly nbconvert's ExecutePreprocessor.

jupyter, pipeline, notebook, executor
pip install nbclient==0.6.6


Binder Build Status Documentation Status image Python 3.7 Python 3.8 Python 3.9 Python 3.10 Code style: black


NBClient lets you execute notebooks.

A client library for programmatic notebook execution, NBClient is a tool for running Jupyter Notebooks in different execution contexts, including the command line.

Interactive Demo

To demo NBClient interactively, click this Binder badge to start the demo:



In a terminal, run:

python3 -m pip install nbclient


See ReadTheDocs for more in-depth details about the project and the API Reference.

Python Version Support

This library currently supports Python 3.6+ versions. As minor Python versions are officially sunset by the Python org, nbclient will similarly drop support in the future.


This library used to be part of the nbconvert project. NBClient extracted nbconvert's ExecutePreprocessorinto its own library for easier updating and importing by downstream libraries and applications.

Relationship to JupyterClient

NBClient and JupyterClient are distinct projects.

jupyter_client is a client library for the jupyter protocol. Specifically, jupyter_client provides the Python API for starting, managing and communicating with Jupyter kernels.

While, nbclient allows notebooks to be run in different execution contexts.