JupyterLab-style notebook for DSH: code and output side by side with a draggable divider, outputs that stick to the viewport while a long cell scrolls, Jupyter keyboard shortcuts (a/b/dd, m/y, Shift+Enter vs Ctrl+Enter), a scissors button to delete a cell and a chip to switch it between code and Markdown. Modified fork of @beihaizb/dsh-notebook: both register the same nb_* tools, so remove the original before installing; the Python kernel you pick needs ipykernel, jupyter_client and nbformat.
Install
# from a prebuilt release tarball
dsh plugin --profile web add "https://github.com/NKUhan123/dsh-jupyterlab/releases/latest/download/dsh-jupyterlab.tgz"
# from GitHub (first run asks for allowBuilds approval — follow the hint, retry)
dsh plugin --profile web add github:NKUhan123/dsh-jupyterlab
Any plugin you install runs third-party code with your own permissions — it can read your files, use your credentials, and reach the network, and tool approvals don’t sandbox it. GitHub-sourced plugins also run build scripts at install time — pnpm blocks those until you allow them, so an install can stop with ERR_PNPM_GIT_DEP_PREPARE_NOT_ALLOWED or ERR_PNPM_IGNORED_BUILDS; dsh prints the exact key to add under allowBuilds in your profile’s pnpm-workspace.yaml, and the install works on the next run. Allowing a build is a trust decision: only install sources you trust, and pin a commit (github:owner/repo#sha).
README
A JupyterLab-style notebook for DeepSeek Harness. A real, persistent ipykernel the agent can read, edit and run — with a front end that behaves like JupyterLab: code on the left, figures on the right, Jupyter keyboard shortcuts, and Markdown cells.
This is a modified fork of
@beihaizb/dsh-notebookby beihzb (MIT). The kernel sidecar, thenb_*agent tools,.ipynbsave/load and the cell UI are upstream work. This package keeps all of it and adds the features below, as a single self-contained plugin (the upstream sources are vendored, sodsh plugin addinstalls everything).
What this fork adds
- Split view (code | output). Every code cell renders as two columns: the editor on the left, its outputs — figures, stdout, DataFrames, tracebacks — on the right. A draggable divider resizes the columns and the ratio is remembered. The toolbar button
⇔ Split/⇕ Inlinereturns to the classic stacked layout. - Outputs stay in sight. The output pane is bottom-aligned and sticks to the viewport while you scroll a long cell, so a figure you just rendered is already on screen instead of being stranded at the top of the cell.
- Jupyter keyboard shortcuts. Press
Escto leave editing (command mode), thena/binsert a cell above / below,dddeletes,Enteredits,↑↓(orkj) move,m/yswitch the cell to Markdown / Code, andCtrl+Enter/Shift+Enter/Alt+Enterrun. While editing,Tabaccepts the completion popup (and still indents when none is open).?opens the shortcut list. - Cell type and one-click delete. A
✂scissors in the gutter deletes the cell, and apy/mdchip shows and switches the cell type. Markdown cells render##headings, are edited by double-click, and can be folded like code cells. + MDin the toolbar inserts a Markdown cell (the existing+ Cellnow selects and focuses what it inserts).
Everything else — persistent kernel, agent tools, .ipynb round-trip, kernel picker, tqdm progress bars, clickable tracebacks, long-output folding, hybrid-CPU hint, EN/中文 UI — is upstream and unchanged.
Install
From the GitHub repository (this is what the plugin market uses):
dsh plugin --profile desktop add github:NKUHan123/dsh-jupyterlab
Or from the prebuilt tarball attached to the latest GitHub Release (no build step):
dsh plugin --profile desktop add file:<path-to>/dsh-jupyterlab.tgz # prebuilt tarball from the latest GitHub Release
Then restart DeepSeek Harness. A Notebook tab appears in the session.
The package ships its compiled lib/ and the Python driver, so there is nothing to build at install time (no prepare / install scripts — pnpm has no build to approve).
Don't install this next to
@beihaizb/dsh-notebook. Both register the samenb_*tools; this fork is a superset, so remove the original first:dsh plugin --profile desktop remove @beihaizb/dsh-notebook
The Python environment you pick as kernel needs ipykernel, jupyter_client and nbformat.
Keyboard
| Mode | Key | Action |
|---|---|---|
| command | Enter |
edit the selected cell |
| command | Esc |
back to command mode |
| command | a / b |
insert a cell above / below |
| command | d d |
delete the selected cell |
| command | ↑ ↓ / k j |
select previous / next cell |
| command | m / y |
switch to Markdown / Code |
| command | Ctrl+Enter |
run, stay on the cell |
| command | Shift+Enter |
run, move to the next cell |
| command | Alt+Enter |
run, insert a cell below |
| command | ? |
shortcut list |
| editing | Ctrl+Enter / Shift+Enter / Alt+Enter |
same run modes |
| editing | Tab |
accept completion (indent when nothing is open) |
| editing | Esc |
leave editing |
Tools (unchanged from upstream)
nb_new / nb_open / nb_save / nb_get / nb_context / nb_list / nb_list_vars / nb_inspect_object /
nb_add_cell / nb_delete_cell / nb_move_cell / nb_edit_cell / nb_edit_and_run_cell /
nb_cell_history / nb_revert_cell / nb_error_context /
nb_run_cell / nb_run_all / nb_apply_suggestion /
nb_kernel_restart / nb_kernel_restart_and_clear / nb_kernel_interrupt /
nb_kernel_list / nb_kernel_select / nb_clear_outputs / nb_set_cwd
nb_add_cell also accepts before (insert above a given cell) in this fork.
Compatibility
DSH 0.1.x-rc and 0.2.x-rc (@deepseek-ai/dsh-tools: ^0.1.0-rc.6 || ^0.2.0-rc.1 || ^0.2.1-rc.1). Developed and tested against DSH 0.2.1-rc.5 on Windows with a conda ipykernel.
License & attribution
MIT. Original work Copyright (c) 2025-present beihzb — @beihaizb/dsh-notebook; modifications Copyright (c) 2026 dsh-jupyterlab contributors. See LICENSE.
Links
More in this category
zhu1090093659/dsh-web#packages/dsh-task-board★ 9925
Task board for the dsh web GUI: a sidebar multi-column kanban whose cards run in real DSH agent sessions and can also be scheduled with cron expressions, executed host-side even with the browser closed.
zhu1090093659/dsh-web#packages/dsh-web-all★ 9925
Plugin and skin collection for the DSH Web UI: task board, Git graph, right-side panel, remote mobile UI, pet, live token stats, and a skin center.
MeteorNOX/DeepSeek-Balance-Whale-Widget★ 6712
A fixed-corner whale widget for the DSH web GUI — balance, today's usage and per-turn cost with peak/off-peak pricing, editable balance-alert and daily-budget bubbles, a module-based custom bubble queue with A/B weighted choices and random lines or images, 30+ vendor templates (OpenAI, OpenRouter, Kimi, SiliconFlow, Ark, Zhipu, MiniMax and more) with per-model balance and subscription quota, plus task-end sound, imported audio, custom roles and a resource manager. Local-only, no telemetry.
ccch1mneyyy/dsh-TUI★ 6538
Claude Code-style full-screen terminal UI: pixel-whale header, live status line, and streaming thought expansion.
omdsh-dev/DSH-better-sidebar★ 4808
Full sidebar workbench with file rendering and editing, terminal, Git, and subagents; third-party plugins can register new tabs.
Devin-AXIS/deepseek-design#deepseek-idesign★ 1672
Visual design studio for websites, app prototypes, posters, cards, reports, and magazines, with templates, direct element editing, selection-aware AI draft handoff, and export.
Community comments
Comments are public GitHub Discussions. Loading them connects to GitHub and Giscus; a GitHub account is required to post.