dsh-jupyterlab:在 DeepSeek Harness 裏用 JupyterLab 風格操作持久化 ipykernel Notebook

前言

在 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 新增(界面與交互)

  1. 分欄視圖(代碼 | 輸出)
    每個代碼單元格左爲編輯器、右爲輸出(圖、stdout、DataFrame、traceback 等);可拖拽分隔條調整比例並記住比例。工具欄 ⇔ Split / ⇕ Inline 可在分欄與經典上下堆疊佈局間切換。

  2. 輸出隨視口可見
    輸出區底部對齊並隨滾動「貼」在視口,長單元格滾動時剛繪製的圖不必留在單元格頂部纔看得到。

  3. Jupyter 鍵盤快捷鍵
    命令模式下 Esc,a / b 在上方/下方插入單元格,dd 刪除,Enter 進入編輯,↑ ↓ 或 k / j 移動,m / y 切換 Markdown / Code,Ctrl+Enter / Shift+Enter / Alt+Enter 運行;編輯時 Tab 接受補全(無補全彈窗時仍縮進);? 打開快捷鍵列表。

  4. 單元格類型與一鍵刪除
    行號區剪刀刪除單元格;py / md 芯片顯示並切換類型。Markdown 支持 ## 標題渲染、雙擊編輯、與代碼單元格類似的摺疊。

  5. 工具欄 + MD
    插入 Markdown 單元格;原有 + Cell 插入後會選中並聚焦新單元格。

  6. 左側文件欄(JupyterLab 風格)
    列出工作目錄下已保存的 .ipynb,點擊打開;工具欄 🗂 Files 顯示/隱藏該欄。

  7. 右側圖窗
    點擊輸出中的 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 插件重複註冊。

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