古法編程(dsh-gufa-code):把 DSH 主面板變成 VS Code 風格 IDE

前言

用 DeepSeek Harness 幹活的人常遇到一個別扭:智能體在右側會話裏改文件、跑終端、提審批,你只能在對話窗格里看文字描述,看不到它到底改了哪幾行、diff 長什麼樣,也沒法順手在旁邊開個終端驗一下。想要一個真正的編輯器,就得切到外部 IDE,會話、上下文和審批又斷掉了。

下面介紹的 liujiangnanchenjbguo/dsh-gufa-code(古法編程)解決的就是這件事:在 DSH 裏一鍵進入 VS Code 風格的 IDE 模式,左邊是 Monaco 編輯器 + Git + SSH + 真實終端,右邊原樣停靠官方 DSH 會話本體。插件由 liujiangnanchenjbguo 維護,註釋裏寫明瞭作者理念:AI 是助理,人是第一責任人。

這是什麼

一個 DSH 插件。點工作區行的「…」菜單裏的「古法編程」,主面板切換成三欄 IDE:

  • 左:活動欄 + 資源管理器 / 源代碼管理 / SSH / 終端;
  • 中:Monaco 編輯器(標籤頁、麪包屑、狀態欄、兩文件對比、Git diff);
  • 右:官方 DSH 會話面板原樣停靠,工具調用、自動讀寫文件、審批彈窗、斜槓命令、上下文引用、會話歷史都還在。

從哪個工作區點進來,IDE 就打開哪個工作區,右側也自動是你在這個工作區正在聊的會話。退出只有一個入口:標題欄右上角的「返回經典模式」。

倉庫目前星標 1,分類「客戶端」,許可證 MIT,實現語言 JavaScript。

核心功能

編輯器

  • Monaco 編輯器隨包離線分發,無需聯網下載;
  • 多標籤、按擴展名語法高亮、麪包屑、狀態欄(分支 / 行列 / 保存狀態);
  • 保存走磁盤版本衝突檢測 + 原子寫,帶未保存標記;
  • 資源管理器右鍵支持新建 / 重命名 / 刪除 / 複製 / 粘貼 / 打開所在文件夾 / 兩文件對比;
  • 支持 Ctrl/Cmd 多選、軟刪除與 ⌘Z 撤銷。

Git 與 Diff

  • 源代碼管理面板:分支、ahead/behind(點擊可推送/拉取)、更改列表、暫存/取消暫存、提交(⌘⇧↵,自動暫存未暫存改動);
  • Git Graph:泳道圖 + 提交文件 + 查看某次提交的文件,支持撤銷上次提交、丟棄全部、逐文件還原;
  • Git diff 用 Monaco diff 視圖,紅綠強對比、自動定位第一處改動,工作區一側可編輯並自動保存;
  • 兩文件對比可任選兩個文件,左右都可編輯(本地草稿,保存時寫回)。

SSH 與終端

  • SSH 面板解析 ~/.ssh/config,點一下就在終端裏執行 ssh <alias>;
  • 終端是真實 PTY + xterm:多標籤、新建/關閉、自動 resize、明暗主題,SSH 與任意命令都能跑。

右側會話

停靠的就是官方 DSH 會話本體,不是截圖,也不是簡化版。工具條提供新建會話、會話列表、打開完整對話、收起。會話彈窗裏可以直接切換工作區:點彈窗右上角的工作區名,會話列表隨之切換,點會話即打開,IDE 項目同時切到該工作區。

聊天框與資源管理器的文件互通

  • 從 Finder 複製的文件可直接 ⌘V 粘進資源管理器(寫入選中目錄,重名自動加「副本」),也可從 Finder 直接拖進文件樹;
  • 在 Finder 複製文件後在右側對話輸入框 ⌘V,會自動匹配項目內同名同內容文件並插入 @相對路徑 引用(圖片仍按 DSH 默認附件處理)。

快捷鍵

僅在 IDE 模式生效,參考 VS Code:⌘S 保存、⌘K 清空終端、⌘J / ⌃`` 終端、⌘B左欄、⌘W關標籤、⌘⇧E/⌘⇧G資源管理器 / 源代碼管理、⌘⇧USSH、⌃⇧` 新建終端、⌘/` 行註釋(非編輯器區爲快捷鍵列表)。經典模式快捷鍵不受影響。

