jupyterlab_ai_code_assistants_extension
A full launcher and manager for every AI code assistant in JupyterLab - Claude Code, Codex, Kimi and Gemini. Start, resume, fork, switch, and clean up CLI sessions from a side panel per assistant - one click lands you in the right terminal with the assistant already running, no duplicate tabs, no UUID hunting. One install replaces the separate jupyterlab_claude_code_extension, jupyterlab_codex_extension and jupyterlab_kimi_code_extension packages and migrates their settings and favourites automatically.
Why this extension
One principle: the vendors know best how to build the agent harness; we know best how to make it work in JupyterLab.
Chat-panel extensions re-implement the agent loop and trail the real tool. This one runs the genuine, unmodified CLIs in JupyterLab terminals - skills, subagents, MCP, hooks, plan mode, every release the day it lands. The extension owns the JupyterLab side:
- Launching - new, resumed, or forked sessions, with or without permission prompts, no wrapper shell, correctly sized before the assistant draws its first frame
- Finding - every project in one panel per assistant: favourites, search, live activity
- Reusing - clicking a session focuses its existing terminal, never a duplicate
- Managing - parallel conversations: switch, fork with a name, delete - no
--resumepickers, no raw UUIDs
Features
- One install, every assistant - Claude Code, Codex, Kimi and Gemini from a single package, each with its own right-side panel wearing its official mark
- Provider registry - assistant-specific behaviour lives in one module per assistant behind capability flags; no core file names an assistant, and adding one touches no core file
- Joint settings page - one settings section covering all assistants, with a per-assistant toggle (all on by default); toggling takes effect live, no JupyterLab reload
- Three-section side panel - Favorites, Recent, and All projects, each scrolling independently
- One-click resume - click a row to jump back into that session in a terminal; an open terminal for the project is reused instead of duplicated
- Conversation switcher - a right-click "Switch and Manage Sessions" submenu lists a project's other conversations by name and short id with last-activity time; "Manage Sessions..." opens a searchable popup over the full list with multi-select delete and per-row open and copy-id buttons
- Branch session - fork the current conversation into a new named session via the right-click menu; each assistant forks its own way (Claude's native
--fork-session, Codex'scodex fork, server-side copies for Kimi and Gemini) behind the same menu item - Launch modes under each assistant's own name - Claude's skip-permissions, Codex's approval bypass, Kimi's
--yolo, Gemini's YOLO and approval modes; unsafe variants carry a warning glyph - Coloured terminal tabs - each session's colour tints its terminal tab via the companion
jupyterlab_colourful_tab_extension(installed automatically). Assistants without a colour concept get a stable colour from the extension's own store, and a branched session inherits its parent's colour - Favorites - star projects you keep coming back to via the right-click menu; favourites from the standalone extensions are migrated on first run
- Remove and clean up - drop a project's history or a project's extra parallel sessions from the right-click menu, confirmation dialog first; removed files honour JupyterLab's "move files to trash" setting
- Activity at a glance - each row shows its last activity in an aligned column; rows active within the last minute light up, rows idle for over a week dim, and rows with parallel conversations show a branch icon with the count
- Remote control indicator and background agents (Claude) - a green dot marks sessions actively under remote control, and a conversation held by a running background agent shows a
bgchip; clicking attaches to the agent instead of copying it - Search - fuzzy filter per panel, toggled by the funnel button
- Presentation modes - label rows by session name, folder name, or path relative to the JupyterLab root
- Conflict-safe upgrade - if a retired standalone extension is still installed, its panel wins and this extension stands down for that assistant instead of showing a duplicate
- Auto-disabled when absent - an assistant whose CLI is not on
PATHdoes not show a panel
Requirements
- JupyterLab >= 4.0.0
- Python >= 3.10
- At least one assistant CLI on
PATH:claude,codex,kimi, orgemini
Install
Developers must install via the project Makefile (which orchestrates clean, build, and pip install of the resulting wheel):
make install
End-users can install the published package from PyPI:
pip install jupyterlab_ai_code_assistants_extension
[!WARNING]
package.jsonpinswebpack: 5.106.0andchalk: 4.1.2in bothresolutionsandoverrides. Do not remove these. webpack>= 5.106.1changed its module-federation share identifier format and crashes the unmaintainedlicense-webpack-plugin(split('=')[1].trim()) that@jupyterlab/builderinjects into every production build; the duplicatechalk@2.4.2pulled byduplicate-package-checker-webpack-plugincrashes on Node 24+ in the build-isolation install. Without the pins,make publishand CI fail onpython -m build.
Migrating from the standalone extensions
This package supersedes jupyterlab_claude_code_extension, jupyterlab_codex_extension and jupyterlab_kimi_code_extension. On first run it carries their settings and favourites over automatically; uninstall the standalones once you are ready:
pip uninstall jupyterlab_claude_code_extension jupyterlab_codex_extension jupyterlab_kimi_code_extension
While a standalone extension is still installed, its panel is shown and this extension's panel for that assistant stays out of the way.
Uninstall
pip uninstall jupyterlab_ai_code_assistants_extension
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 jupyterlab_ai_code_assistants_extension-0.6.17.tar.gz.
File metadata
- Download URL: jupyterlab_ai_code_assistants_extension-0.6.17.tar.gz
- Upload date:
- Size: 533.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
71696077fc358987bcea92fb2683a5e38d713f85d108276cf8594e4d21e43e22
|
|
| MD5 |
9e8c29e7a7addd984fa67809b22838f6
|
|
| BLAKE2b-256 |
78b853e1f5bc6d9668c7116f4aa95e702493502acc048d53c6822cdea15f1074
|
File details
Details for the file jupyterlab_ai_code_assistants_extension-0.6.17-py3-none-any.whl.
File metadata
- Download URL: jupyterlab_ai_code_assistants_extension-0.6.17-py3-none-any.whl
- Upload date:
- Size: 147.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4890e90a3d0cc9d47e809f01578efc0376e0c7486cd1db9103fd61c707839a42
|
|
| MD5 |
41dfc9ab3c5463c4263c693059231a01
|
|
| BLAKE2b-256 |
16785da112e969306c5febc0a026f91c7964bcbc4dd7a05b27bca14f21ecb770
|