Skip to main content

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 ajlab meta-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-git server REST API and @pierre/diffs. The bundled @jupyterlab/git frontend 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.
  • dockPanelPadding is off, so the main dock area is flush with the surrounding chrome.

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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

xtralab-0.1.2.tar.gz (2.1 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

xtralab-0.1.2-py3-none-any.whl (2.2 MB view details)

Uploaded Python 3

File details

Details for the file xtralab-0.1.2.tar.gz.

File metadata

  • Download URL: xtralab-0.1.2.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

Hashes for xtralab-0.1.2.tar.gz
Algorithm Hash digest
SHA256 cfac42bb0f816347d0606ebe91168460b558835bc3c4f77985fb33d75f8300f6
MD5 159da727993acd84d50188e5d388eeb4
BLAKE2b-256 98fa61de246edfb05658d35d6bcadc208fb76b8ec28f73937925c2b3b647083c

See more details on using hashes here.

File details

Details for the file xtralab-0.1.2-py3-none-any.whl.

File metadata

  • Download URL: xtralab-0.1.2-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

Hashes for xtralab-0.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 5ab7ee5cc2cb57b0b1a5d61e8f22a0c63a4a9467e31bc0c799482cfa75a64707
MD5 1a51e3a092b3b4697c43f5cccf24b668
BLAKE2b-256 bcffbbabf51418df80d01baeb9a86993fb6e84db2543cd532953f6f243dc5a2e

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page