前言¶
用 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 / 幻方无官方从属关系)