dsh-opencode-tui:爲 DeepSeek Harness 複用 opencode 原版 TUI 界面

前言

DeepSeek Harness(DSH)採用插件化架構,後端能力(Agent、會話、工具)強大。但在終端交互層面,往往缺乏一個成熟、交互細膩的原生 UI。dsh-opencode-tui 插件旨在解決這個問題,它通過在 DSH 進程內運行一個協議兼容層,將 opencode 官方的高質量 TUI 界面直接複用到 DSH 的驅動中,讓開發者能在終端獲得原汁原味的會話管理與工具調用體驗。

插件介紹

dsh-opencode-tui 是一個爲 DeepSeek Harness (dsh) 製作的客戶端插件。它直接複用 opencode 的終端界面,並將 Agent、會話、工具和權限的驅動邏輯交給 dsh 處理。該插件由開發者 LittleFishStars 維護,遵循 MIT 許可證。

核心功能

  • 界面複用:直接複用 opencode 原版 TUI 界面,包括會話列表、消息流、工具卡片、thinking 摺疊、鼠標交互與主題支持。
  • 邏輯驅動:由 dsh 負責底層的 Agent、會話、工具調用與權限管理。
  • 協議兼容:在插件進程內實現 opencode server 協議兼容層,將 TUI 的 HTTP 請求映射到 dsh。
  • 存儲集成:會話與消息數據存儲在 DSH 的會話存儲中,支持歷史會話恢復。
  • 交互細節:支持 Ctrl+C 退出對話框(默認選 No,需按 Tab 切至 Yes 後 Enter 確認),併兼容 v2 PermissionRequest 審批流程。

安裝與啓用

安裝成功後,需在 profile 的 config 中配置以下參數(默認值僅供參考):
* binary:指定 lildax 的路徑。
* preset:指定 agent preset 的 id(默認爲 roster 默認值)。
* cwd:設置工作目錄(默認爲進程當前目錄)。
* serverPort:設置兼容層端口(默認隨機,也可通過環境變量 DSH_OPENCODE_TUI_SERVER_PORT 設置)。
* args:透傳給 TUI 的附加參數。
啓動後,會話與消息將自動保存到 DSH 的會話存儲中(可通過 DSH_OPENCODE_SESSION_ROOT 重定向路徑)。

注意事項與限制

  • 二進制依賴:必須具備 opencode TUI 的二進制文件(如 lildax),否則無法啓動。
  • 渲染限制:由於沙箱 pty 的技術限制,側邊欄區域以及部分 flex 佈局可能無法正常渲染。
  • 消息格式:兼容層要求消息格式嚴格對齊舊 SDK 類型。例如 UserMessage 和 AssistantMessage 通常沒有 content 字段,而是需要包含 agent、model、parentID 等字段,否則會導致渲染崩潰。
  • 協議容錯:舊路徑(如 /config/providers)在 404 時會被 TUI 的 gracefulFetch 兜底處理,其他 404 則按 TUI 容錯機制處理。

結語

dsh-opencode-tui 通過協議兼容層,成功將 opencode 成熟的 TUI 體驗引入 DeepSeek Harness。它解決了終端 UI 開發成本高的問題,讓開發者能專注於 Agent 邏輯本身,同時保留了原版 TUI 的交互細節與視覺體驗。更多技術細節與源碼,請訪問項目主頁或插件目錄。

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

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

小夜