用 dsh-drag-and-drop 把本地文件拖進 DeepSeek Harness 並插入真實路徑

前言

DeepSeek Harness(dsh)的工具跑在本機上:讀文件、改代碼、執行命令,用的都是操作系統裏的真實路徑。網頁界面卻是另一套規則。出於安全考慮,瀏覽器幾乎從不把拖入文件的真實文件系統路徑交給頁面,最多給一個本地文件 URI,很多時候什麼都不給。結果就是:把 PDF、源碼目錄或配置文件拖進輸入框,要麼被當成上傳(得到一份切斷了相鄰依賴的副本),要麼觸發「僅支持 PNG、JPG、WebP、GIF」一類提示,要麼只能手敲一長串絕對路徑。

dsh 的設計口號是「一切皆插件」。模型和工具可以換,Web UI 的交互同樣可以補。社區目錄裏的 dsh-drag-and-drop 就是在補這個缺口:把文件或文件夾拖到頁面任意位置,插件在運行 dsh 的那臺機器上把路徑解析回來,再以可移除標籤的形式掛到輸入框上方。

需要先說清楚:下面介紹的是 DeepSeek Harness 插件庫 收錄的社區插件。該站點是獨立目錄,與 DeepSeek / 幻方沒有官方從屬關係,不是官方應用商店。本文依據目錄詳情頁、GitHub 倉庫的 README / package.json / CHANGELOG,以及 DeepSeek Harness 官方倉庫 交叉覈對。

這是什麼

dsh-drag-and-drop 是一款界面增強插件,由 akiracod 維護,當前發佈版本爲 v0.2.0(CHANGELOG 標註日期 2026-08-14)。倉庫主要語言是 TypeScript,許可證爲 BSD-3-Clause。GitHub 倉庫頁面當前顯示 2 星;社區目錄頁收錄時顯示 1 星。

它解決的問題很具體:在 DSH Web UI 裏拖入本地文件或文件夾,得到的是原始絕對路徑,而不是一份上傳副本。文檔和文件夾會變成輸入框上方的可移除芯片(chip),輸入框本身保持空白,方便繼續打字;也可以直接點芯片欄的發送按鈕,不打字就發出去。

倉庫 README 寫明:這是 omdsh-dev/dsh-drag-and-drop(原 bill9109/dsh-drag-and-drop)的維護 fork。package.json 裏的包名仍是 @omdsh-dev/dsh-drag-and-drop,卸載時要用這個名字。

核心功能

拖入即掛路徑,不上傳文件

把文件拖到 Web UI 任意位置即可。拖拽過程中會有全頁面壓暗和模糊提示。鬆開後,每個項目變成輸入框上方文件欄裏的一枚芯片:懸停可看完整解析路徑,點 × 移除。支持一次拖入多個文件或文件夾。

插件不會上傳、複製、移動、修改或刪除文件。文件始終留在原來的目錄裏。草稿通過 DSH 的輸入狀態服務寫入,不直接改輸入框 DOM。

文檔走芯片,圖片走原生

v0.2.0 相對上游的主要變化在交互,而不是定位算法:

  • 文檔和文件夾顯示爲芯片,不再把 C:\...\file.docx 這類路徑文本塞進輸入框。
  • 芯片欄自帶「發送」按鈕,解析出的路徑會自動拼進發出的消息。
  • 拖入文檔不再觸發輸入框那個「僅支持 PNG、JPG、WebP、GIF」提示。
  • 純圖片拖放仍走原生邏輯,顯示縮略圖附件。

瀏覽器藏路徑時,在本機把文件找回來

如果瀏覽器提供了本地文件 URI,插件直接轉成當前系統的原生路徑,覆蓋 POSIX、Windows 盤符和 UNC 網絡路徑。

如果瀏覽器把路徑完全藏起來,定位順序是:

  1. 當前 Workspace
  2. 其他已註冊 Workspace
  3. Desktop、Documents、Downloads
  4. 操作系統文件索引
  5. 有邊界限制的平臺目錄搜索

系統索引按平臺不同:macOS 用 Spotlight;Linux 優先 plocate,其次 locate;Windows 優先 Everything CLI,其次 PowerShell。Linux 在索引沒有結果時還會搜用戶主目錄以及 /mnt/media 下的掛載點;Windows 則會搜用戶目錄和可用固定磁盤。

搜索是有上限的:單次外部索引命令 3 秒超時,最多保留 100 個候選,每個遞歸根最多訪問 20,000 個目錄項,讀不到的目錄和文件直接跳過。

