Skip to main content

Browse, resume, and manage your Claude Code CLI sessions from a JupyterLab side panel. One click reactivates the right terminal - no duplicate tabs, live remote-control indicator, and favourites for the projects you keep coming back to.

Project description

jupyterlab_claude_code_extension

GitHub Actions npm version PyPI version Total PyPI downloads JupyterLab 4 Brought To You By KOLOMOLO Donate PayPal

A full Claude Code launcher and manager for JupyterLab. Start, resume, fork, switch, and clean up Claude Code CLI sessions from a side panel - one click lands you in the right terminal with Claude already running, no duplicate tabs, no UUID hunting, with a live indicator showing which sessions are active right now.

Claude Code Sessions panel

Why this extension

One principle: Anthropic knows 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 Claude Code CLI 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 Claude draws its first frame
  • Finding - every Claude project in one panel: 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 --resume pickers, no raw UUIDs

Features

  • Three-section side panel - Favorites, Recent, and All projects, each scrolling independently
  • Live indicator - a green dot marks sessions that are currently running somewhere
  • One-click resume - click a row to jump back into that session in a terminal. If a terminal for the project is already open, it's reused instead of duplicated
  • Favorites - star projects you keep coming back to via the right-click menu
  • Remove - drop a project's Claude history from the panel via the right-click menu; the history folder is moved to the trash (it honours JupyterLab's "move files to trash" setting), not deleted permanently
  • Clean up parallel sessions - when a project has accumulated extra sessions beyond the main one, a right-click menu item (showing the count in brackets) removes them all, keeping only the main session; removed files honour the same trash setting
  • Conversation switcher - a right-click "Switch and Manage Sessions" submenu lists a project's other conversations by name and short session id, e.g. home (3f2a1b9c), with last-activity time; pick one and it becomes the row's current conversation - the next click resumes exactly that one. The submenu shows the 5 most recent; "Manage Sessions..." opens a searchable popup over the full list where conversations can also be deleted - select one, many, or all via checkboxes, then confirm with a two-step Delete button (removed files honour the trash setting). Rows with multiple conversations show a branch icon with the count after the name
  • Branch session - fork the current conversation into a new named session via the right-click menu (normal or skip-permissions mode); uses Claude's native --fork-session, opens in a new terminal, the chosen name is stamped automatically, and the fork becomes the row's current conversation
  • Activity at a glance - each row shows its last activity (now, 5m ago, 2h ago, 3d ago) in an aligned column, with the favourite star in its own column beside it; rows active within the last minute light up in the theme's brand colour (including the now label), rows idle for over a week dim slightly
  • Search - fuzzy filter toggled by the funnel button next to refresh
  • Presentation modes - label rows by session name (so a /rename shows through), folder name, or path relative to the JupyterLab root
  • Hover tooltip with project path, last activity, message count, branch, and session id
  • Auto-disabled when the Claude Code CLI is not installed

Requirements

  • JupyterLab >= 4.0.0
  • Python >= 3.10
  • claude CLI on PATH

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_claude_code_extension

[!WARNING] package.json pins webpack: 5.106.0 and chalk: 4.1.2 in both resolutions and overrides. Do not remove these. webpack >= 5.106.1 changed its module-federation share identifier format and crashes the unmaintained license-webpack-plugin (split('=')[1].trim()) that @jupyterlab/builder injects into every production build; the duplicate chalk@2.4.2 pulled by duplicate-package-checker-webpack-plugin crashes on Node 24+ in the build-isolation install. Without the pins, make publish and CI fail on python -m build.

Uninstall

pip uninstall jupyterlab_claude_code_extension

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

jupyterlab_claude_code_extension-1.2.9.tar.gz (2.7 MB view details)

Uploaded Source

Built Distribution

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

File details

Details for the file jupyterlab_claude_code_extension-1.2.9.tar.gz.

File metadata

File hashes

Hashes for jupyterlab_claude_code_extension-1.2.9.tar.gz
Algorithm Hash digest
SHA256 0aa345781d541c5bc105f27de93880396dff0581c8d349ebe736694d1bb001f7
MD5 76c468de35b98d56bbf445866de7a354
BLAKE2b-256 338e70e65f066d1b639881859637943b81641d8e0b0a2956e86566ff1d2c5e0d

See more details on using hashes here.

File details

Details for the file jupyterlab_claude_code_extension-1.2.9-py3-none-any.whl.

File metadata

File hashes

Hashes for jupyterlab_claude_code_extension-1.2.9-py3-none-any.whl
Algorithm Hash digest
SHA256 8d7e213ad2dc9a18a4eab3fbf6f1963c76585c180ef7a6437f402c3fc94e6ed6
MD5 bdc76734cde079e933f6378805825558
BLAKE2b-256 0571a7838e34c2551daf7cb347d4a3acc647ea7019b3e917fe792251f53105ed

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