前言¶
在 DeepSeek Harness(DSH)里做数据分析或调试 Python,常见做法是依赖智能体读写脚本、在终端里零散执行命令。若希望像 Jupyter 一样保留单元格、图形输出和 .ipynb 往返,同时让智能体通过 nb_* 工具读写内核状态,需要一套带前端、带持久 ipykernel 的 Notebook 插件。社区里 @beihaizb/dsh-notebook 已提供内核侧车、工具链与单元格 UI;dsh-jupyterlab 在其基础上 vendoring 上游代码,做成自包含插件,并增加分栏视图、Jupyter 快捷键、左侧文件栏与右侧图窗等 JupyterLab 式交互。下面介绍它是什么、能做什么,以及如何安装与使用时需注意的事项。
这是什么¶
dsh-jupyterlab 是面向 DSH 的 Notebook 插件:提供可持久运行的真实 ipykernel,智能体可读、改、跑单元格;前端行为接近 JupyterLab——代码与输出分栏、Markdown 单元格、Jupyter 键盘快捷键,并支持工作目录下 .ipynb 的保存与打开。
- 维护者:NKUhan123(仓库 github.com/NKUhan123/dsh-jupyterlab)
- 许可证:MIT(上游 beihzb 的
@beihaizb/dsh-notebook亦为 MIT) - 当前包版本(
package.json):0.2.5 - 定位说明:本仓库为
@beihaizb/dsh-notebook的修改 fork;内核侧车、nb_*工具、.ipynb存取与单元格 UI 来自上游,本包在保留全部能力的前提下增加下文「本 fork 新增」所列功能,安装时无需再单独构建上游。
核心功能¶
上游能力(本包保留)¶
持久内核、智能体工具、.ipynb 往返、内核选择器、tqdm 进度条、可点击 traceback、长输出折叠、hybrid-CPU 提示、中英文 UI 等,与 @beihaizb/dsh-notebook 一致。智能体侧工具名仍为 nb_new、nb_open、nb_save、nb_run_cell、nb_kernel_list 等(完整列表见仓库 README 的 Tools 一节)。
本 fork 新增(界面与交互)¶
-
分栏视图(代码 | 输出)
每个代码单元格左为编辑器、右为输出(图、stdout、DataFrame、traceback 等);可拖拽分隔条调整比例并记住比例。工具栏⇔ Split/⇕ Inline可在分栏与经典上下堆叠布局间切换。 -
输出随视口可见
输出区底部对齐并随滚动「贴」在视口,长单元格滚动时刚绘制的图不必留在单元格顶部才看得到。 -
Jupyter 键盘快捷键
命令模式下Esc,a/b在上方/下方插入单元格,dd删除,Enter进入编辑,↑↓或k/j移动,m/y切换 Markdown / Code,Ctrl+Enter/Shift+Enter/Alt+Enter运行;编辑时Tab接受补全(无补全弹窗时仍缩进);?打开快捷键列表。 -
单元格类型与一键删除
行号区剪刀删除单元格;py/md芯片显示并切换类型。Markdown 支持##标题渲染、双击编辑、与代码单元格类似的折叠。 -
工具栏
+ MD
插入 Markdown 单元格;原有+ Cell插入后会选中并聚焦新单元格。 -
左侧文件栏(JupyterLab 风格)
列出工作目录下已保存的.ipynb,点击打开;工具栏🗂 Files显示/隐藏该栏。 -
右侧图窗
点击输出中的 figure,或输出里打印的图片路径(如Saved: ...\fig.tif),在右侧可缩放面板中打开(适应窗口 / 实际大小 / 全屏 / 关闭),而非全屏模态。.tif/.tiff经内核 Pillow 转 PNG 并缓存后可预览。
本 fork 中 nb_add_cell 另支持 before 参数,在指定单元格上方插入。
安装与启用¶
插件随编译好的 lib/ 与 Python 驱动一并发布,安装时无需本地 build(无 prepare 等需审批的安装脚本)。
从 GitHub 安装(插件市场同款命令):
dsh plugin --profile desktop add github:NKUHan123/dsh-jupyterlab
或从 GitHub Release 附带的预构建 tarball 安装(无需构建步骤):
dsh plugin --profile desktop add file:<path-to>/dsh-jupyterlab.tgz
安装后重启 DeepSeek Harness,会话中会出现 Notebook 标签页。
不要与本插件上游包并存:两者注册相同的 nb_* 工具;本 fork 为超集,应先移除原版:
dsh plugin --profile desktop remove @beihaizb/dsh-notebook
所选 Python 内核环境需安装 ipykernel、jupyter_client、nbformat。
典型用法¶
人机协作¶
人在 Notebook 标签页里编辑、运行单元格;智能体通过 README 所列 nb_* 工具新建/打开/保存 notebook、编辑并运行单元格、列出变量、重启内核等。持久 ipykernel 状态在会话内保持,便于迭代分析与可视化。
快捷键(摘要)¶
| 模式 | 按键 | 作用 |
|---|---|---|
| command | Enter |
编辑选中单元格 |
| command | Esc |
回到命令模式 |
| command | a / b |
在上方/下方插入单元格 |
| command | d d |
删除选中单元格 |
| command | m / y |
切换 Markdown / Code |
| command | Ctrl+Enter / Shift+Enter / Alt+Enter |
运行(停留 / 下一格 / 下方插入) |
| command | ? |
快捷键列表 |
完整表格见仓库 README 的 Keyboard 一节。
适用场景与注意¶
适合:需要在 DSH 内用 Jupyter 式工作流做 Python 数据分析、画图、与智能体共享同一 notebook 与内核状态的开发者。
兼容性(README):DSH 0.1.x-rc 与 0.2.x-rc;peer 依赖 @deepseek-ai/dsh-tools: ^0.1.0-rc.6 || ^0.2.0-rc.1 || ^0.2.1-rc.1。作者在 DSH 0.2.1-rc.5、Windows、conda ipykernel 环境下开发与测试。
安全与权限:插件与当前 DSH 进程权限一致,内核可读写工作目录、执行任意你允许的 Python 代码。安装前请阅读仓库源码与 MIT 许可证,确认来源与行为符合你的环境策略。
生态说明:DSH 采用「一切皆插件」的扩展方式;社区插件目录站点(如 skillhub.cn 上的条目页)为独立社区索引,与 DeepSeek / 幻方无官方从属关系。
结尾¶
dsh-jupyterlab 在保留 @beihaizb/dsh-notebook 内核与 nb_* 工具链的前提下,把 Notebook 前端做成更接近 JupyterLab 的三栏布局(文件栏、单元格、图窗)与分栏代码/输出体验,并补齐 Jupyter 快捷键与 Markdown 单元格。若你已在用 DSH desktop profile 做数据或脚本协作,可按上文命令安装并避免与上游 notebook 插件重复注册。