DeepSHPlugins
dsh-tianshu-tui 项目预览
GITHUB / COMMUNITY PROJECT

dsh-tianshu-tui

Clients & TerminalsTypeScriptApache-2.0

Harness-level customization on top of the official TUI extension: TDD-driven agent workflows, evidence-gate delivery, image/vision bridging, and semantic code retrieval. Rendering core evolved from Tianshu-Tui with a pure presentation layer

268 Starshuiliyi37 Updated 2026-09-09
Open GitHub repository
dsh-tianshu-tui 项目预览
dsh-tianshu-tui 界面截图dsh-tianshu-tui 界面截图

About this project

只看不碰:agent 该干嘛干嘛,界面负责好看
Chinese

Harness-level customization on top of the official TUI extension: TDD-driven agent workflows, evidence-gate delivery, image/vision bridging, and semantic code retrieval. Rendering core evolved from Tianshu-Tui with a pure presentation layer

English

Harness-level customization on top of the official TUI extension: TDD-driven agent workflows, evidence-gate delivery, image/vision bridging, and semantic code retrieval. Rendering core evolved from Tianshu-Tui with a pure presentation layer

Project details & listing signals

Snapshot 2026-09-11
Creator / organization
huiliyi37
Repository
huiliyi37/dsh-tianshu-tui
GitHub Stars
268
Forks
9
Programming language
TypeScript
License
Apache-2.0
Last push
2026-09-09
Manifest
Declaration found in the catalog

A public repository does not automatically permit commercial use. Check the project's license and compatibility. Manifests and catalog scores are not security certifications.

Catalog score

93/ 100
Maintenance activity
99
Documentation & practical information
100
Community interest
72
Installation signals
100
Project declarations
100

近 2 天仍在更新;README 含完整安装与使用说明;标准命令一键安装。

Scores use five dimensions of the catalog snapshot. They are browsing aids, not hands-on reviews or security assessments.

Install & use

The respective GitHub repositories define project information and licensing.

dsh plugin add github:huiliyi37/dsh-tianshu-tui

Copying a command does not execute it. Read the repository documentation and check requirements and licensing first.

Project screenshots

Repository README

GitHub 原文

Saved repository documentation. Its capture date was not recorded and it may differ from the catalog description. Check the current repository before installing.

Repository documentation is preserved in its original language.

dsh-tianshu-tui — DeepSeek Harness coding 终端

npm license node release dshfind

中文 | English

dsh-tianshu-tui

