$npx skillfedfor your agent

nbformat

The Jupyter Notebook format

Worth itPyPI Released Aug 202683.7M downloads / mopermissive licensePure Python

Decision gist · record as of 2026-08-14

pure-Python wheel — nbformat-5.11.0-py3-none-any.whl
v5.11.0 · released 2026-08-06 · Python >=3.10 · 4 runtime deps: fastjsonschema, jsonschema, jupyter-core, traitlets

Yes. nbformat is the canonical library for notebook format handling in the Jupyter ecosystem, with no known vulnerabilities, low install friction, active maintenance, and permissive licensing. Install it if you need to read, write, or validate Jupyter notebooks programmatically.AI-flagged interpretation of the facts on this page — verify before relying

Before you install

  • Requires Python 3.10 or later.
  • Low friction: pure Python wheel, four lightweight runtime dependencies (fastjsonschema, jsonschema, jupyter-core, traitlets).
  • Active maintenance with a release 8 days ago and last commit on 2026-08-10.

License · maintenance · safety

permissive license (permissive) — BSD 3-Clause (permissive): you can use, modify, and distribute nbformat freely in commercial and private projects, provided you retain the copyright notice and disclaimer.

last release 2026-08-06 (8 days) · last repo commit 2026-08-10 · 311 stars

0 known vulnerabilities (OSV.dev, 2026-08-14) · 83,736,749 downloads/mo, #400 on PyPI

Verify before relying

pip install nbformat

import nbformat
nb = nbformat.read('notebook.ipynb', as_version=4)
nbformat.write(nb, open('output.ipynb', 'w'))
  • Whether the package supports reading/writing all historical notebook format versions or only recent ones.
  • Performance characteristics when handling large notebooks or batch processing many files.
Same gist for agents: .md · .json

What it is and what it does

nbformat is the reference implementation of the Jupyter Notebook format specification, providing Python APIs to read, write, and validate notebook files. It handles the serialization and deserialization of .ipynb files—the JSON-based format used by Jupyter notebooks—and includes a JSON Schema for format validation. The package depends on fastjsonschema for efficient validation by default, with an option to use jsonschema instead via the NBFORMAT_VALIDATOR environment variable.

The library is essential infrastructure for any tool that needs to programmatically work with Jupyter notebooks: converting notebooks to other formats, extracting content, modifying metadata, or validating notebook structure. It has been actively maintained since 2015 and is part of the core Jupyter ecosystem, supporting current Python versions (3.10 through 3.14).

Use it for

  • Parse and extract cell content or metadata from .ipynb files for analysis or reporting.
  • Programmatically generate or modify Jupyter notebooks without opening the Jupyter UI.
  • Validate notebook files against the official Jupyter schema before processing or publishing.
  • Convert notebooks to other formats (e.g., HTML, PDF, Markdown) by reading and transforming the notebook structure.
  • Build tools that aggregate, merge, or organize multiple notebooks in batch workflows.

Worth the install?

AI-flagged interpretation of the facts on this page. Verify before relying on it.

Worth it

Yes.

nbformat is the canonical library for notebook format handling in the Jupyter ecosystem, with no known vulnerabilities, low install friction, active maintenance, and permissive licensing. Install it if you need to read, write, or validate Jupyter notebooks programmatically.

Install

nbformat on PyPI

Before you install

Low friction: pure Python wheel, four lightweight runtime dependencies (fastjsonschema, jsonschema, jupyter-core, traitlets). Active maintenance with a release 8 days ago and last commit on 2026-08-10.

Requires Python 3.10 or later.

License in practice

BSD 3-Clause (permissive): you can use, modify, and distribute nbformat freely in commercial and private projects, provided you retain the copyright notice and disclaimer.

Quickstart

pip install nbformat

import nbformat
nb = nbformat.read('notebook.ipynb', as_version=4)
nbformat.write(nb, open('output.ipynb', 'w'))

Verify before relying

  • Whether the package supports reading/writing all historical notebook format versions or only recent ones.
  • Performance characteristics when handling large notebooks or batch processing many files.

Package facts

