前言¶
DeepSeek Harness 的插件生態強調「一切皆插件」。在 Web 或桌面端使用 dsh 做會話式開發時,經常會碰到一個具體需求:當前對話已經綁定了一個工作區目錄,希望在不離開界面的情況下查看文件、編輯文件、保存修改,而不用切到本地編輯器或終端。
dsh-file 就是針對這個場景的插件。維護者是 chengzhi43,包名爲 @rose43/dsh-file,許可證爲 MIT。它做的事情比較集中:在 Web 側邊欄瀏覽當前對話工作區的文件,在中間主區域編輯。
這是什麼¶
dsh-file 是 DeepSeek Harness 的 VS Code 風格文件管理器插件。
它把三個動作放進同一個界面:
- 在側邊欄顯示當前工作區的文件樹;
- 在中間主區域打開文件編輯視圖;
- 文件視圖與對話/軌跡並列,不依賴彈窗。
它適合希望在 dsh web 或桌面端內直接處理當前會話工作區文件的場景。
核心功能¶
側邊欄文件管理器¶
側邊欄底部有“文件”按鈕。點擊後,側邊欄主體切換爲文件管理器;再次點擊,切回工作區/會話列表。
文件管理器打開時,會解析當前會話的工作區目錄(SessionHeader.cwd),並通過 setRoot 重新固定網關根目錄。因此瀏覽範圍跟隨當前對話,而不是固定爲啓動 dsh web 的目錄。
中間列編輯¶
點擊文件後,文件在中間列的“文件”視圖中打開。該視圖與“對話/軌跡”並列。
編輯器使用 Monaco Editor,並按擴展名自動進行語法高亮。Monaco Editor 從 CDN 加載;CDN 不可達時降級爲純文本 textarea。
Markdown 預覽¶
打開 .md 文件時,默認渲染爲只讀預覽。Markdown 解析使用 marked + GFM。
預覽/源碼切換按鈕用於切換顯示模式;模式選擇會保存到 localStorage,下次打開沿用。
主題設置¶
編輯器工具欄的“主題”按鈕可以打開主題設置面板。
預設主題包括淺色、深色、One Dark、GitHub。可自定義背景色、文字色和字號,範圍 10–28px。設置會即時應用,並持久化到 localStorage。
主題也支持導出 JSON 主題文件,並支持從 JSON 文件導入恢復。
編輯與保存¶
保存可以使用 Ctrl+S,也可以點擊編輯器內“保存”按鈕。未保存修改會有 dirty 標記。
多文件打開時,可以在頂部標籤條切換,並逐個關閉。
文件操作¶
文件操作支持:
- 新建文件;
- 新建目錄;
- 重命名;
- 刪除。
刪除需要確認;非空目錄會被拒絕。
工作區邊界¶
所有路徑解析都相對當前固定的 root。越界路徑會被 host 拒絕,並且包含 symlink 逃逸防護。
安裝與啓用¶
資料給出的 npm 安裝命令爲:
dsh plugin --profile web add @rose43/dsh-file
如果從 clone 下來的 dsh-file 目錄本地安裝,需要在插件目錄內執行:
cd /path/to/dsh-file
dsh plugin --profile web add .
桌面端使用 desktop profile。命令爲:
cd /path/to/dsh-file
dsh plugin --profile desktop add .
從 Releases 下載 tarball 後,資料中的本地安裝示例爲:
dsh plugin --profile web add ./rose43-dsh-file-0.1.2.tgz
執行 dsh plugin add 後,包會被 pnpm-link 進 profile,並追加到 dsh.profile.bundles。web 插件需要重啓 dsh web 後生效。
桌面端 profile 與 web profile 獨立,插件不會自動共享。安裝到 desktop profile 後,需要完全退出並重啓桌面端。
注意:不要往 ~/.dsh/profiles/desktop/cordis.yml 添加插件。正確入口是 profile package.json 的 dsh.profile.bundles + dependencies。dsh plugin add 做的正是這件事。
另外,不要在插件目錄裏跑 npm install,這可能破壞 profiles 的 symlink 結構。@deepseek-ai/* 包不能在插件自己的 node_modules 裏安裝副本;必須讓 Node 解析到 dsh 安裝目錄的同一實例。生產發佈時,插件將 @deepseek-ai/* 聲明爲 peerDependencies,由 profile 提供。
配置¶
cordis.patch.yml 中的 root 只是無會話時的兜底根目錄,默認 process.cwd()。文件管理器打開時,會按當前對話工作區重新固定,因此一般無需改動:
- insert:
- id: '@rose43/dsh-file'
name: '@rose43/dsh-file'
config:
root: !!js process.cwd()
典型用法¶
1、點擊側邊欄底部“文件”按鈕,打開文件管理器。
2、點擊某個文件,在中間列“文件”視圖中打開。
3、如果打開 .md 文件,使用預覽/源碼切換按鈕切換顯示模式。
4、通過工具欄“主題”按鈕打開主題設置,導出或導入 JSON 主題文件。
5、修改後使用 Ctrl+S 或“保存”按鈕保存。
6、使用插件提供的文件操作新建、重命名或刪除文件/目錄。
適用場景¶
適合這些場景:
- 在
dsh web中使用當前對話工作區; - 在桌面端
dsh中希望快速查看和修改工作區文件; - 需要 Markdown 預覽、主題設置和基礎文件操作;
- 希望把文件瀏覽和編輯保留在插件化界面內。
注意事項¶
- 插件以當前
dsh進程權限運行,安裝前應檢查源碼與許可證; - 工作區邊界依賴當前固定
root,越界路徑會被拒絕; Monaco Editor依賴CDN,CDN不可達時降級爲純文本textarea;desktop與webprofile 獨立,安裝命令中的--profile要與目標端一致;- 不要往
~/.dsh/profiles/desktop/cordis.yml添加插件; - 不要在插件目錄裏跑
npm install; @deepseek-ai/*需要解析到dsh安裝目錄的同一實例。
鏈接¶
目錄頁(社區目錄):
https://www.skillhub.cn/plugins/chengzhi43/dsh-file
GitHub:
https://github.com/chengzhi43/dsh-file