Skip to main content

xtralab

An opinionated JupyterLab meta-package for coding agents.

xtralab installs JupyterLab with a set of extensions and defaults for work with terminal coding agents: an agent launcher, side-by-side git diffs for text files and notebooks, prompts about selected code, and a Model Context Protocol server that lets agents drive the app. It builds on ajlab, the agent-ready JupyterLab base.

The xtralab workspace: file browser, agent launcher, a side-by-side git diff, and a running Claude Code session

See the documentation for the installation, a getting started tutorial, the features, and the desktop app.

Install

pip install xtralab
jupyter lab

To run xtralab in any folder without installing it, use uv:

uvx xtralab

The installation docs also show how to install xtralab as a uv tool or add it to a project.

The desktop app (DMG on macOS, AppImage on Linux) is on the releases page. It includes its own Python runtime. See the desktop app docs.

Highlights

Agent launcher

Start any coding agent installed on your machine, with an optional first prompt. The Changes list opens the diff of each changed file. Read more.

The launcher: a prompt box, one button per installed agent, the Open section, and the list of changed files

Git diffs

Review changes side by side, for text files and for notebooks, and edit the working copy in the diff. Read more.

A side-by-side diff of a Python file, with removed lines on the left and added lines on the right

Ask an agent

Select code, type an instruction, and send it to a new or running agent. The prompt includes the file path, the line range, and the selected code. Read more.

The prompt box below a selected function, with an instruction and one button per agent

Omnibox

Search files and commands, or send a prompt to an agent, from one search box (Cmd/Ctrl+K). Read more.

The omnibox with matching commands, a matching file, and one Ask row per agent

Terminals panel

See the agent in each terminal and its latest line of output. Read more.

The Terminals panel with three agent sessions and their latest output

Connecting agents to JupyterLab (MCP)

xtralab runs a Model Context Protocol server inside JupyterLab, provided by jupyter-server-mcp, so an agent can open files, run cells, and read notebooks. For Claude Code, the xtralab plugin registers the server and installs the agent skills. It starts the proxy with uv:

claude plugin marketplace add jtpio/xtralab
claude plugin install xtralab@xtralab

Without uv, or for another agent, register the bundled proxy from a terminal inside xtralab:

claude mcp add jupyter -- jupyter-server-mcp-proxy

The launcher shows this command for each installed agent. See the MCP docs for Codex, GitHub Copilot, and other agents.

Contributing

See CONTRIBUTING.md for the development setup, the desktop app architecture, and the documentation sources in docs/.

License

BSD-3-Clause

Metadata

Release files for xtralab 0.16.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for xtralab 0.16.0
File Size Uploaded
xtralab-0.16.0.tar.gz 2.4 MB Details

Built distribution (wheel)

Table of built distributions (wheels) for xtralab 0.16.0
File Interpreter ABI Platform
xtralab-0.16.0-py3-none-any.whl Python 3 none any Details

Total release size: 4.8 MB

Release files / xtralab-0.16.0.tar.gz

Download URL xtralab-0.16.0.tar.gz
Size 2.4 MB
Tags Source
SHA-256 checksum
How to use checksums
5a68e0c3a06757881cd1e7488cdce4bbc455e32cd2c9623ed93799d8c313205a
BLAKE2b-256 checksum
How to use checksums
ca215de8902eead98a8aa60678cc32a55e85b53e25189f8f1daef69cd9871b71
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.12.15

Release files / xtralab-0.16.0-py3-none-any.whl

Download URL xtralab-0.16.0-py3-none-any.whl
Size 2.4 MB
Tags Python 3
SHA-256 checksum
How to use checksums
5390a47ee4fe03ea69a96968657323a70ff062242c1a9b24564f9274949f6d22
BLAKE2b-256 checksum
How to use checksums
0b5a6847be0488c3ccf52f9ff8ada12e6937b47798665a281cedf73178e18f95
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.12.15
Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page