skillfed

nbdev

Create delightful software with Jupyter Notebooks

nbdev v3.3.12 118.1K downloads/30d#12,134 on PyPI5,302
Permissive license Apache-2.0 Active released

What it is and what it does

nbdev bridges Jupyter notebooks and production Python packages by treating notebooks as the primary development artifact. You write code, tests, and documentation in notebooks using lightweight markup, and nbdev exports them to clean Python modules, generates searchable HTML documentation via Quarto, runs tests in parallel, and publishes to PyPI or conda. The platform also maintains a two-way sync between notebooks and exported source code, so you can edit in your IDE and have changes reflected back in the notebook.

The workflow is built around modern Python packaging standards (PEP 621 with pyproject.toml configuration) and includes git-friendly notebook handling to reduce merge conflicts. It comes with built-in GitHub Actions integration for continuous integration and automated documentation deployment. Version 3.3.12 represents a major update that moved configuration from settings.ini to pyproject.toml, with a migration tool provided for existing projects.

Use it for:

  • Develop Python packages where documentation, tests, and code live together in executable notebooks for easier debugging and refactoring.
  • Publish packages to PyPI with automatically generated documentation and README files derived from notebook cells.
  • Set up continuous integration pipelines that run notebook-based tests in parallel and rebuild documentation on every commit.
  • Maintain a codebase where library code and its usage examples are synchronized bidirectionally between notebooks and Python modules.
  • Create searchable, hyperlinked documentation with LaTeX support automatically generated from notebook cells without separate doc files.

Worth the install?

AI-flagged interpretation of the facts on this page — verify before relying

nbdev is a notebook-driven development platform that exports Jupyter notebooks to Python modules, generates documentation via Quarto, runs tests, and publishes packages to PyPI and conda—all from a single notebook source.

Yes. nbdev is actively maintained (release 2 days old), has no known vulnerabilities, low install friction, and a permissive license. It solves a real problem for developers who want to work in notebooks without sacrificing code quality, testing, or packaging standards. Best suited for projects where literate programming and live debugging are valued; less suitable if your team requires pure IDE-based workflows or native Windows development.

Install

nbdev on PyPI

pip

pip install nbdev

uv

uv add nbdev

poetry

poetry add nbdev

Installing nbdev

Before you install

Low friction installation with a pure-Python wheel. Active maintenance with a release 2 days old and 5302 repository stars. Requires Python 3.10 or later and 11 runtime dependencies including fastcore, execnb, and build; all are standard ecosystem packages.

License in practice

Apache-2.0 (permissive) allows commercial and private use with attribution. No restrictions on bundling or modification for downstream users.

Quickstart

pip install nbdev

from nbdev.export import nb_export
nb_export('notebook.ipynb', 'module_name')

Requires Python 3.10 or later. Quarto must be installed separately for documentation generation (nbdev provides installation helpers). Works on macOS, Linux, and WSL but not native Windows cmd/PowerShell.

Verify before relying

  • Whether the two-way sync between notebooks and plaintext source code works reliably with all IDE workflows and merge scenarios beyond the documented git-hook setup.
  • Performance characteristics of parallel test execution across large notebook suites.
  • Compatibility with Jupyter extensions or custom notebook configurations beyond the standard setup.

Package facts

License Apache-2.0 (permissive)
Python support supports the current Python release (>=3.10)
Install friction low — pure-Python wheel
Runtime dependencies 11 — fastcore, execnb, astunparse, ghapi, watchdog, asttokens, setuptools, build, fastgit, pyyaml, tomli
Maintenance actively maintained — 2 days since the last release
Last repo commit
First released
Downloads 118,109/month — #12,134 on PyPI (30-day window, as of 2026-08-14)
Known vulnerabilities none known (OSV.dev, checked 2026-08-14)

Evidence: nbdev-3.3.12-py3-none-any.whl

Keywords: nbdev, fastai, jupyter, notebook, export

Development Status :: 5 - Production/StableIntended Audience :: DevelopersLicense :: OSI Approved :: Apache Software LicenseNatural Language :: EnglishProgramming Language :: Python :: 3Programming Language :: Python :: 3 :: Only

Tags

jupyter notebook to python module exportnotebook-driven development workflowautomatic documentation from notebooksnotebook-based testing and CIliterate programming pythonjupyter to package publishingnotebook code synchronization
literate-programmingjupyter-nativedocumentation-generation

More Build Tools packages