Jupyter Builder
Build tools for JupyterLab extensions — extracted from the core JupyterLab codebase to be maintained and used independently.
Installation
pip install jupyter_builder
CLI
build
Compile the extension JavaScript assets for consumption by a Jupyter app.
jupyter-builder build <path/to/extension>
develop
Install extension assets in development mode (analogous to pip install -e). Uses a symlink by default.
jupyter-builder develop <path/to/extension>
watch
Automatically rebuild development assets when source files change.
jupyter-builder watch <path/to/extension>
For advanced configuration, see the Advanced section for available flags.
jlpm
jupyter-builder ships jlpm, a Jupyter-aware Node.js package manager wrapper:
jlpm install
jlpm build
Advanced
CLI flags
build
| Flag | Description |
|---|---|
--development |
Build in development mode (default: False) |
--source-map |
Generate source maps (default: False) |
--static-url=<url> |
Set the URL for static assets |
--core-version=<version> |
JupyterLab core version to build against |
--core-package-file=<path> |
Path to a core application package.json (overrides --core-version) |
develop
| Flag | Description |
|---|---|
--overwrite |
Overwrite existing files |
--user |
Install to the user's directory |
--sys-prefix |
Install under sys.prefix (default: True) |
--labextensions-dir=<path> |
Install to a custom labextensions directory |
watch
| Flag | Description |
|---|---|
--development |
Build in development mode (default: True) |
--source-map |
Generate source maps (default: False) |
--core-version=<version> |
JupyterLab core version to build against |
--core-package-file=<path> |
Path to a core application package.json (overrides --core-version) |
Python API
from jupyter_builder.federated_extensions import (
build_labextension,
develop_labextension_py,
watch_labextension,
)
build_labextension(
"/path/to/extension",
development=False,
source_map=False,
static_url=None,
core_version=None,
core_package_file=None,
)
develop_labextension_py(
"/path/to/extension",
overwrite=True,
symlink=True,
user=False,
sys_prefix=True,
)
watch_labextension(
"/path/to/extension",
labextensions_path=[...],
development=True,
source_map=False,
)
Environment variables
jupyter-builder supports the following environment variables to override network URLs — for example, to point at an internal mirror or a local proxy. A warning is emitted at startup whenever a variable is set.
| Variable | Default | Purpose |
|---|---|---|
JPBLD_NPM_URL |
https://registry.npmjs.org |
npm registry used to resolve and download @jupyterlab/core-meta |
JPBLD_RAW_GITHUB_URL |
https://raw.githubusercontent.com |
Raw GitHub content URL used as a fallback when npm is unavailable |
Example — redirect to a corporate npm mirror:
export JPBLD_NPM_URL=https://npm.internal.example.com
jupyter-builder build /path/to/extension
Core metadata resolution order
When no explicit --core-version is given, jupyter-builder looks for
@jupyterlab/core-meta in the extension's node_modules first (no network
required). If the package is not found there a warning is printed and the
metadata is fetched from the npm registry, falling back to raw GitHub if npm
is unreachable.
Uninstall
pip uninstall jupyter_builder
Learn more
- Announcing jupyter-builder: A Standalone Build System for JupyterLab Extensions - the announcement post on the Jupyter Blog, covering the motivation, how compatibility is checked without JupyterLab installed, and how to migrate existing extensions.
Acknowledgments
This package was initially created during GSoC 2024 by @cronan03, mentored by @fcollonval.
Further work on this package was funded by the Jupyter Foundation through its Community Funding program. See the Finish Jupyter Build System Separation funding report for a summary of the work completed.
Metadata
Release files for jupyter-builder 1.3.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| jupyter_builder-1.3.0.tar.gz | 1.0 MB | With provenance | Details for jupyter_builder-1.3.0.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| jupyter_builder-1.3.0-py3-none-any.whl | Python 3 | none | any | Details for jupyter_builder-1.3.0-py3-none-any.whl |
Total release size: 2.0 MB
Release files / jupyter_builder-1.3.0.tar.gz
| Download URL | jupyter_builder-1.3.0.tar.gz |
|---|---|
| Size | 1.0 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
dc0a3cdc27be674f29de2b4aecfdd55190fffa65199846bbdf4ceaf31a56b7d1
|
|
BLAKE2b-256 checksum How to use checksums |
96a49c21aace0287bcc19000e7b73088bfeb60a4536daeef49f51902344c25a5
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.12.16
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Nov 11, 2026.
Transparency logRelease files / jupyter_builder-1.3.0-py3-none-any.whl
| Download URL | jupyter_builder-1.3.0-py3-none-any.whl |
|---|---|
| Size | 950.3 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
87148399852377bea07ca77660e497b387c365558d187673eeacd583cfd6cf95
|
|
BLAKE2b-256 checksum How to use checksums |
9fb0d5e9a3634400461388590e672ff0df07b856150ce9231d1446e0adfe42b6
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.12.16
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Nov 11, 2026.
Transparency logSecurity for jupyter-builder 1.3.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
Full provenance
Both files in this release have been uploaded with provenance metadata.
Attestation for jupyter_builder-1.3.0.tar.gz
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Nov 11, 2026.
Transparency logA note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.