dsh-dir-tree:DSH web 會話的浮窗工作區目錄樹

前言

在 DSH 的 web 會話裏引用本地文件時,手動輸入完整路徑容易出錯,尤其是深層目錄、臨時文件和多會話切換的場景。dsh-dir-tree 是一個面向 DSH web 界面的浮窗目錄樹插件:它把當前會話的工作區目錄展示在界面右下角,支持展開子目錄、搜索文件名、拖拽路徑到對話框,並在切換工作區或會話時自動跟隨。

下面介紹它的能力、安裝方式、典型用法,以及接入時需要注意的幾個點。

這是什麼

dsh-dir-tree 是 DeepSeek Harness(DSH)的 web 客戶端浮窗插件,由 bentong-chain 維護,許可證爲 MIT。

它解決的核心問題是:在 DSH web 會話中,快速查看當前工作區目錄、定位文件、複製路徑,並把文件/文件夾路徑直接填入對話框輸入框。

README 明確說明,這是 DSH 的標準 bundle,使用 dsh plugin add 安裝即可,無需源碼 checkout、無需改內置包、無需創造模式。

核心功能

dsh-dir-tree 提供以下已覈實能力:

  • 浮窗展示當前會話工作區目錄樹,右下角可最小化。
  • 懶加載:點擊 ▶ 展開子目錄,大目錄不卡頓。
  • 拖拽文件/文件夾到對話框,自動填入完整路徑。
  • 雙擊複製路徑;單擊選中。
  • 搜索過濾文件名。
  • 文件類型圖標、目錄藍色高亮、縮進樹形線。
  • 切換工作區/會話時,目錄樹自動跟隨。
  • 可拖動浮窗位置。

安裝與啓用

1、準備 DSH web 運行環境

可以先全局安裝 DSH,也可以臨時通過 npx 運行。

全局安裝:

npm install -g @deepseek-ai/dsh

臨時運行:

npx @deepseek-ai/dsh web

兩種方式共用同一個 $DSH_HOME,默認目錄是 ~/.dsh,插件、會話和配置互通。

2、安裝插件

插件可以從 npm 安裝,也可以從 git 安裝。

npm 安裝:

dsh plugin --profile web add dsh-dir-tree

從 git 安裝:

dsh plugin --profile web add github:bentong-chain/dsh-dir-tree

如果從 git 安裝,首次會提示在 profile 的 pnpm-workspace.yaml 中添加構建授權:

allowBuilds:
  dsh-dir-tree: true

添加後,重新執行:

dsh plugin --profile web add github:bentong-chain/dsh-dir-tree

3、啓動 DSH web

啓動 web profile 的常見寫法如下:

dsh --profile web

或等價的別名寫法:

dsh web

如果使用 npx 臨時運行,也可以寫成:

npx @deepseek-ai/dsh web

這些方式啓動的都是 web profile,目錄爲:

~/.dsh/profiles/web

啓動後,DSH 界面右下角會出現“當前工作區”浮窗。

典型用法

  1. 啓動 DSH web 後,查看右下角的“當前工作區”浮窗。
  2. 點擊文件夾旁的 ▶ 展開子目錄。
  3. 把需要引用的文件或文件夾拖拽到對話框輸入框中,插件會自動填入完整路徑。
  4. 使用搜索框過濾文件名。
  5. 雙擊節點複製路徑,單擊節點選中路徑。
  6. 點擊 − 或 × 最小化浮窗,之後通過右下角的恢復按鈕重新展開。

接入與實現注意

如果你要檢查或分發這個插件,可以重點關注 package.json 中與客戶側加載相關的聲明。

dsh-dir-tree 的 package.json 中聲明瞭 dsh.client.platform 爲 web,並注入以下運行時模塊:

"dsh": {
  "client": {
    "platform": "web",
    "inject": [
      "@deepseek-ai/dsh-client-runtime",
      "@deepseek-ai/dsh-client-connection",
      "@deepseek-ai/dsh-client-ui-layout"
    ]
  }
}

同時,exports 必須導出 ./package.json:

"exports": {
  ".": "./index.js",
  "./client": "./client.bundle.js",
  "./package.json": "./package.json"
}

如果沒有導出 ./package.json,client 半可能會被靜默跳過。

另外,client 半必須使用:

import React from 'react';

否則持久化 client bundle 中直接引用全局 React 時,可能在 apply 階段觸發 ReferenceError。

適用場景

這個插件適合以下場景:

  • 日常使用 DSH web 會話,需要頻繁引用工作區文件路徑。
  • 在長目錄結構中查找文件、文件夾,並快速複製到對話框。
  • 切換多個工作區或會話時,希望目錄樹跟隨當前上下文。
  • 希望在 web 界面中獲得更直觀的本地工作區瀏覽方式。

需要注意:插件以當前 dsh 進程權限運行。安裝前建議檢查源碼與許可證。dsh-dir-tree 使用 MIT 許可證,GitHub 倉庫地址爲:

https://github.com/bentong-chain/dsh-dir-tree

結尾

dsh-dir-tree 把當前 DSH 會話的工作區目錄樹放到 web 界面浮窗中,減少手動輸入路徑帶來的錯誤,讓目錄瀏覽、路徑複製和拖拽引用集中在同一個位置完成。

  • GitHub:https://github.com/bentong-chain/dsh-dir-tree
  • 目錄頁:在已接入的 DSH 社區目錄中搜索 dsh-dir-tree;具體 URL 以目錄站點實際提供爲準,社區目錄爲獨立站點,不代表 DeepSeek 或幻方的官方應用商店。
羽毛球分组比赛记分
小程序二维码

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

小夜