skillfed

nbclassic

Jupyter Notebook as a Jupyter Server extension.

nbclassic v1.3.3 6.5M downloads/30d#1,899 on PyPI110
Permissive license BSD 3-Clause License Copyright (c) 2020 Project Jupyter Contributors All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that… (full text in the JSON record) Active released

What it is and what it does

nbclassic bridges the gap between the classic Jupyter Notebook and the modern Jupyter ecosystem. It runs the traditional notebook interface as a Jupyter Server extension, preserving the familiar UI and URL namespace (`/nbclassic/`) so you can keep using classic extensions and customizations that may not yet work with newer frontends. The package depends on ipykernel, ipython-genutils, nest-asyncio, and notebook-shim to provide kernel communication and async handling.

You install it alongside Jupyter Server and can launch it with `jupyter nbclassic` or access it through the main Jupyter Server. This lets you upgrade to the latest Jupyter infrastructure without immediately breaking your existing notebook workflows, custom extensions, or theme customizations—you can run the classic interface, JupyterLab, and Notebook 7 all in the same installation.

Use it for:

  • Migrate to modern Jupyter Server infrastructure while keeping classic notebook extensions working.
  • Run the familiar classic notebook UI for users who prefer it over JupyterLab or Notebook 7.
  • Preserve custom CSS, JavaScript, and notebook extensions that haven't been ported to new frontends.
  • Maintain backwards compatibility during a gradual transition from classic Notebook to newer interfaces.
  • Coexist with JupyterLab in a single Jupyter installation for teams with mixed preferences.

Worth the install?

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

Provides the classic Jupyter Notebook interface as a Jupyter Server extension, allowing you to run the traditional notebook UI alongside modern frontends like JupyterLab.

Yes, if you rely on classic Jupyter Notebook extensions or customizations and need to upgrade to modern Jupyter Server. The package is actively maintained, has low install friction, and is widely used (top 5000 on PyPI). Install it when you want to defer rewriting extensions or when your team needs the classic interface alongside newer frontends.

Install

nbclassic on PyPI

pip

pip install nbclassic

uv

uv add nbclassic

poetry

poetry add nbclassic

Installing nbclassic

Before you install

Low install friction with a pure Python wheel distribution. Actively maintained as of June 2026 with recent commits, and supported on current Python versions (3.9–3.13).

License in practice

BSD 3-Clause License permits commercial and private use with minimal restrictions; you must retain copyright notice and disclaimer in source distributions.

Quickstart

pip install nbclassic
jupyter nbclassic

Requires Jupyter Server to be installed; nbclassic runs as an extension on top of it.

Verify before relying

  • Whether existing classic notebook extensions are fully compatible without modification.
  • Performance characteristics compared to Notebook 7 or JupyterLab on the same system.
  • Scope of customizations that will continue to work unchanged from classic Notebook.

Package facts

License BSD 3-Clause License Copyright (c) 2020 Project Jupyter Contributors All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that… (full text in the JSON record) (permissive)
Python support supports the current Python release (>=3.9)
Install friction low — pure-Python wheel
Runtime dependencies 4 — ipykernel, ipython-genutils, nest-asyncio, notebook-shim
Maintenance actively maintained — 332 days since the last release
Last repo commit
First released
Downloads 6,497,028/month — #1,899 on PyPI (30-day window, as of 2026-08-14)
Known vulnerabilities none known (OSV.dev, checked 2026-08-14)

Evidence: nbclassic-1.3.3-py3-none-any.whl

Keywords: interactive, interpreter, ipython, jupyter, shell, web

Intended Audience :: DevelopersIntended Audience :: Science/ResearchIntended Audience :: System AdministratorsLicense :: OSI Approved :: BSD LicenseProgramming Language :: PythonProgramming Language :: Python :: 3 :: OnlyProgramming Language :: Python :: 3.10Programming Language :: Python :: 3.11Programming Language :: Python :: 3.12Programming Language :: Python :: 3.13Programming Language :: Python :: 3.9

Tags

classic jupyter notebook interfacejupyter notebook backwards compatibilityjupyter server extension notebooktraditional notebook UIjupyter nbclassicnotebook 7 compatibility layerjupyter classic frontend
jupyter-extensionbackwards-compatibilityinteractive-computing

More Dynamic Content packages