前言¶
用 deepseek-harness(下稱 DSH)搭一個終端編程智能體,裝完核心的 dsh 只是第一步:還需要挑一個終端前端、選一個 preset,再逐項確認首請求暴露哪些工具、自動注入哪些上下文。這些組件分散在不同的包裏,組合與調配置要花時間,稍不注意改動還會落到 DSH 核心上。
社區項目 dshX 針對的就是這個組合問題:它把 DSH 核心、一個分叉的終端前端和一個內置 preset 打包成一個 npm 包,用一條 dshx 命令啓動,全程零 DSH 核心改動。下面介紹它的定位、核心行爲、安裝與使用。
這是什麼¶
dshX 由 NoNshiranai 維護,MIT 協議,npm 包名 @dshx/dshx,當前版本 0.2.4,依賴 @deepseek-ai/dsh 0.1.0-rc.7 與 @dshx/tui 0.1.5。需要說明:這是社區項目,與 DeepSeek 官方無關聯、未獲背書;基於 deepseek-harness(MIT)開發,遵循官方插件生態指南,倉庫帶 dsh-plugin topic。
一句話定位:基於 deepseek-harness + @dshx/tui(dsh-TUI 的分叉)、內置 prefab-anchored-standard 的 Claude Code / opencode 風格終端編程應用。
實現上,dshX 不是 fork,而是一個「profile bundle + launcher + 內置 preset」分發層。dshx 命令等價於 dsh --profile dshx,組合三部分:
dsh-base:deepseek-harness 核心;@dshx/tui:dsh-TUI 的分叉終端前端;- dshx patch:把默認 preset 設爲 prefab-anchored-standard。
核心能力由 deepseek-harness 提供,dshX 只做組合,零 deepseek-harness 核心改動。
核心功能¶
默認 preset:prefab-anchored-standard¶
dshX 內置默認 preset prefab-anchored-standard,思路是先把新會話預填充成一段已驗證的軌跡,再把首請求的工具目錄和注入上下文收窄到最小集合,之後逐步恢復。
1、會話預填充:新會話用 compact prefab 模板預填充已驗證的 anchored 軌跡(prefab-session-seed);
2、首請求僅暴露官方 Minimal preset 的 REAL 工具對(持久 bash + str_replace_editor),輸出預算爲 adapter 默認(無 1024 cap);
3、context-gate:首請求剝離技能目錄、AGENTS.md、時間/tmux、hooks 等自動注入,只放行用戶主動的 / 技能手勢。
晉升與發現工具¶
preset 採用 promoteOn: either:首個持久工具調用或首個助手回覆之後,目錄收窄爲 Minimal 對 + 三個發現工具(dev_tool_search / skill_search / skill_load)+ 顯式解鎖的工具。
也就是說,晉升後目錄仍是小的,其餘工具經發現工具按需解鎖。
skill-catalog-gate 與內置 j-space skill¶
skill-catalog-gate:prefab 會話不廣播 host skill catalog。j-space 經 skill_search + skill_load 或 /j-space 手勢按需加載。
dshX 隨包內置 j-space skill(J-Space Cognition Suite V3.6)。launcher 以 marker+checksum 冪等同步到 $DSH_HOME/skills/j-space,絕不覆蓋用戶目錄。
子代理、compaction 與 resume¶
這套策略同樣作用於子代理(includeSubagents: true)。compaction 之後,會話回到受控相位;resume/reload 保持相位。
安裝與啓用¶
前置條件:Node ^22.19 || >=24、pnpm 10+(首次初始化 profile 需要)、DEEPSEEK_API_KEY。dsh CLI 已隨包內置,無需單獨安裝 @deepseek-ai/dsh;裝了 dshx 之後再單獨裝官方 dsh 會衝突,不要這麼做。
npm install -g @dshx/dshx
全局安裝 dshx,自動帶上內置 dsh、TUI、preset 和 j-space skill。
dshx
啓動應用。首次運行會自動初始化 dshx profile 與內置 preset:執行 dsh plugin --profile dshx add @dshx/tui@<v> @dshx/dshx@<v>(<v> 爲對應包版本),並冪等同步內置 preset 與 j-space skill。
典型用法¶
先做環境自檢,再按需恢復會話:
# 環境自檢
dshx doctor
# 恢復上次會話
dshx --resume
dshx 會透傳內置 CLI,dsh plugin --profile X add <pkg>、dsh --version 等命令可直接使用。
preset 切換¶
會話內用 /preset 可切換官方 standard / code / minimal / cordis。優先級爲:CC_TUI_PRESET 環境變量 > 持久化選擇 > roster default。
注意:minimal 僅 Linux 可用——Windows 上 persistent-bash 無法創建。dshX 默認的 prefab-anchored-standard 在 Windows 用 custom-bash(Git Bash 路徑),無此問題。
從 dsh-TUI 遷移¶
dshX 的終端前端 @dshx/tui 是 dsh-TUI 的分叉,與 dsh-TUI 共享 $DSH_HOME/sessions 會話庫與 ~/.dsh-cc 偏好目錄。從 dsh-TUI 遷移無需搬數據,已有會話和偏好直接可見。
適用場景與注意¶
適合這些場景:
- 想要 Claude Code / opencode 風格的終端編程體驗,且基於 deepseek-harness;
- 不想自己組合 dsh、終端前端與 preset;
- 已在用 dsh-TUI,希望默認獲得 prefab-anchored-standard 且不搬數據。
使用前注意以下幾點:
1、沙箱默認 workspace-write + ask,寫入操作會彈審批。workspace-write 只限制寫入,不限制讀取、網絡與進程可見性,Linux 與 Windows 皆然;Windows 的寫邊界更弱(windows-acl 部分約束、NTFS 硬鏈接可 alias 外部路徑、可寫目錄須 caller-owned)。
2、可信環境可用 DSHX_SANDBOX_MODE=danger-full-access 進入完整訪問(無審批),但默認永遠是 workspace-write + ask。
3、遙測默認關閉(session-telemetry-otel 行禁用,無端點)。
4、preset 安裝在用戶根 $DSH_HOME/.agent-presets(trust: user),安裝前可自行審閱 preset/ 下的文件。
5、從 dshX ≤ 0.2.1 升級:舊默認 preset anchored-standard 不會被刪除,會留在 /preset 列表;已有 agent-preset 會覆蓋 roster default,想用新默認請先 /preset 切回。
6、已知問題見倉庫 KNOWN_BUGS.md。
最後是通用提醒:插件以當前 dsh 進程權限運行,dshX 是社區項目,安裝前建議檢查源碼與許可證。協議爲 MIT;preset/ 派生自 dsh-anchored-standard 的 prefab 模式(含 DeepSeek Harness Standard preset 改編),原始版權與 MIT 聲明保留在 NOTICE。
小結¶
dshX 的價值在於把「DSH 核心 + 終端前端 + preset」的組合固化成一條 dshx 命令:零核心改動、不覆蓋用戶數據、默認沙箱與遙測關閉,並內置一套首請求收窄的 prefab-anchored-standard preset。如果你在用 deepseek-harness 做終端編程,可以先跑 dshx doctor 檢查環境,再決定是否採用。
倉庫與目錄頁:
- GitHub:https://github.com/NoNshiranai/dshX
- 插件目錄頁:https://www.skillhub.cn/plugins/NoNshiranai/dshX (社區獨立目錄,與 DeepSeek / 幻方無官方從屬關係)