Licensepermissive license permissive
Python supportSupports the current Python release >=3.10
Install frictionLow. Pure-Python wheel
Runtime dependencies
4 packages
fastjsonschemajsonschemajupyter-coretraitlets
MaintenanceActively maintained 8 days since the last release
Last repo commit
First released
Downloads83,736,749 / month, #400 on PyPI 30-day window, as of 2026-08-14
Known vulnerabilitiesNone known OSV.dev, checked 2026-08-14
Classifiers
Intended Audience :: DevelopersIntended Audience :: Science/ResearchIntended Audience :: System AdministratorsLicense :: OSI Approved :: BSD LicenseProgramming Language :: PythonProgramming Language :: Python :: 3Programming Language :: Python :: 3.10Programming Language :: Python :: 3.11Programming Language :: Python :: 3.12Programming Language :: Python :: 3.13Programming Language :: Python :: 3.14

Evidence: nbformat-5.11.0-py3-none-any.whl

Tags

Capabilities
jupyter notebook format parserread write notebook filesnbformat validationjupyter notebook schemanotebook file handlingipynb format library
Topics
jupyternotebook-formatjson-schema
PyPI keywords
InteractiveInterpreterShellWeb

Let your AI agent find packages like this

Example. Real query, live index.

You found this page by searching. An agent finds it by wishing: SkillFed indexes 14,416 PyPI packages by what they can do, searchable in plain language.

wish › “jupyter notebook format parser”

  • nbformatnbformat provides Python APIs and the reference implementation for…
  • myst-nbSphinx extension that parses and converts Jupyter Notebooks (.ipynb…
  • nbsphinxnbsphinx is a Sphinx extension that parses Jupyter Notebook files…

Give your agent the search over MCP, or paste the wish link into any chat.

Similar packages

nbconvert Worth it
PyPI · Markup · released Apr 2026

nbconvert converts Jupyter notebooks (.ipynb files) to static formats including HTML, LaTeX, PDF, Markdown, ReStructuredText, Reveal.js, and executable scripts via command-line or programmatic interface.

Install it if you need to convert notebooks to static formats or automate notebook publishing.

BSD-3-Clausepure Python · 3.9+
67.8Mdownloads / mo
nbtoolbelt Worth it
PyPI · Libraries · released May 2026

nbtoolbelt provides command-line and library tools for validating, inspecting, cleaning, executing, splitting, and concatenating Jupyter notebooks, plus a specialized tool for creating exercise notebooks with fill-in-the-blank sections.

Install it if you regularly work with multiple notebooks, need to validate or batch-process them, or want to automate notebook-based workflows (especially in…

MITpure Python
201.8Kdownloads / mo
nbval With conditions
PyPI · Testing · released Mar 2024

A pytest plugin that treats Jupyter notebooks as test files, executing each cell and validating that outputs match the stored results in the .ipynb file.

However, note that the project is aging (last release March 2024)—verify compatibility with your current pytest and Jupyter versions before relying on it in new…

BSD-3-Clausepure Pythonaging
603.3Kdownloads / mo
myst-nb With conditions
PyPI · Python Modules · released Mar 2026

Sphinx extension that parses and converts Jupyter Notebooks (.ipynb files) directly into Sphinx documentation, built on the MyST markdown parser.

license unclearpure Python · 3.10+
1.1Mdownloads / mo
notebook Worth it
PyPI · Scientific/Engineering · released Aug 2026

Jupyter Notebook is a web-based interactive computing environment that lets you create and run code, visualizations, and documentation in a single browser-based interface, supporting multiple programming languages through pluggable kernels.

Install it if you need an interactive notebook environment for exploration, education, or reproducible research.

BSD-3-Clausepure Python · 3.10+
60.6Mdownloads / mo
nbclient Worth it
PyPI · released Jun 2026

nbclient executes Jupyter notebooks programmatically in different contexts, including the command line, by running notebook cells and capturing their outputs.

BSD-3-Clausepure Python · 3.10.0+
66.3Mdownloads / mo

See also nbmake · nbsphinx · testbook · ipynb