摸魚模式(桌面懸浮層,實驗功能)

在 IDE 標題欄點「摸魚」按鈕,彈出運行中 App 列表,選中一個 App 後古法編程會把它切到前臺,並讓古法編程以無邊框、半透明、永遠置頂的獨立懸浮窗出現,吸附到該 App 當前窗口,位置和大小一致,窗口移動/縮放時實時跟隨;固定吸附只留在被吸附 App 所在的 Space / 屏幕。懸浮窗標題欄有「透明度 20%–100%」滑塊,實時調節整窗不透明度並記住設置。點「退出摸魚」把最後的狀態原樣帶回主窗口。全局快捷鍵 ⌃⌥⌘G 切換點擊穿透。

平臺支持:

  • macOS Apple Silicon / Intel 開箱可用(npm 包內含 arm64 + x86_64 universal helper);首次啓動依賴 macOS「輔助功能」權限,系統設置 → 隱私與安全性 → 輔助功能 → 勾選 DeepSeek Harness,改完重啓一次 DSH 生效;
  • Windows 可用(實驗):npm 包內含 desktop/float/bin/win-x64/gufa-float-win.exe,前置條件 Windows 10/11 + WebView2 Runtime;首版窗口不透明(透明度滑塊對窗口背景不生效)、exe 未代碼簽名可能被 SmartScreen 攔截;
  • Linux 可用(實驗,僅 X11):包內含 desktop/float/bin/linux-x64/gufa-float-linux,依賴 GTK3/WebKit2GTK 運行庫;純 Wayland 下不能跟隨/隱藏其它窗口,有 XWayland 時自動退到 X11 後端;
  • 選擇器底部有「自檢」按鈕,一鍵導出平臺 / helper / WebView2 / 輔助功能 / X11 現場信息,反饋問題時先複製它。

安裝與啓用

插件包發佈在 npm,安裝命令來自 README:

dsh plugin add dsh-gufa-code

也可以在 DSH 桌面端 / dsh web 的「插件 → 插件市場」裏搜索「古法編程 / dsh-gufa-code」安裝。

要求 DeepSeek Harness 0.2.1 及以上,支持桌面端與瀏覽器裏的 dsh web。安裝完成後,在工作區行的「…」菜單裏點第二項「古法編程」進入 IDE。

進入 IDE 後再驗證幾件事:右側會話是否還是當前工作區的會話、終端能否跑通一條命令、Git 面板能否讀到分支。如果都正常,說明插件與當前 dsh 版本兼容。

適用場景與注意

適合想在 DSH 裏保留官方會話上下文、同時要 Monaco 編輯器和真實終端的人:日常改代碼、看 diff、提交、連 SSH、跑命令都可以在 IDE 模式內完成,不必切出去。

幾點需要注意:

  1. 插件以當前 dsh 進程的權限運行,能讀寫它工作區的文件、能跑終端,所以安裝前應先讀一遍源碼(倉庫公開)並確認許可證(MIT);
  2. 摸魚模式屬於實驗功能,各平臺限制不同(Windows 首版窗口不透明、Linux 純 Wayland 不完全支持),遇到問題先用自檢導出 JSON 和日誌定位;
  3. 摸魚模式需要 macOS 輔助功能權限或 Windows/Linux 對應運行庫,權限沒給到位時功能不可用,但不會影響其餘 IDE 功能;
  4. 「摸魚」會操作其它 App 的前後臺與窗口,屬於侵入性較強的功能,建議先在個人環境試用;
  5. 作者的「作者的話」一節表達了個人對 AI 輔助編程的立場,不代表任何組織,也不影響插件功能本身。

結尾

古法編程的價值在於把編輯器和官方會話放進同一個界面:AI 在明處幹活,你在明處驗收,每處改動可 diff、可撤銷。對想留在 DSH 裏完成編輯和驗證的人來說,它補上了「看不到代碼 / 沒有終端」的那塊。

  • 目錄頁:https://www.skillhub.cn/plugins/liujiangnanchenjbguo/dsh-gufa-code
  • GitHub:https://github.com/liujiangnanchenjbguo/dsh-gufa-code

需要完整發布流程說明可看倉庫內 docs/RELEASE.md,平臺驗收清單見 docs/FLOAT-ACCEPTANCE.md。

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

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

小夜