jupyterlab_kimi_code_extension
v0.7.8
Published
Browse, resume, and manage your Kimi Code CLI sessions from a JupyterLab side panel. One click reactivates the right terminal - no duplicate tabs, live activity indicators, and favourites for the projects you keep coming back to. Companion to jupyterlab_c
Maintainers
Readme
jupyterlab_kimi_code_extension
A Kimi Code launcher and manager for JupyterLab. Start, resume, fork, switch, and clean up Kimi Code CLI sessions from a side panel - one click lands you in the right terminal with Kimi already running, no duplicate tabs, no session-id hunting. Companion to jupyterlab_claude_code_extension, built to the same design.
Why this extension
One principle: Moonshot 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 Kimi Code CLI in JupyterLab terminals - skills, subagents, MCP, every release the day it lands. The extension owns the JupyterLab side:
- Launching - new or resumed sessions, normal or YOLO mode, no wrapper shell, correctly sized before Kimi draws its first frame
- Finding - every Kimi 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
-Spickers, no raw UUIDs
Features
- 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 (
kimi -S <session-id>). If a terminal already runs that exact conversation, it's reused instead of duplicated - YOLO mode - every launch action has a
(YOLO)variant that starts Kimi with--yolo, auto-approving regular tool calls; ayoloModesetting makes it the default - Branch session - fork the current conversation into a new named session via the right-click menu (normal or YOLO). Kimi has no fork CLI flag, so the extension forks server-side: the session directory is copied with a fresh id and title, and the fork opens in a new terminal with
kimi -S - Conversation switcher - a right-click "Switch and Manage Sessions" submenu lists a project's parallel conversations by title and short session id with last-activity time; pick one and it becomes the row's current conversation. "Manage Sessions..." opens a searchable popup - scrollable table, current conversation pinned at top, multi-select delete to trash
- Open branched conversation - open any parallel conversation directly in its own terminal, so several branches of one project run side by side
- Copy session id - right-click copies the row's current conversation id to the clipboard; the Manage Sessions popup adds a copy button on every row
- Favorites - star projects you keep coming back to via the right-click menu
- Remove and clean up - drop a project's Kimi history (moved to trash, honouring JupyterLab's "move files to trash" setting), or clean up parallel sessions keeping only the main one; both ask for confirmation first
- Coloured terminal tabs - each conversation's terminal tab is tinted with a colour derived deterministically from its session id (Kimi has no
/colorcommand, so the tint is stable per conversation instead of user-set); needs the companionjupyterlab_colourful_tab_extension(installed automatically). On by default; turn it off with the "Coloured terminal tabs" setting - Activity at a glance - each row shows its last activity (
now,5m ago,2h ago,3d ago) in an aligned column; rows active within the last minute light up in the theme's brand colour, rows idle for over a week dim - Search - fuzzy filter toggled by the funnel button next to refresh, with a clear button
- Presentation modes - label rows by name (the session title Kimi records, falling back to the folder name) or by path relative to the JupyterLab root
- Hover tooltip with project path, last activity, message count, conversation count, git branch, and session id
- Auto-disabled when the Kimi Code CLI is not installed
Requirements
- JupyterLab >= 4.0.0
- Python >= 3.10
kimiCLI onPATH
Install
Developers must install via the project Makefile (which orchestrates clean, build, and pip install of the resulting wheel):
make installEnd-users can install the published package from PyPI:
pip install jupyterlab_kimi_code_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 duplicate[email protected]pulled byduplicate-package-checker-webpack-plugincrashes on Node 24+ in the build-isolation install. Without the pins,make publishand CI fail onpython -m build.
Kimi statusline
The package ships a companion CLI that installs a powerline-style status line (context %, model, effort, git, env, pwd) into ~/.kimi-code and points status_line.command in tui.toml at it - after asking for confirmation:
jupyterlab_kimi_code install-kimi-statuslineUninstall
pip uninstall jupyterlab_kimi_code_extension