dsh-tianshu-tui是官方 [DeepSeek Harness] 上的交互式终端 TUI 面板插件。渲染核心为自研极简 ANSI引擎,轻量渲染使用体验极度流畅。(由作者的[天枢 Tianshu-harness] 演进而来。UI 是纯展示层:所有 agent 状态都来自会话事件流,流式 Markdown/工具卡、16+ 主题、slash 命令与选择器、输入历史与本地偏好持久化、LSP 诊断。在此之上做了工程层的改造,如图像与视觉桥接、代码智能检索、memory记忆与跨会话召回等。

[!WARNING]
生态边界(Ecosystem boundary):本插件属于官方 DeepSeek Harness(@deepseek-ai/* 生态)——peerDependencies 与代码 import 均指向 @deepseek-ai/*。不要把它装配进 oh-my-tianshu(@huiliyi37 生态,CLI 为 @huiliyi37/dsh-tianshu)的 tui profile。oh-my-tianshu 的官方 TUI 是 @huiliyi37/dsh-tui:两者同源(共享 109/117 个 TUI 源文件)但生态不同,混装会让插件在运行时靠 ~/.dsh/profiles/node_modules 中指向官方 dsh 的旧符号链接兜底解析 @deepseek-ai/*,形成跨生态脆弱耦合。

文档

文档说明
快速开始安装、启动与常见问题
交互手册快捷键与命令全表
配置装配选项、环境变量与运行时配置
架构分层、数据流与设计决策
主题16 个内置主题与自定义
插件生态伴生插件与扩展点
VS Code在 VS Code 中使用
ADAPTER.mdTUI ↔ harness 边界契约
贡献指南PR 规范与验证矩阵
开发说明结构、构建与发布

安装

本包不是独立程序。须先有官方 CLI @deepseek-ai/dsh(npm latest,当前 0.1.2-rc.1;需 ≥ 0.1.2-rc.1,peer 依赖对齐)。只 npm i 本包跑不起来。

一键安装(推荐):仓库自带跨平台脚本,自动检测 Node/pnpm、经 pnpm 安装官方 CLI + 装配本插件并启动(国内网络默认走 npmmirror 镜像):

# macOS / Linux(bash)
bash <(curl -fsSL https://raw.githubusercontent.com/huiliyi37/dsh-tianshu-tui/main/scripts/install-tui.sh)
# 只安装不启动:
bash <(curl -fsSL https://raw.githubusercontent.com/huiliyi37/dsh-tianshu-tui/main/scripts/install-tui.sh) --no-launch

# Windows(PowerShell)
powershell -ExecutionPolicy Bypass -Command "irm https://raw.githubusercontent.com/huiliyi37/dsh-tianshu-tui/main/scripts/install-tui.ps1 | iex"
# 只安装不启动:
powershell -ExecutionPolicy Bypass -File scripts\install-tui.ps1 -NoLaunch   # 克隆仓库后本地跑

1. 准备环境

  • Node.js ^22.19 || >=24
  • pnpm(dsh plugin 会转发给它;没有时 corepack enable 即可——Node 自带 corepack)
⚠ npm 11 的 OOM 坑:官方 CLI @deepseek-ai/dsh 依赖树较大(60+ 子包),npm 11(Node 24 自带)安装时会 JavaScript heap out of memory(卡住数分钟后 OOM,实测复现)。请用 pnpm(下方命令)。若你已经在用 npx -y @deepseek-ai/dsh 且卡住/报 heap OOM,切到 pnpm 即可。

不要直接敲 dsh。 若 PATH 上已有旧的 dsh(例如 ~/.local/bin/dsh,dsh --version 低于 0.1.0-rc.8),会走到本地 staging,出现 ERR_FS_EISDIR / Path is a directory .../@deepseek-ai/dsh。请始终用下面的 pnpm dlx 命令。

2. 把本插件装进 tui profile

pnpm dlx @deepseek-ai/dsh plugin --profile tui add @huiliyi37/dsh-tianshu-tui

pnpm 可能提示 peer missing,可忽略:peer 由官方 dsh 宿主提供,不必另装。没有 pnpm 也可以 npx -y pnpm dlx @deepseek-ai/dsh plugin --profile tui add @huiliyi37/dsh-tianshu-tui。

从 npm 安装后,每次启动会对照 npm latest:有新版本就写入 profile,提示重启后生效。也可在 TUI 里敲 /update 手动检查(只查不装,给出更新命令)。不想联网检查时设 DSH_TUI_SKIP_UPDATE=1。github: / link: 安装不会改写成 npm 包。

也可以从 Git 装:pnpm dlx @deepseek-ai/dsh plugin --profile tui add github:huiliyi37/dsh-tianshu-tui(仓库已包含 lib/index.js,不必再打包)。

3. 启动

pnpm dlx @deepseek-ai/dsh --profile tui

看到欢迎页品牌 dsh-tianshu-tui 即成功。Ctrl+Q 或 /exit 退出。

已全局安装官方 CLI(pnpm add -g @deepseek-ai/dsh)且 dsh --version 不低于 0.1.0-rc.8 时,把上面的 pnpm dlx @deepseek-ai/dsh 换成 dsh 即可。

4. agent 预设(/preset)

命令是 /preset(没有 /presets)。本包 bundle 对标官方 web:关掉 host 上的 agent 面,挂上 @deepseek-ai/dsh-agent-presets(依赖钉死 0.1.2-rc.1,npm latest 仍停在过时的 0.0.1-rc.1)。plugin add 本包即连带装上花名册;新会话在 setup 里 mount,/preset 换的是官方 shipped 面(标准 / PTC / 极简 / 创造),不是叠在 dsh-base 工具上。

用法:

  • /preset —— 列出每套预设的能力与工具集,* 标当前项;footer / 欢迎顶栏也会显示当前短名(标准 / PTC / 极简 / 创造)。说过话后还附最近一次请求的 wire: 工具面
  • /preset <id> —— 切换到指定预设(仅空白会话可换:先 /session new 再切;ptc/creative 是 code/cordis 的别名)

若 npx 仍报 ERR_FS_EISDIR,是 ~/.dsh/profiles/node_modules 里旧的安装 fallback 与官方 CLI 冲突。换干净目录再启动:

DSH_HOME=/tmp/dsh-tianshu pnpm dlx @deepseek-ai/dsh plugin --profile tui add @huiliyi37/dsh-tianshu-tui
DSH_HOME=/tmp/dsh-tianshu pnpm dlx @deepseek-ai/dsh --profile tui

不要在 DeepSeek Harness 工作区根目录对本包跑 tsdown:会把未发布的 @deepseek-ai/dsh-root 写进 bundle,加载必失败。

与其他发行版共存

本插件运行在官方 DeepSeek Harness(@deepseek-ai/dsh)之上,数据 home 为 ~/.dsh。 独立集成发行 oh-my-tianshu(原 tianshu-public,@huiliyi37/dsh-tianshu,自带 tianshu CLI 的完整 harness)是另一条独立发行线,使用独立的 $DSH_HOME(默认值独立化落地后为 ~/.dsh-tianshu)——两套系统 home 隔离,可同时安装、互不干扰(会话 / profile / settings 各自独立)。共存时 tianshu 侧设 export DSH_HOME=~/.dsh-tianshu 即可。

命名备忘(防止混淆):

名字是什么
dsh-tianshu-tui(本插件)官方 dsh 的 TUI 插件(本仓库)
oh-my-tianshu / @huiliyi37/oh-my-tianshu(原 tianshu-public)独立集成发行,自带 CLI(命令 oh-my-tianshu)
Tianshu-Tui(上游)本插件渲染核心的 Apache-2.0 来源(天枢)
2026-08-16 已改名:原 @huiliyi37/dsh-tianshu(命令 tianshu)统一为
@huiliyi37/oh-my-tianshu(命令 oh-my-tianshu),与仓库名一致;旧包已
deprecate,请迁移安装。

需要图片再询问能力时,再装配同仓伴生包 vision-ask/。LSP 模型工具面(lsp_goto_definition / lsp_find_references / lsp_diagnostics)已随本包内置(@huiliyi37/dsh-lsp 伴生插件,bundle patch 自动 insert)——装 TUI 一个包即得展示桥 + 模型工具面,二者共享同一 LSP server 集(不双份 spawn)。TUI 桥的诊断源探测顺序:内置伴生插件 lsp 服务(getDiagnostics 形状)→ 官方 ctx.lsp seam(deepseek-harness 的 dsh-lsp,经 query(getDiagnostics) 适配)→ 内置桥降级。⚠ 此前单独装过旧社区版(github:omdsh-dev/dsh-lsp)的用户请先 plugin remove 旧版再升级——新旧同时装配会重复注册同名模型工具。

更新说明

当前 npm latest:@huiliyi37/[email protected](GitHub Release)。

0.1.2-rc.29(2026-09-09):宿主线上到 0.1.2-rc.1(官方 latest 已转正,修复 #56 启动即崩)——Session.events 移除改 snapshotEvents()、userQuestions 改 waterfall answerer(global 注册)、CallId→ToolCallId、preset code→ptc、fork 血缘改 isSeeded+inheritedEventCount、bundle patch 补 subagent-model-selection-settings;旧宿主(≤0.1.1-rc.2)启动即 fail-loud 附升级/回退指引。⚠ 本次升级需宿主 ≥ 0.1.2-rc.1。

0.1.2-rc.28(2026-08-29):回应 #55 的 vim 优化——光标形态分模式(NORMAL 反色块 / insert 竖线)、历史搜索两阶段输入(编辑段可输 n/N,Enter 后跳转、搜索对象显式标注)、搜索命中子串高亮(含 /scroll);另投递失败自动回填输入行 + README 键位表一致性守卫。

0.1.2-rc.27(2026-08-29):回流 Tianshu 两项——错误时刻可行动(错误落底 + 指引之外,最近一条已投递消息自动回填输入行,↩ 告知「可能未被完整处理」,改一下即可重发;成功回合清底料、有草稿不抢写);plan-review 决策卡视觉分层(dim 决策区分隔线 + approve ❯/success 主操作高亮,主题不传时渲染不变)。

0.1.2-rc.26(2026-08-28):P1 交互打磨六连——Esc 分层收尾(打断 grace 期 + 布防提示行)、glance 拟人动词池、footer 显式分级降级、错误恢复指引(每个错误附下一步操作)、定高视口强化(chrome 开合输入轨不跳)、fish 式历史建议 ghost(→ 接受);/scroll 上限可配。

0.1.2-rc.25(2026-08-28):P0 交互三连——键位/命令/提示统一 action registry(app.ts 棘轮 4359→4140)、审批卡六档决策梯度(新增 p 命令前缀白名单、f 拒绝附反馈,bash 审批带命令预览与危险标注)、运行中消息排队(↑ 收回、Ctrl+Enter 插队、打断保队列);另含 /scroll 分页查看器、完成响铃、vim remap、主题对比度校验。

0.1.2-rc.23(2026-08-27):LSP 三件套对齐 tianshu-public 0.6.0 官方 seam 线(单 lsp 工具四操作 + 本地 provider 默认 tsserver),诊断源能力门控防 /lsp 面板退化;宿主 peer 对齐 ^0.1.1-rc.2。

0.1.2-rc.22(2026-08-27):LSP 模型工具面随包内置首版(伴生插件自动挂载,装 TUI 一个包即得展示桥 + 模型工具面;旧社区版请先移除)。

0.1.2-rc.21(2026-08-27):社区反馈三连修——输入框光标反色化(#50)、preset 缺省 standard(#48)、malformed SSE payload 根因定位并上报官方(#49)。

完整版本历史见 CHANGELOG.md;TUI 内 /changelog 查看(/changelog all 全部)。

亮点

  • 终端内的完整会话工作区 — 实时渲染、只增滚动转录、启动时会话恢复、/fork 探索分支、/rewind 回退(会话截断 + 可选文件回退)、/export 导出 Markdown 转录、中轮转向(/steer / Ctrl+T)。
  • 图片端到端 — 剪贴板粘贴(Ctrl+V / 终端菜单粘贴)、以终端图形协议内联渲染(kitty / iTerm2)、经 harness 附件服务投递、让具备视觉能力的模型真正看见——主模型不识图时自动经独立视觉模型把图片转成描述(视觉桥)。
  • 完整输入面 — grok 风格 slash 下拉菜单(模糊前缀匹配、MRU 排序、ghost 预览)、@-路径 Tab 补全与 @mention 展开、bracketed paste、可选 vim 键位、外部编辑器(Ctrl+E)、历史搜索(Ctrl+F/Ctrl+R)——Ctrl+. 随时调出完整键位表。
  • 终端内交互面 — 结构化提问面板(数字键选择、plan-review 反馈模式)、带内联 diff 预览的挂起审批卡片、模式循环(Shift+Tab:normal → plan → always-approve)、命令面板,以及 status / config / skills / tasks / 委派树 / workflow 实时面板。
  • 推理过程可视化 — think 通道以实时头行流动、在滚动区折叠为紧凑行(✻ 思考 (3.2s) · 12 行)、Ctrl+O 原位展开(对标竞品:默认折叠)。
  • 个性化 harness 集成 — /doctor 终端诊断、/memory 项目记忆浏览器、/btw 后台 agent 侧问、/model + /effort 热切换(当前会话立即生效)。
  • 构造上可审计 — TUI 自身不注册任何 prompt、工具或上下文面;用户输入成为普通日志消息,所有渲染状态都派生自会话事件。
  • 与 harness 协同演化 — 在 2026-08-09 基线快照之上与 harness 侧能力同步开发(250+ 提交):图片/视觉链路、DeepSeek Spark 模型工程、会话持久化与文件快照、记忆、验证门与失败路由、代码智能、git 工具。见下一节。

与 harness 协同演化的能力(2026-08-09 基线以来)

终端 UI 从 天枢 Tianshu-Tui 演进而来(Apache-2.0;逐文件来源见 SOURCE-MAP.md)。本 bundle 随后在 DeepSeek Harness 基线快照 snapshots/20260809T140917Z 之上与 harness 侧工作同步开发——2026-08-10 至 2026-08-13 共 250+ 提交。下列能力位于宿主 harness(独立包,不随本 bundle 分发);TUI 是它们的主要交互面:

  • 图片链路与视觉桥 — image ContentBlock 加入 merge-extensible 内容词汇,dsh-llm-deepseek 把用户图片 block 序列化为 OpenAI 风格 image_url content parts——用户图片端到端可达 wire(剪贴板 → 输入行 → 会话 → 模型请求)。模型经 supportsVision 声明识图能力(LlmModelInfo + llm-deepseek catalog)。dsh-vision-bridge 覆盖 text-only 主控:agent/pre-step 时经独立视觉模型描述图片附件(visionAutoBridge 在未指定 provider/model 时自动选首个识图模型;备用模型 fallback + data URL 校验;prompt 按 UI/报错关键词在通用结构与 OCR 级精确转写间自动选择),描述作为 plugin-source user message 注入——Model-visible ⟺ logged;桥失败降级为可见提示,绝不整轮 failed。
  • DeepSeek Spark 别名 — 官方 API 没有 spark 模型,本宿主也不注册 deepseek-spark provider。/model spark-flash / spark-pro 映射到已注册的 deepseek-official 路由,wire 模型分别为 deepseek-v4-flash / deepseek-v4-pro。
  • 会话持久化与文件快照 — Session.truncate 回卷事件日志并重置派生状态;持久化后端新增 deleteFrom 与 truncate 协调器,回滚跨重载存活;dsh-fs-snapshot 移植 FileHistory(trackEdit / rewindToBoundary),在写入工具执行前快照。TUI 入口:/rewind(会话截断 + 可选文件回退)。
  • 记忆 — dsh-memory(MemoryService + Markdown 文件后端、非 git 兜底)与 tool-memory(memory_save / memory_search + 记忆摘要注入)提供跨会话召回。TUI 入口:/memory、/remember。
  • 验证门与失败路由 — dsh-evidence-gate 强制执行 RED-first 验证:义务状态机、编辑/验证计数、TDD 门(enforce 模式)、探针建议 + 冷却、L2 终审门,原生接入 str_replace_editor 与 headless-agent 装配。dsh-agent-router 依据回合历史预测步骤失败并路由工作——含验证子代理调度与按 profile 工具限制——带真实回合 e2e 覆盖。
  • 代码智能与检索 — dsh-semantic-index(BM25 + salience/RRF/向量融合、增量更新)以 semantic_search 工具暴露;dsh-meridian 代码索引(node:sqlite schema、TypeScript/Python/Go 三语言 tree-sitter 解析器、graph/impact/flow 查询、行为信号、后台回填)以 repo_graph 与 <codebase-index> 摘要暴露;dsh-pheromone 文件级信息素 + 原子 JSON 持久化,经 file_info 与 read 工具 focus 语义上屏。
  • Git 服务与工具 — dsh-git 服务接缝(GitLocal CLI provider,服务类即插件)+ dsh-tool-git 面向模型的单一 git 工具(operation 判别:status / diff / log / commit),装配进 base bundle。

功能

会话管理

能力说明
`/session new\list\switch`新建、列出、切换会话;恢复时经同一渲染桥重放完整转录
恢复面板启动时把可恢复会话列表写入滚动区
/fork [directive] · /branch分叉当前会话(历史复制到新子会话),可选带起始指令
/rewind回退到指定消息——会话截断和/或文件回退到边界前快照
/export把当前会话转录导出为 Markdown 文件
/clear清空当前会话滚动区视图

输入面

  • Slash 命令菜单 — 输入 / 打开下拉菜单:模糊前缀匹配、↑↓ / PageUp / PageDown 选择、Tab 接受、Enter 提交、MRU 排序、参数占位 ghost 与输入行 ghost 预览。
  • 剪贴板与图片粘贴 — Ctrl+V 读取剪贴板图片(回退到文本);终端菜单粘贴检测图片;看起来像图片的粘贴路径按附件加载;Alt+W / vim yank 经 OSC52 把选区复制到系统剪贴板。
  • 图片提交 — 附件图片显示 📎 N images 标记,提交时在用户气泡下方以内联图形渲染,并经附件服务到达模型;气泡携带识图提示(已转发 / 经视觉模型桥接 / 未发送)。超大图发送前自适应压缩:长边 1568px 封顶(PNG 保留透明),逐级 JPEG 0.82 → 0.55 → 1024px + 0.55 直到低于 provider 上限,全程只缩不放。
  • Vim 编辑键位(#51) — Esc 进 NORMAL,键位表对标 Claude Code:h j k l / w e b W B E / 0 $ ^ / gg G / f F t T ; , 导航与查找重放、d c y × motion + 数字前缀、文本对象 iw aw iW aW、行级 dd cc yy Y 与 p P 粘贴、x X D C s S r o O J u .;v/V visual 选区两端含光标下字符。多行草稿 j/k 保持列移动;中文连续段成词不逐字跳。运行时 /vim 开关,/vim default 设为启动默认。insert 两键序列→Esc(vimInsertRemaps,如 {"jj":"esc"} 写入 prefs;1 秒窗防误触)。光标形态随模式区分:NORMAL 反色块、insert 竖线(#55)。NORMAL / 打开会话历史搜索(两阶段:输入即过滤,Enter 确认后 n/N 跳转——搜索词可含 n/N)。
  • 编辑 — 外部编辑器(Ctrl+E)、Tab 文件补全、@mention 展开、输入历史、多行输入、bracketed paste(多行/长文本粘贴整段进输入行,不逐行提交);输入行绘制为完整圆角框体。
  • 运行中排队(对标 Claude Code queue) — agent 运行时提交的消息进入输入轨上方的本地队列(立即回显、不直发);回合结束按序自动投递,中断不投递(留给你 ↑ 取回的余地);空输入 ↑ 取回队首回输入行;切换会话丢弃并回显条数。中轮即时纠偏仍走 /steer / Ctrl+T。
  • 图片再询问 — 同仓伴生插件 @deepseek-ai/dsh-vision-ask 登记已发送图片,并经 ask_image 回答模型的定向问题(见 vision-ask)。

渲染与投影

  • 对话流 — markdown 渲染、工具族着色 + 逐工具计时、并行工具调用折叠为组。
  • 工具卡实时结算 — 已结算的工具结果按 harness presenter 意图渲染为滚动区卡片:diff 结果渲染结构化红/绿文件差异(与审批预览共用)、terminal 结果带命令标题 + cwd + 退出/信号徽标、其余折叠为文本卡片。
  • 推理通道 — 思考中实时 shimmer 头行、段末折叠滚动行、Ctrl+O 在 live 区展开全文。
  • 流利度折叠 — 重复的例行工具流量在 quiet 策略下折叠;compact 模式(/density)只保留头行。
  • 轮次状态 — braille spinner + 阶段文本状态行、workflow 运行汇总、委派树、任务窗格、config/skills 面板作为 live-region 面板;turn 结束(非中断)且有工具调用时落 dim 摘要行(turn N · 读X 改Y · 耗时)。
  • Subagent 运行 — 每个运行一条 live spinner 行;终态以 ✓/✗/◌ 条目落入滚动区。
  • 窗口 chrome — 欢迎页(品牌头、友好会话短 id、环境检查行)、顶部栏(cwd + git 分支 + 模型)、底部三行区:输入行(底边线随模式着色)→ footer(模式徽标 + 快捷键提示)→ metrics 行(模型 / token 用量 / 缓存命中率)。
  • 主题 — 内置调色板 + custom:<name>;自动终端检测与 16 色降级;尊重 NO_COLOR;自定义主题加载时按声明背景做对比度警告(WCAG < 3.0,不阻断)。

交互面板

  • 结构化提问 — 数字键选择、Esc 取消、重叠保护;plan-review 反馈模式(f 进入、Enter 提交 Keep planning + 自定义反馈)。
  • 审批卡片 — y/N/Ctrl+C 结算挂起审批;工具可 diff 时内联差异预览;diff 不可见时盲批提示;非当前会话请求委托给下一个监听者。
  • 模式循环 — Shift+Tab 循环 normal → plan → always-approve;plan 状态驱动 footer 徽标,always-approve 为会话级本地态(切换/退出时复位)。
  • 实时面板 — /status(goal/todos/plan 投影快照;subagent 域见 /subagents)、/config(终端通知(完成时系统通知 + BEL 响铃,响铃在 SSH 会话下同样可达)/紧凑渲染 + 宿主 settings / permission / credentials)、/skills 浏览(↑↓ 详情)、/tasks 窗格、/subagents 委派树、/workflow 运行。检查类面板互斥,Esc 关闭。宿主服务未装配时对应段折叠;/config 的终端段不依赖宿主。其它面板在 backing 服务缺失时回显 ⚠ 警告(不静默空白)。
  • 命令面板(Ctrl+P)/ 键位表(Ctrl+.)/ 历史搜索(Ctrl+F/Ctrl+R)overlay。

模型与视觉

  • /model — 查看并切换模型(默认 + 当前会话热切);spark-flash / spark-pro 别名映射到 deepseek-official + 官方 wire id deepseek-v4-flash / deepseek-v4-pro。/model <provider/model|alias> [off|high|max] 同一条命令内设置推理等级。
  • /effort — 设置推理等级(off / high / max;auto 回模型默认),当前会话热切。
  • 视觉桥 — 识图能力按模型声明(supportsVision,经 llm catalog 自动刷新)并驱动气泡提示;主模型不识图时,自动选定的视觉模型在提交前生成图片描述(一次性路径;见已知限制)。桥可用性来源:装配方传入 vision.bridgeEnabled,或宿主视觉桥插件 provide visionBridge 服务(TUI 提交图片前按服务存在性自动探测);两者皆无则图片不发送并警告。
  • 视觉副驾 — 装配同仓伴生插件 @deepseek-ai/dsh-vision-ask 后,每张已发送图片被登记为短 id(img_1 …),模型可经 ask_image 反复询问——定向问题、换角度、不限次数;同图同角度重复提问命中 per-image 描述缓存。细节与配置见 vision-ask README。
  • /mcp — 列出已连接 MCP server 与工具数;tools <name> 查看某 server 的工具清单。

命令

命令作用
`/session new\list\switch`会话管理(list/选择器按今天/昨天/本周/更早分组)
/fork [directive] · /branch分叉当前会话,可选带起始指令
/rewind两阶段回滚(消息列表 → 粒度)
/export [path]导出转录为 Markdown
/scroll分页查看器:全文浏览转录(滚动 / 实时搜索 / n·N 跳转 / g·G 首尾)
/clear清空滚动区视图
/compact压缩会话上下文
/steer <text>中轮转向(不中断地纠正方向)
/model [target] [effort]查看/切换模型(别名:spark-flash、spark-pro)
`/effort off\high\max\auto`设置推理等级(热切)
/theme [name]切换主题
/density切换紧凑工具卡渲染
`/vim [on\off\default]`切换 vi/vim 编辑键位;default 写入启动默认
/lsp切换 LSP 诊断面板(agent 触碰文件时自动拉取该文件诊断;诊断徽标上工具卡)
lsp_goto_definition · lsp_find_references · lsp_diagnosticsLSP 模型工具面(伴生插件 lsp/ 注册;定义跳转 / 引用查找 / 文件诊断)
/status切换状态面板(goal/todos/plan 投影 + 会话汇总段)
`/config [notify [on\off]]`切换设置面板(空输入 n 通知、d 密度)。无参开关面板
/skills切换技能浏览面板
/tasks任务窗格(后台任务)
/goal目标管理(创建 / 暂停 / 恢复 / 完成 / 阻塞)
/subagents委派树面板
/workflowworkflow 运行面板
/btw <question>向后台 agent 侧问
/remember <text>保存一条记忆
/memory记忆浏览器(列表 / 过滤 / 删除 / 预览)
/doctor终端诊断 + 修复指引
/mcp [tools <name>]列出 MCP server;查看某 server 的工具

快捷键

按键作用
Enter发送
Shift+Enter换行(或 \+Enter 续行)
Ctrl+N新会话
Ctrl+S恢复最近会话
Ctrl+Q退出(同 /exit)
Ctrl+P命令面板
Ctrl+.键位表 overlay
Ctrl+F / Ctrl+R历史搜索(输入即过滤;Enter 确认后 n/N 下一个、p/P 上一个)
Ctrl+O展开/收起最近推理块
Ctrl+E用 $EDITOR 打开输入行(可经 editorKey 配置)
Ctrl+T中轮转向
Ctrl+Enter插队:打断当前回合并立即发送草稿(需终端支持 kitty 键盘增强协议,RIVET_KITTY_KEYBOARD=1 可强制开启)
Ctrl+C打断在途回合(空闲时空输入双击退出)
Ctrl+V粘贴剪贴板图片(无图时回退剪贴板文本)
Alt+W把选区复制到系统剪贴板(OSC52)
Shift+Tab模式循环:normal → plan → always-approve
Tab@-路径补全;接受 slash 菜单选中项
Ctrl+U删除到行首
↑/↓输入历史(slash 菜单打开时为选择;有排队消息时空输入 ↑ 取回队首)
PageUp/PageDownslash 菜单翻页
Esc关闭菜单/overlay/检查面板;取消挂起提问;空闲双击 rewind
t审批卡:记住此工具(本会话内该工具自动放行,其他工具仍逐卡审批)
a审批卡:本会话放行(always-approve + 结算当前请求)

装配

bundle patch 在 dsh-base 之上插入 tui-runner 插件:

- id: tui-runner
  name: '@huiliyi37/dsh-tianshu-tui'

TuiRunnerConfig(均可选):stdin/stdout(流注入,缺省走进程流)、initialSessionId、editorKey(缺省 ctrl_e;ctrl+o 保留给推理展开)、vimEnabled(缺省 false)、vision(supportsVision / bridgeEnabled / bridgeSource;未传入时 supportsVision 经 llm catalog 自动刷新、bridgeEnabled 按宿主 visionBridge 服务存在性自动探测——视觉桥插件装配时应 provide 该服务)、workflowHistoryLimit(缺省 50)、lsp(enabled / timeoutMs;缺省启用、单次拉取超时 2000ms——本地语言服务桥:agent 触碰文件时按扩展名懒启动 LSP server(typescript 经 npx 默认可用,pyright/gopls/rust-analyzer/clangd/jdtls 按 PATH 探测)拉取诊断,展示于工具卡徽标与 /lsp 面板;诊断只进 TUI 本地展示缓存,不写会话事件、不注册任何模型面)。

服务依赖:sessions/agents/agentDefaultModel 必需(必选 inject);goals/subagents/memory/compact/tasks/skills/sessionProjections/workflowEngine/planMode 可选——未装配时相关命令与面板 fails loud 报不可用,绝不静默吞,也不阻塞 TUI 启动。

验证

npm test

Model Experience

无——TUI 渲染已记录的会话事件并转发普通用户输入;不注册任何 prompt、工具或上下文面。

KV Cache 影响

无直接影响;经 TUI 提交的用户输入成为普通日志消息,其请求影响归属 session 与 loop 包。

已知限制与待办

  • 图片再询问需伴生插件 — ask_image 工具与会话图片注册表位于 @deepseek-ai/dsh-vision-ask(同仓独立包);TUI bundle 本体不携带它们。未装配插件时,已发送图片无法再次询问,同角度重复描述会再次调用视觉模型;视觉桥仍覆盖一次性提交时描述路径。
  • LSP 桥的运行时限制 — 模型工具面(goto/find/diagnostics)已随包内置(@huiliyi37/dsh-lsp);如天枢 edit-diff 的 diagnostics-narrowing 这类深度集成仍属未来工作。server 初始化慢于超时(默认 2s)时静默无诊断,下次触碰文件重拉;大仓库 tsserver 常驻内存(懒启动缓解,无空闲回收);切会话不重启 server(rootUri 沿用首会话 cwd)。
  • app.ts 单体(约 3.2k 行) — 挂起状态机已控制器化(question/approval),渲染组合与键仲裁仍在 app.ts;C4 拆分方案(纯函数面板段)持续推进。
  • 投影层部分接线 — 四个纯折叠模型中 turn-summary(turn/end 摘要行)与 summary-state(/status 会话汇总段,宿主投影总线缺失时仍有数据)已接线;activity-status/activity-store 有意保留未接线(statusline 是自包含投影,替换无收益;activity-store 暂无消费方)。当前状态记录于 docs/projection-layer.md。

许可与来源

Apache-2.0。终端渲染引擎从 天枢 Tianshu-Tui 演进而来(Apache-2.0);逐文件来源与修改声明见 SOURCE-MAP.md 与 NOTICE。

友情链接

项目简介
dsh-web-uiDSH Web UI 插件与皮肤合集
dshfindDeepSeek Harness 中文学习与分享社区
deepseek-harness-ux长任务不刷屏:关键进度清晰可见,完成后自动折叠
dsh-TUIClaude Code 风格全屏交互终端插件
DSH-better-sidebar侧边栏完整工作台:第三方 Tab、文件/终端/Git/子代理
DSH DesktopDeepSeek Harness 社区桌面端(Electron,Windows x64 / macOS Apple Silicon 安装包),下载即用、免配置命令行环境。内置本地 Harness 宿主与插件系统,支持 iOS/Android 远程下发任务、跟踪 agent 进度。
dsh-whale-report把 session、token、cost、tool call 与风险异常转成可读的 Agent 报告

Before you begin

Check the current repository for installation, compatible versions and licensing. Stars and catalog scores are snapshot-based browsing signals.

Installation & troubleshooting · 项目问题反馈

Related projects