Repolode
AnswerDotAI

AnswerDotAI/nbdev

A notebook-driven development platform that turns Jupyter Notebooks into Python packages with docs, tests, CI and PyPI/conda releases.

Stars
5,323
Forks
513
Open issues
187
Last commit
2 days ago

What is it?

nbdev lets you write Python code, tests and documentation in Jupyter Notebooks using lightweight markup. From those notebooks it exports Python modules, generates a documentation website with Quarto and GitHub Pages, runs tests in parallel, and sets up GitHub Actions for continuous integration.

The project keeps notebooks and plaintext source code in two-way sync, so you can edit in an IDE and push changes back to the notebook cells they came from. Git hooks strip unneeded notebook metadata and render merge conflicts in a readable form. Packaging tools handle releases to PyPI and conda.

nbdev3 moved project configuration from settings.ini to pyproject.toml, and includes the nbdev-migrate-config command to convert existing nbdev2 projects.

Key features

  • 01Exports notebooks to Python modules with two-way sync to source code
  • 02Generates searchable documentation sites with Quarto and GitHub Pages
  • 03Runs notebook-based tests in parallel with one command
  • 04Provides GitHub Actions workflows for CI and doc rebuilds
  • 05Publishes packages to PyPI and conda
  • 06Includes Git hooks that clean notebooks and resolve merge conflicts

Use cases

  • Building a Python library where code, tests and docs live together in notebooks
  • Publishing an open-source Python package to PyPI with automated releases
  • Keeping project documentation generated and hyperlinked from source code
  • Editing notebook-based code in an IDE while keeping notebooks in sync

Quick start

  1. 1

    Install nbdev with pip

    pip install nbdev
  2. 2

    Run nbdev-help to see the available commands

    nbdev-help

Things to know

  • Requires WSL on Windows; it does not run under cmd or PowerShell.
  • Must be installed into the same Python environment used for Jupyter and your project.
  • The January 2026 nbdev3 release moved configuration to pyproject.toml, a breaking change for nbdev2 projects.

In collections

Topics

FAQ

What is nbdev?
A notebook-driven development platform that turns Jupyter Notebooks into Python packages with docs, tests, CI and PyPI/conda releases. nbdev lets you write Python code, tests and documentation in Jupyter Notebooks using lightweight markup. From those notebooks it exports Python modules, generates a documentation website with Quarto and GitHub Pages, runs tests in parallel, and sets up GitHub Actions for continuous integration.
Is nbdev free to use? What license does it have?
nbdev is open source under the Apache-2.0 license. Check the license terms before using it in commercial products.
Is nbdev still maintained?
Actively maintained. The last commit to nbdev was on Nov 5, 2026.
What can I use nbdev for?
Building a Python library where code, tests and docs live together in notebooks Publishing an open-source Python package to PyPI with automated releases Keeping project documentation generated and hyperlinked from source code Editing notebook-based code in an IDE while keeping notebooks in sync
How do I install nbdev?
Install nbdev with pip: pip install nbdev Run nbdev-help to see the available commands: nbdev-help
Where can I get nbdev?
The source code and installation instructions are on GitHub: https://github.com/AnswerDotAI/nbdev

Summary generated by AI from the project's README. GitHub stats refresh daily.

Related projects