An opinionated JupyterLab meta-package that bundles a curated set of extensions, ships a path-first file browser and a VS Code-style git changes panel, and applies a quieter default workspace configuration.
Project description
xtralab
An opinionated JupyterLab meta-package.
xtralab bundles a curated set of JupyterLab extensions, ships its own
JupyterLab extension with a path-first file browser and a VS Code-style git
changes panel, and applies a quieter default workspace configuration. The
defaults are shipped under etc/jupyter/labconfig and the bundled
labextension is shipped under share/jupyter/labextensions/xtralab.
The goal is to keep the package easy to inspect: most behavior comes from the
upstream Jupyter packages, while xtralab defines the default environment we
want out of the box.
Approach
The package brings together:
- The
ajlabmeta-package (agent-ready JupyterLab — collaboration plumbing, MCP support, command tooling, and its own quieter defaults) - JupyterLab 4.6+
- Git server integration (
jupyterlab-git— backs the bundled changes panel) - Quick file opening (
jupyterlab-quickopen) - Cursor styling helpers (
jupyterlab-cursor-light,jupyterlab-cursor-theme) - Day and night themes (
jupyterlab-day,jupyterlab-night)
These are installed as normal Python dependencies, so deployments can still override versions and Jupyter configuration in the usual ways.
Bundled labextension
xtralab ships its own prebuilt labextension that contributes:
- A path-first file browser in the left sidebar, built on
@pierre/trees. - A VS Code-style "Source Control" panel in the left sidebar, powered by the
jupyterlab-gitserver REST API and@pierre/diffs. The bundled@jupyterlab/gitfrontend is disabled automatically so the two panels do not coexist.
Default settings
xtralab ships the following JupyterLab defaults:
- The announcements plugin is disabled, so JupyterLab does not prompt to fetch news from the Jupyter news feed and does not check for application updates.
- The Table of Contents, Debugger, and Notebook Tools panels are disabled so they do not show up in the right sidebar by default.
The JupyterLab frontend defaults are shipped as labconfig/*.d/00-xtralab.json
fragments so downstream meta-packages can add their own Lab configuration
fragments without replacing xtralab's files.
Install
pip install xtralab
Development
# Install dependencies and the package in editable mode
uv pip install -e ".[dev]"
jlpm
jlpm build
License
BSD-3-Clause
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file xtralab-0.1.1.tar.gz.
File metadata
- Download URL: xtralab-0.1.1.tar.gz
- Upload date:
- Size: 2.1 MB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.2.0 CPython/3.12.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
be05db93de030d1f918526cb48b9762a114370da9c25697266f6560532275c3a
|
|
| MD5 |
518d36ba85f7e1f1341d3ab0ebf1079f
|
|
| BLAKE2b-256 |
feadc4aa1c751b889f8300ab4a841eba37bc12b8c8f2f006bc25033ec1667fc9
|
File details
Details for the file xtralab-0.1.1-py3-none-any.whl.
File metadata
- Download URL: xtralab-0.1.1-py3-none-any.whl
- Upload date:
- Size: 2.2 MB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.2.0 CPython/3.12.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
28c8faad7b36a5ff9f9e05d0ce50161f79b90c7083203cc7853de54ba0e91a2d
|
|
| MD5 |
fef9f0201cc0a2e7ab117bba8981c6cb
|
|
| BLAKE2b-256 |
3269c741907dd70a77b46cac318702d2145c1060025be8637a08f4121be9fd62
|