dsh-linked-workspace:用 SSH 把遠端目錄接進 DSH

前言

在 DeepSeek Harness(DSH)裏做智能體開發,工作區通常落在本機目錄。若代碼、配置或構建環境在遠程 Linux 服務器上,常見做法是本地再開一套編輯器或 rsync/scp 來回同步,會話裏的模型也只能間接操作遠端文件。DSH 社區插件 dsh-linked-workspace(維護者 jiahui-huang1)把已有 SSH 連接變成兩類能力:只讀遠程目錄瀏覽,以及本地目錄與遠端目錄配對的聯動工作區——遠端只需 SSH,不必安裝 DSH 或任何插件。

這是什麼

一句話:SSH 支撐的遠程目錄與可編輯的本地⇄遠端聯動工作區,供 DSH 側邊欄、內嵌編輯器和 Host 工具鏈使用。

  • 倉庫:jiahui-huang1/dsh-linked-workspace
  • 社區目錄頁:skillhub.cn 插件條目
  • 分類:客戶端;npm 包名 dsh-linked-workspace(資料中當前版本 0.5.12,MIT © 2026 Huangjh)
  • 面向 DSH 0.2.1-rc.4;側邊欄頁面依賴 dsh-better-sidebar(v0.24+)。未安裝 better-sidebar 時插件仍會加載(設置頁可用),但側邊欄入口不會出現。

核心功能

連接與設置(設置 → 連接)

SSH 主機來自 dsh-ssh-tunnel 的 SSH Manager(~/.dsh/ssh-tunnel/hosts.json),也支持 ~/.ssh/config。密碼與私鑰只在 Host 進程內使用,不返回給頁面或模型。

下面兩類列表都在「連接」裏維護:

  1. 遠程目錄:選主機與遠端路徑,可在右側欄只讀瀏覽;遠程目錄視圖不允許編輯,需要改文件應創建聯動工作區。
  2. 聯動工作區:本地目錄與遠端目錄配對,本地目錄註冊爲 DSH 工作區;可選鏡像(默認關閉)。開啓鏡像後首次立即檢查,之後每 5 分鐘比較遠端與本地 .remote 目錄,並維護 .local/mirror-manifest.json;默認排除 .git、node_modules 等。關閉鏡像時允許兩側版本差異。

同一套「添加」表單可從「添加遠程目錄」或「添加聯動工作區」入口打開。編輯器主題支持系統/淺色/深色,以及 GitHub、Solarized、Dracula 等 9 組主題卡(每組含淺/深預覽)。

左側「添加工作區」

插件接管 DSH 側邊欄/空白會話的目錄選擇,彈窗兩種模式:

  1. 本地工作區:填寫或瀏覽本地目錄(Windows 支持 C:/D:/E: 等盤符)與工作區名稱,創建普通 DSH 工作區。
  2. 遠程聯動:SSH 主機、遠端目錄、本地目錄與鏡像開關;創建後本地目錄成爲工作區,聯動行在側欄用鏈環圖標區分(有運行中會話時鏈環約每 5 秒刷新爲藍色)。

右側欄

  • 遠程目錄:在設置裏至少添加一條遠程目錄後,任意工作區會話均可打開;只讀,不可編輯、傳輸、重命名或刪除。
  • 聯動工作區目錄:僅在聯動工作區的會話中出現,綁定當前工作區;上方遠程樹、下方本地樹,本地樹自動隱藏 .local/.remote 內部目錄。單擊選中、雙擊展開或在新標籤打開文件;最多 12 個文件標籤,支持語法高亮、Ctrl/Cmd+S 保存、git 變更視圖、雙向傳輸隊列、右鍵 SFTP/本機文件操作等。

會話中的模型可使用 Host 工具 linked_workspace(list、read、write、replace、sync 等),路徑相對遠端根;另有 linked_skills 的 list/read,聯動會話直接使用本機 ~/.dsh/skills 等路徑下的技能,無需裝到遠端。

聯動工作區目錄結構(資料原文):

<local>/
  .local/            # 按需創建(鏡像清單等)
    mirror-manifest.json
  .remote/           # 可選:遠端文件鏡像存檔

安全與限制(README 摘要)

主機指紋 TOFU(SHA256,變化即拒絕);工具讀寫限制在配置的遠端根內;單文件保存上限 8 MB;鏡像與右鍵傳輸有文件數/體積上限;頁面 API 僅接受本機迴環同源(遠程部署時回落 DSH connection 鑑權)。

安裝與啓用

官方 README 給出的本地包安裝方式如下(需先取得插件目錄,再在目錄內或指定路徑執行):

dsh plugin --profile "$DSH_PROFILE" add "file:$PWD/dsh-linked-workspace"

也可在 DSH 內通過 plugin_manager 的 install_bundle,目標填該目錄的絕對路徑。安裝後重啓 DSH 桌面應用(新 Host 插件在進程啓動時加載;會話記錄保留)。

啓用路徑:

  1. 左下角賬號菜單 → 設置 →「連接」;
  2. 或左側「添加工作區」→「遠程聯動」。

從舊包升級:0.3.0 起改名爲 dsh-linked-workspace,首次啓動會將 $DSH_HOME/remote-workspace 遷移到 $DSH_HOME/linked-workspace,之後可卸載 dsh-remote-workspace。

典型用法

  1. 確保 SSH 已在 dsh-ssh-tunnel 或 ~/.ssh/config 中配置好目標主機。
  2. 設置 → 連接 → 添加遠程目錄:選主機、瀏覽遠端路徑,用「測試」驗證後「打開」——在任意會話右側欄通過 + 菜單進入「遠程目錄」只讀查看。
  3. 需要模型編輯遠端代碼:添加聯動工作區(或添加工作區 → 遠程聯動),指定本地空目錄或已有目錄與遠端項目根;在該工作區開會話,右側欄打開「聯動工作區目錄」,雙擊文件編輯,或由模型調用 linked_workspace 讀寫遠端路徑。
  4. 若希望本地 .remote 與遠端定期對齊,在創建或編輯聯動配置時開啓鏡像;也可在工具中調用 sync 啓動後臺鏡像任務。

適用場景與注意

適合:已有 SSH 習慣、希望在 DSH 同一界面裏瀏覽遠端樹、在聯動工作區裏讓人和模型共同改遠端文件、且不想在服務器上部署 DSH 的場景。

注意:

  • 插件以當前 DSH Host 進程權限運行,安裝前應閱讀倉庫源碼與 MIT 許可證,並理解 TOFU 與路徑邊界限制。
  • package.json 中 engines.dsh 爲 >=0.2.0-rc.2 <0.3.0-0,與 README 寫的 0.2.1-rc.4 面向版本一致,使用前請確認本機 DSH 版本匹配。
  • 社區插件目錄(如 skillhub.cn、dsh-plugin.org)由社區掃描 npm/GitHub 維護,與 DeepSeek / 幻方無官方從屬關係;DSH 生態理念是「一切皆插件」,本插件是客戶端側 SSH/SFTP 與 UI 擴展,不是官方內置功能。

結尾

dsh-linked-workspace 把 SSH 連接收成 DSH 裏的遠程目錄與聯動工作區:只讀瀏覽與可編輯聯動分開,Host 側 linked_workspace 與右側雙樹編輯器對齊同一遠端根。進一步細節見倉庫 README、docs/API.md 與 GitHub 倉庫;條目索引見 SkillHub 目錄頁。

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

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

小夜