同名文件先按完整文件名和大小過濾,修改時間只用於排序。只剩一個候選時不讀文件內容;多個候選才比較開頭、中間、結尾的採樣指紋,大文件採樣仍衝突纔會算完整 SHA-256。內容完全相同、無法自動區分時,彈出路徑列表讓用戶選。文件夾按名稱匹配,結構相同則再對最多 24 個確定性選擇的文件做內容採樣。目錄遍歷最多 10,000 個項目、32 層,不跟隨符號鏈接或 Windows junction。

安裝與啓用

社區目錄頁給出的安裝命令是:

dsh plugin add github:akiracod/dsh-drag-and-drop

這是一個 Web UI 插件。倉庫 README 要求裝進 web profile,並聲明 package.json 裏帶有 dsh.bundledsh.client,不需要改 DSH 源碼,也不再讀取舊的 config.yaml

dsh plugin --profile web add github:AKIRACOD/dsh-drag-and-drop

本地 checkout 可以寫成:

dsh plugin --profile web add /path/to/dsh-drag-and-drop

倉庫已提交 lib/ 構建產物,安裝後不用再構建。package.json 要求 Node.js ^20.0.0 || >=22.0.0

需要可復現安裝時,按目錄頁說明固定 commit 哈希:

dsh plugin add github:akiracod/dsh-drag-and-drop#commit

commit 換成實際哈希。

裝好之後,按你平時啓動 DSH Web UI 的方式重啓,再刷新瀏覽器。插件會出現在瀏覽器引導圖 __DSH_BOOT__ 裏,client bundle 隨頁面加載。只裝不重啓,頁面上不會生效。

升級:

dsh plugin --profile web update github:AKIRACOD/dsh-drag-and-drop

卸載要用包名,不是 GitHub 路徑:

dsh plugin --profile web remove @omdsh-dev/dsh-drag-and-drop

卸載後同樣需要重啓 Web UI 並硬刷新瀏覽器。

目錄頁和倉庫都提醒:插件以當前 dsh 進程的權限運行,安裝時可能執行代碼。裝之前應檢查源代碼倉庫和許可證。

典型用法

倉庫 README 裏的操作步驟可以按原樣做:

  1. 從 Finder、Linux 文件管理器或 Windows 資源管理器,把文件或文件夾拖到 DSH Web UI 的任意位置。
  2. 出現全頁面拖拽提示後再鬆開。每個項目變成輸入框上方文件欄裏的芯片。
  3. 懸停芯片查看完整路徑,點 × 移除不需要的項。
  4. 只想發送這些文件時,點文件欄的「發送」按鈕;如果同時還寫了文字,按回車或點右下角原生髮送按鈕,路徑會一併帶上。

純圖片繼續走原生附件。文檔和文件夾走芯片欄。

拖完沒有反應時,README 建議先確認全頁面提示是否出現,再用下面命令檢查 bundle 是否在 web profile 裏,並確認已經重啓 Web UI 且硬刷新過頁面:

dsh --profile web --dump-config | grep drag-and-drop

大磁盤上定位偏慢時,Linux 可安裝 plocate,Windows 可安裝 Everything 及其命令行工具,並儘量把文件放在 Workspace 或常用目錄裏。macOS / Linux 上,瀏覽器隱藏路徑時,位於所有可搜索根之外的文件夾可能定位失敗,需要移進 Workspace 或安裝系統索引。

適用場景與注意事項

適合已經在用 DSH Web UI、需要把本機文檔、源碼目錄或配置文件交給智能體處理的人。典型情況是:文件就在 Workspace 或桌面 / 文檔 / 下載目錄裏,你希望智能體讀的是原路徑,而不是一份上傳副本。

幾點需要留意:

  • 這是 Web UI 插件,要裝進 web profile,裝完必須重啓 Web UI 並刷新瀏覽器。
  • 插件以當前 dsh 進程權限運行。安裝前閱讀源碼和 BSD-3-Clause 許可證;社區目錄不是 DeepSeek 官方商店。
  • 多數情況下只讀元數據;只有多個同名同大小候選時纔會讀少量內容做指紋,採樣仍無法區分纔會讀完整文件算 SHA-256。全部發生在運行 dsh 的本機。
  • 卸載命令是 remove @omdsh-dev/dsh-drag-and-drop,因爲 fork 仍沿用上游包名。
  • 舊版 README 裏的 pnpm --filter @deepseek-ai/dsh add ...config.yaml 流程已經過時,不要再用。

小結

dsh-drag-and-drop 把瀏覽器拖放和 DSH 需要的真實路徑接起來:文檔變成輸入框上方的芯片,圖片仍走原生附件,文件不離開原來的目錄。當前版本是 v0.2.0,維護者是 akiracod,許可證 BSD-3-Clause。

目錄詳情頁:https://deepseek-harness-plugin.com/zh-CN/plugins/dsh-drag-and-drop-akiracod/

GitHub 倉庫:https://github.com/akiracod/dsh-drag-and-drop

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

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

小夜