NoNshiranai
dshX
一个基于 dsh 的优化版 TUI
- Stars
- 0
- Language
- JavaScript
- Created
- Aug 16, 2026
- Updated
- Aug 16, 2026
Introduction
dshX
⚠️ 社区项目,与 DeepSeek 官方无关联、未获背书。基于 deepseek-harness(MIT), 遵循官方插件生态指南(本仓库带
dsh-plugintopic)。
基于 deepseek-harness + @dshx/tui(dsh-TUI 的分叉)、内置 anchored-standard 的 Claude Code / opencode 风格终端编程应用。
dshx 一条命令启动:deepseek-harness 提供模型适配与工具执行,@dshx/tui(dsh-TUI 的
分叉,词标 dshx + 小鲸鱼简洁启动页)提供 Claude Code 风格终端交互,anchored-standard
在首个请求上锚定 DeepSeek V4 Pro 的训练对齐轨迹,随后自动恢复完整工具目录。
是什么
dshX 不是 fork,而是一个「profile bundle + launcher + 内置 preset」分发层:
dshx (命令) ──> dsh --profile dshx
├─ dsh-base (deepseek-harness 核心:LLM 路由、沙箱、会话、工具)
├─ @dshx/tui (终端前端 + 状态行 + /preset + /resume …)
└─ dshx patch (默认 preset=anchored-standard + 产品姿态)
模型调用、工具执行、会话/持久化、沙箱/审批全部由 DSH 服务拥有;dshX 只做组合, 零 deepseek-harness 核心改动。
为什么内置 anchored-standard
DeepSeek V4 Pro 强依赖首个 API 请求可见的工具目录。官方 minimal preset 发送
「精确的 RL prompt 与 schema」(官方快照测试原话 exact RL prompt and schemas),
在 Project2 评测得到 99/96;而 standard(约 25 个工具)只有 91,PTC 只有 92。
anchored-standard 把「首次轨迹选择」和「后续完整工具能力」拆开:
- 首请求只暴露一个平台 shell(Windows
pwsh、Linuxbash)+read; - 首请求输出预算压到 1024 tokens;
- 首请求剥离自动注入的 AGENTS.md / 技能目录上下文;
- 会话产生首个持久工具调用或首个助手回复后(
promoteOn: either), 立即恢复完整 Standard 工具目录 + 常规预算 + 常规注入。
实测(Project2 V4.1b、reasoningEffort=max)连续两跑 98/99,且完整 25 项工具可用。
详见 xiaobright/modeltest 的方法学与证据。
快速开始
前置条件:Node ^22.19 || >=24、pnpm 10+(首次初始化 profile 需要)、DEEPSEEK_API_KEY。
dsh CLI 已随包内置——无需单独安装 @deepseek-ai/dsh。
# 1. 全局安装 dshx(自动带上内置 dsh + TUI + preset)
npm install -g @dshx/dshx
# 2. 启动(首次运行自动初始化 dshx profile + 内置 preset)
dshx
dshx 提供 dsh 命令(透传内置 CLI):dsh plugin --profile X add <pkg>、
dsh --version 等均可直接使用。装 dshx 后不要再单独装官方 dsh(会冲突)。
# 环境自检
dshx doctor
# 恢复上次会话
dshx --resume
首次运行会自动:
dsh plugin --profile dshx add @dshx/tui@<v> @dshx/dshx@<v>(两个包都必须是 profile 直接依赖,才能各自作为 bundle 层);- 幂等同步内置 preset 到
$DSH_HOME/.agent-presets/anchored-standard。
首次请求行为
| 请求 | 工具目录 | 输出预算 | 注入上下文 |
|---|---|---|---|
| 请求 #1 | 一个 shell + read | 1024 tokens | 无(剥离 AGENTS.md / 技能目录) |
| 请求 #2 起 | 完整 Standard 目录 | 恢复原值 | 恢复 |
- 纯文字首答不会困死:
promoteOn: either下首个assistant/message即晋升。 - 子代理始终见完整目录:bootstrap 是顶层轨迹锚定,不传给被委托的子代理。
- resume/reload 保持阶段:晋升由持久 session 事件推导。
- 用户主动的
/技能手势不受剥离影响。
信任与安全边界
- 默认
workspace-write+ask(全平台):写入操作会弹审批。 workspace-write只限制写入,不限制读取/网络/进程可见性(Linux 与 Windows 皆然): bwrap/landlock 只把根只读 bind + 工作区可写,不 unshare 网络/进程命名空间。因此会话能读 任何用户可读的文件、能对外联网——这是双平台的写-only 模型,不是 Windows 特有。- Windows 的写边界更弱(
windows-acl部分约束):- workspace 外所有 Everyone 可写对象仍可写(restricting list 必须保留 Everyone);
- NTFS 硬链接可把 workspace 内被授权的文件 alias 到外部路径;
- 可写目录须 caller-owned(WRITE_DAC)——在管理员拥有的 workspace 或网络共享上, workspace-write 的每个 shell 写入都可能失败关闭。
- 可信环境可用
DSHX_SANDBOX_MODE=danger-full-access进入完整访问(无审批), 但默认永远是 workspace-write + ask。 - 遥测默认关闭(
session-telemetry-otel行禁用,无端点)。 - preset 安装在用户根
$DSH_HOME/.agent-presets(trust: user),与 shell 访问同信任级, 安装前可自行审阅preset/下的文件。
preset 与切换
默认 preset = Anchored Standard。/preset 仍可切到官方 standard/code/minimal/cordis。
minimal 仅 Linux 可用:它的 persistent-bash(PTY bash)在 Windows 上无法创建
(createProcessInspector 在 win32 直接 throw,terminal-bash 默认 /bin/bash),
Windows 上 minimal = 死 shell + str_replace_editor。dshX 默认的 anchored-standard 在
Windows 用 pwsh/read,无此问题。
优先级:CC_TUI_PRESET env > 持久化选择 > roster default。已产生对话的会话不可切换,
空白会话立即生效。
从 dsh-TUI 迁移
dshX 的终端前端 @dshx/tui 是 dsh-TUI 的分叉,共享 $DSH_HOME/sessions 会话库与
~/.dsh-cc 偏好目录——从 dsh-TUI 迁移无需搬数据,已有会话和偏好直接可见。
唯一区别是启动页品牌(词标 dshx + 小鲸鱼,无 DEEPSEEK/HARNESS 大字)。
已有 agent-preset.json(若切过 standard)会覆盖 roster default——想用 anchored-standard
请先 /preset 切回或删除该文件。
已知问题
License
MIT。preset/agent.cordis.yml 派生自 DeepSeek Harness Standard preset,
原始版权与 MIT 声明保留在 NOTICE。