jupyter/nbdime

Tools for diffing and merging of Jupyter notebooks.

2,842

stars

1,769

commits

TypeScript

primary language

Jun 10, 2026

updated

nbdime.readthedocs.io
diff
diffing
git
hg
jupyter
jupyterlab-extension
jupyter-notebook
mercurial
merge
merge-driver
mergetool
vcs
version-control
Browse cluster: Jupyter notebook ecosystem

README

Installation | Documentation | Contributing | Development Install | Testing | License | Getting help

nbdime Jupyter Notebook Diff and Merge tools

Test codecov.io Documentation Status Google Group

nbdime provides tools for diffing and merging of Jupyter Notebooks.

  • nbdiff compare notebooks in a terminal-friendly way
  • nbmerge three-way merge of notebooks with automatic conflict resolution
  • nbdiff-web shows you a rich rendered diff of notebooks
  • nbmerge-web gives you a web-based three-way merge tool for notebooks
  • nbshow present a single notebook in a terminal-friendly way

Diffing notebooks in the terminal:

terminal-diff

Merging notebooks in a browser:

web-merge

Installation

Install nbdime with pip:

pip install nbdime

See the installation docs for more installation details and development installation instructions.

Documentation

See the latest documentation at https://nbdime.readthedocs.io.

See also description and discussion in the Jupyter Enhancement Proposal.

Contributing

If you would like to contribute to the project, please read our contributor documentation and the CONTRIBUTING.md.

Development Install

To install a development version of nbdime, you will need npm installed and available on your PATH while installing.

For a development install, enter on the command line:

pip install -e git+https://github.com/jupyter/nbdime#egg=nbdime

See installation documentation for additional detail, particularly related to performing a dev install for working on the browser script code.

Testing

Install the test requirements:

pip install nbdime[test]

To run Python tests locally, enter on the command line: pytest

To run Javascript tests locally, enter: npm test

Install the codecov browser extension to view test coverage in the source browser on github.

See testing documentation for additional detail.

License

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

All code is licensed under the terms of the revised BSD license.

Getting help

We encourage you to ask questions on the mailing list.

Resources

Contributors

(top 30 of 48)

vidartf

1,309 commits

minrk

229 commits

fcollonval

48 commits

willingc

38 commits

jupyter/nbdime

Tools for diffing and merging of Jupyter notebooks.

2,842

stars

1,769

commits

TypeScript

primary language

Jun 10, 2026

updated

nbdime.readthedocs.io
diff
diffing
git
hg
jupyter
jupyterlab-extension
jupyter-notebook
mercurial
merge
merge-driver
mergetool
vcs
version-control
Browse cluster: Jupyter notebook ecosystem

README

Installation | Documentation | Contributing | Development Install | Testing | License | Getting help

nbdime Jupyter Notebook Diff and Merge tools

Test codecov.io Documentation Status Google Group

nbdime provides tools for diffing and merging of Jupyter Notebooks.

  • nbdiff compare notebooks in a terminal-friendly way
  • nbmerge three-way merge of notebooks with automatic conflict resolution
  • nbdiff-web shows you a rich rendered diff of notebooks
  • nbmerge-web gives you a web-based three-way merge tool for notebooks
  • nbshow present a single notebook in a terminal-friendly way

Diffing notebooks in the terminal:

terminal-diff

Merging notebooks in a browser:

web-merge

Installation

Install nbdime with pip:

pip install nbdime

See the installation docs for more installation details and development installation instructions.

Documentation

See the latest documentation at https://nbdime.readthedocs.io.

See also description and discussion in the Jupyter Enhancement Proposal.

Contributing

If you would like to contribute to the project, please read our contributor documentation and the CONTRIBUTING.md.

Development Install

To install a development version of nbdime, you will need npm installed and available on your PATH while installing.

For a development install, enter on the command line:

pip install -e git+https://github.com/jupyter/nbdime#egg=nbdime

See installation documentation for additional detail, particularly related to performing a dev install for working on the browser script code.

Testing

Install the test requirements:

pip install nbdime[test]

To run Python tests locally, enter on the command line: pytest

To run Javascript tests locally, enter: npm test

Install the codecov browser extension to view test coverage in the source browser on github.

See testing documentation for additional detail.

License

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

All code is licensed under the terms of the revised BSD license.

Getting help

We encourage you to ask questions on the mailing list.

Resources

Contributors

(top 30 of 48)

vidartf

1,309 commits

minrk

229 commits

fcollonval

48 commits

willingc

38 commits

Languages

TypeScript

39.7%

Python

38.9%

Jupyter Notebook

17.9%

CSS

2.3%