在终端里流式查看会话并直接编辑输入
30.5/100
综合分
2
GitHub 星标
—
npm 周下载
—/5
用户评分
数据截至 2026/9/30 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。
自动兼容检查未通过:仓库 package.json 标记 private,未发布到 npm,需从源码安装。以下命令仍可尝试,但可能失败。
安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add lnuo56717-bit/dsh-tui-app该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)
状态速览
判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态信任档位:已验证
图例:✓ 通过! 需注意— 未判定 / 无数据· 「未判定」= 本站尚无数据,不代表插件有问题
档位由哪些信号合成
本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。
依赖的 DSH / Cordis 模块
@deepseek-ai/dsh-cmdline@deepseek-ai/dsh-agent@deepseek-ai/dsh-agent-default-model@deepseek-ai/dsh-attachment@deepseek-ai/dsh-llm@deepseek-ai/dsh-session@deepseek-ai/cordis@deepseek-ai/cordis-plugin-loader给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个
功能亮点
- 流式查看会话
- 直接编辑输入
README
由 DeepSeek 最新模型翻译生成dsh-tui-app
一个为 DeepSeek Harness(dsh)打造的全屏终端界面(TUI),以独立、树外插件的形式构建。它与 dsh 宿主运行在同一进程中,直接读取持久化会话事件流,仅将宿主投影用于辅助状态事实。由 Chafa 生成的 DeepSeek 鲸鱼是它唯一的视觉标志。
功能
- 流式记录 — 终端原生 Markdown、工具树、差异、工作流/任务摘要,以及原始事件回退,并支持字素安全的 CJK 布局。
- 折叠的工具输出 — 工具结果以预格式化方式渲染(绝不重新排版为散文),并折叠为六行预览,同时保留真实行数。方向键可选择任意块;→/← 展开和折叠;Ctrl+E 切换全部。
- 行级精确滚动回看 — 视口是渲染后终端行上的窗口,而不是节点上的窗口:一次滚轮刻度始终移动三行,比例滚动条跟踪位置,流式追加内容会锚定在你正在阅读的位置,松开滚轮后回到固定的实时尾部。
- 原位 IME 组合 — 终端光标每一帧都停在输入框插入符上,因此拼音/预编辑文本会在提示符内组合,而不是在屏幕底部。
- 剪贴板复制 — Ctrl+Y 通过终端的 OSC 52 接收端和平台剪贴板工具复制选中的块(或最新的块,或输入框的鼠标选择);松开记录拖拽也会复制;Shift+拖拽使用终端原生选择;/mouse 将鼠标完全交还给终端。
展开完整文档(README 剩余 1 节)
dsh-tui-app 一个为 DeepSeek Harness(dsh)打造的全屏终端界面(TUI),以独立、树外插件的形式构建。它与 dsh 宿主运行在同一进程中,直接读取持久化会话事件流,仅将宿主投影用于辅助状态事实。由 Chafa 生成的 DeepSeek 鲸鱼是它唯一的视觉标志。 功能 - 流式记录 — 终端原生 Markdown、工具树、差异、工作流/任务摘要,以及原始事件回退,并支持字素安全的 CJK 布局。 - 折叠的工具输出 — 工具结果以预格式化方式渲染(绝不重新排版为散文),并折叠为六行预览,同时保留真实行数。方向键可选择任意块;→/← 展开和折叠;Ctrl+E 切换全部。 - 行级精确滚动回看 — 视口是渲染后终端行上的窗口,而不是节点上的窗口:一次滚轮刻度始终移动三行,比例滚动条跟踪位置,流式追加内容会锚定在你正在阅读的位置,松开滚轮后回到固定的实时尾部。 - 原位 IME 组合 — 终端光标每一帧都停在输入框插入符上,因此拼音/预编辑文本会在提示符内组合,而不是在屏幕底部。 - 剪贴板复制 — Ctrl+Y 通过终端的 OSC 52 接收端和平台剪贴板工具复制选中的块(或最新的块,或输入框的鼠标选择);松开记录拖拽也会复制;Shift+拖拽使用终端原生选择;/mouse 将鼠标完全交还给终端。 - 停止并接管 — 未打开任何覆盖层时,Esc 会直接停止正在运行的回合。在回合运行时发送草稿会预备接管:再次按 Enter(或 Esc)会中止该回合,等待驱动器进入空闲状态,然后重新发送排队的草稿,让智能体带着它们继续。在空输入框上按两次 Enter 只会停止回合;Ctrl+C 是硬停止,也会丢弃排队的草稿。在 / 命令(或任何其他覆盖层)上按 Esc 只会关闭该覆盖层。 - 鼠标编辑 — 点击输入框放置插入符(显示单元精确,CJK 安全);在其中拖拽以选择,输入以替换;点击记录行以聚焦其块;在记录中拖拽以选择行,松开时复制。 - 多行编辑与历史 — 多行提示、排队的后续输入、提示历史召回(在空输入框上按 ↑;滚轮绝不会召回历史),以及显式步骤引导。 - 实时模型与强度切换 — /switch 更改下一个尚未组装的步骤;/effort 仅提供活动适配器所公布的精确模型级别。没有任何硬编码:目录和能力都来自 ctx.llm。 - 推理披露 — 以 Grok 风格展示真实的 dsh 推理事件:实时思考上的宽度为 1 的旋转指示器、实时尾部、稳定的已定摘要、有界预览,以及可独立滚动的详情视图。 - 原生结构化问题 — 应用注册了宿主的 userQuestions 提供程序,因此加载 @deepseek-ai/dsh-tool-ask-user 的配置文件为模型提供了一个可用的 ask_user_question:该工具会阻塞,QuestionCard 收集键盘答案,答案作为普通工具结果返回。只有活动根代理可以提问;子代理的请求会被拒绝,而不是代表用户作答。参见启用 ask_user_question。 - 会话选择器 — /resume(以及 Ctrl+S)按持久标题(或开场提示)、提示数量和存在时长列出已持久化的对话,并带有当前会话标记。 - 任务和对话计时 — 当一轮运行时,标题栏芯片从与思考旋转指示器同步的同一实时时钟计算已用秒数;当该轮结束时,芯片显示该轮的时长以及对话累计的任务时间。两者都来自日志自身的 turn/start/turn/end 时间戳,因此恢复的会话会重新显示真实总计,而 Harness 从未记录时间戳的一轮不会被计入,而不是进行估算。 - 实时令牌吞吐量 — 当模型正在流式传输时,标题栏显示 ⚡ 27.5 tok/s,并从同一个 80 毫秒实时时钟刷新。该计数来自 Harness 实际的提供程序令牌边界文本、推理和工具调用增量——而非字符长度——并且终端提供程序用量会在步骤关闭前校准不可见的协议令牌。一旦助手消息提交,分母即冻结,最终平均值在空闲时保持可见;下一个模型步骤会开始新的测量。 - 缓存命中率计量器 — 在已用时间芯片正下方,标题栏显示会话的缓存命中率:整个持久日志中缓存读取令牌占计费提示输入的比例,与 Web UI 统计行打印的指标相同。在日志有计费输入之前它保持静默,并与标题和计时器共享窄标题栏预算。 - 安全状态界面 — 由投影支持的状态栏仅保留短字段(通知、ctx、短模型名、effort、权限、计划/待办事项);会话 ID 和 cwd 位于 /session-info 中;类密钥字符串始终会被脱敏;密钥和计费信息从不显示。 - 主题 — Abyss 和 Pearl,支持真彩色、256 色、16 色和单色调色板。当无法在不进行阻塞查询的情况下确定终端背景时,auto 会安全地默认使用 Abyss。 要求 - 现有的 DeepSeek Harness dsh 启动器,带有 npm 0.1.0-rc.6 构件集(本项目从不下载或修补 Harness) - Node.js 22 或更高版本(CI 中使用 Node.js 24) - 用于 dsh plugin 工作流的 npm 和 pnpm - Windows 上使用 Windows Terminal;其他平台上的现代 xterm 兼容终端为尽力支持 安装 markdown npm install npm run build dsh plugin --profile tui add "C:\absolute\path\to\dsh-tui-app" dsh --profile tui --help dsh --profile tui 要让裸 dsh 命令打开此 TUI: powershell powershell -ExecutionPolicy Bypass -File .\scripts\install-default-command.ps1 dsh 显式命令(如 dsh --help、dsh web 和 dsh plugin ...)仍会路由到上游 CLI。该插件会创建或更新隔离的 tui 配置文件,先使用 @deepseek-ai/dsh-base,再使用 dsh-tui-app;它不会修改 Harness 检出内容。 恢复持久会话: powershell dsh --profile tui --resume 启用 ask_user_question 该应用提供了问题 UI,但没有任何 dsh 包会加载让模型提问的工具。将其一次性添加到配置文件自身的补丁层($DSH_HOME/profiles/tui/cordis.patch.yml)并重启: yaml - insert: - id: tool-ask-user name: '@deepseek-ai/dsh-tool-ask-user' 使用 dsh --profile tui --dump-config 确认组合后的树,并使用 npm run test:ask-user 确认整个路径——注册、卡片、返回的答案——该命令会在只读 --patch 覆盖层后面启动真实配置文件。 仅在存在 userQuestions 提供程序的地方启用此项:此应用注册了一个,而 Web UI 随附了 @deepseek-ai/dsh-client-ui-user-questions。没有提供程序的配置文件(例如 grok TUI)会在每次调用时以 NO_PROVIDER 失败,而不是进行询问。 标志 | 标志 | 值 | 默认值 | | --resume | 不透明的持久会话 ID | 新会话 | | --theme | abyss、pearl、auto | auto | | --color | truecolor、256、16、mono、auto | auto | 无论 --color 如何,NO_COLOR 始终强制使用单色。/theme abyss|pearl|auto 会立即为当前 TUI 运行预览主题。 斜杠命令 /switch [provider/model]、/effort [default|level]、/model(/switch 的别名)、/new、/resume、/session-info、/rename、/theme、/workflows、/mouse、/keys、/help、/quit。 由 dsh 通告的命令通过宿主命令注册表执行;完全同名的冲突会以 [dsh] 和 [tui] 条目保持可见的区分。 键盘参考 | 按键 | 操作 | | Enter | 发送普通提示/后续消息;在多行模式下插入换行 | | Enter ×2 | 在有新草稿时:发送,然后用它接管正在进行的回合;在空编辑器上:停止正在进行的回合 | | Esc | 停止正在进行的回合;否则关闭覆盖层或搁置阻塞卡片而不回答它 | | Ctrl+M / Alt+Enter | 切换多行 / 发送多行;从转录中打开模型选择器 | | Ctrl+L | 引导当前或下一步 | | Ctrl+W、Ctrl+U、Ctrl+K | 删除单词 / 删除到行首 / 删除到行尾 | | Ctrl+P 或 ? | 打开模糊 dsh + 本地命令面板 | | Ctrl+S | 打开持久会话选择器 | | Ctrl+X | 打开完整的应用内按键页面 | | Ctrl+Y | 将选中的块、composer 的鼠标选区或最新的块复制到剪贴板 | | Ctrl+E | 展开/折叠所有工具输出和推理预览 | | Shift+Tab | 仅在 dsh 所公布的权限预设之间循环切换 | | Tab | 在 composer、阻塞卡片和 transcript 之间移动 | | PgUp、PgDn | 从任一焦点按行翻页 transcript | | Ctrl+U、Ctrl+D | transcript 获得焦点时半页滚动 | | transcript 中的 Home / End | 跳转到最早的一行 / 回到实时末尾 | | 鼠标滚轮 | 每格滚动 transcript 三行,或在打开的选取器中移动;绝不召回提示历史 | | 空 composer 上按 Up | 短暂停顿后召回上一条提示(忽略滚轮连发) | | Ctrl+Up / Ctrl+Down | 立即召回提示历史 | | transcript 中的 Up、Down、Left、Right、Enter | 选择工具输出或推理块,折叠/展开它,或打开完整详情 | | 鼠标点击 | composer:将光标移到点击的单元格;transcript:聚焦光标下的块 | | 鼠标拖动 | composer:选择文本(输入会替换它);transcript:选择行并在松开时复制 | | Shift+拖动 | 终端自身的选择和复制,不受鼠标跟踪影响 | | Ctrl+C | 取消正在运行的回合;否则清除草稿;空闲/为空时按两次退出 | 审批使用 y/1(允许一次)、n/2(拒绝)或 3(更改真实权限预设,然后允许一次)。问题使用方向键、数字、Space 进行多选、z 输入自由文本,Enter 前进/提交。 Web UI 对比 | 能力 | dsh-tui | Harness Web UI | | 一个活动根会话,新建/恢复/切换 | 是,选取器列出标题和开场提示 | 是 | | 回滚缓冲 | 行精确窗口、比例滚动条、流式传输期间锚定 | 浏览器滚动 | | 流式消息、工具、差异、工作流 | 终端原生紧凑树 | 丰富的浏览器呈现 | | 实时模型 + 精确模型强度切换 | 通过 ModelSelectionRef 进入下一个未组装步骤 | 是 | | 推理披露 | 宽度为 1 的 spinner、实时末尾、稳定摘要、键盘详情 | 可折叠的浏览器行 | | 长工具输出 | 预格式化,折叠为固定大小的预览,可用键盘展开 | 可折叠的浏览器面板 | | 复制输出 | 每块 Ctrl+Y、Shift+拖动、/mouse 关闭 | 浏览器选择 | | 审批和结构化用户问题 | 键盘优先,失败关闭 | 浏览器控件 | | 投影状态(tokens/context/stats/plan/todos) | 短页脚 + /session-info | 丰富面板 | | 主题 | Abyss/Pearl + 能力回退 | 浏览器主题系统 | | CJK 和字素安全编辑 | 是,已在 Windows Terminal 验证 | 浏览器文本引擎 | | 图像/媒体渲染 | 仅元数据占位符 | 丰富媒体界面 | | 窗格内鼠标编辑 | composer 中点击定位光标和拖动选择;transcript 中点击聚焦和拖动复制 | 浏览器选择 | | 转录搜索、多根仪表板 | v1 中不提供 | 可用或更适合 Web UI | | 远程/浏览器附件和 DOM 槽位 | 有意不使用 | 原生架构 | 开发 npm run check npm test npm run build npm run test:ac:all 完整的本地验收需要现有的 dsh 启动器来运行 AC-1 到 AC-5。CI 在 windows-latest 上运行静态 M4 套件;真实配置文件的 PTY 验收仍然是本地/发布门禁,因为 CI 不会安装另一份 Harness 副本。 npm run test:timer 是仅限本地的端到端检查,用于验证已用时间标签:一个只读的 --patch 覆盖层添加了一个驱动程序,在真实会话时钟上打开和关闭两个真实回合,探针断言页脚在回合打开期间每秒递增一次,然后给出与记录的跨度匹配的对话总计。与下面的检查一样,它不会编辑 $DSH_HOME 下的任何内容,并会删除其自身探针创建的会话。 npm run test:ask-user 是仅限本地的端到端检查,用于验证原生问题路径:它使用只读的 --patch 覆盖层启动机器自身的 tui 配置文件,断言 ask_user_question 位于面向模型的注册表中,用真实按键回答 QuestionCard,并断言该工具在此之前一直保持阻塞。它不会编辑 $DSH_HOME 下的任何内容,并会删除其自身探针创建的会话。 已知限制 - Windows Terminal 是受支持的 Windows 模拟器;旧版 conhost 为尽力而为的单色模式。 - 块展开以键盘优先,并针对常见手势提供鼠标支持:单击会放置编辑器光标或聚焦转录块,拖动会进行选择——释放转录拖动会复制。终端自身的选区仍可通过 Shift+拖动使用,或通过 /mouse 将鼠标交还。UI 仅显示 Harness 发出的推理内容,绝不虚构完成估计或活动声明。 - Ctrl+Y 报告的是它尝试了什么,而不是剪贴板当前持有什么:OSC 52 传递不可观测,终端可能会拒绝它。在 Windows 上,clip.exe 路径是权威的。复制会获取块的源文本,因此折叠预览和展开预览复制的内容相同。 - 助手消息仍会完整渲染;只有工具输出会折叠。如果模型在自己的回答中发出非常长的代码块,它仍会打印出来。 - 将终端光标放在编辑器光标处,才能让 IME 就地组合。忽略光标定位的终端会保持旧行为。 - 会话选择器会为每个可见行折叠一个持久日志,因此一个非常大的已存储会话在滚动进入视图时只需读取一次。行仍按创建时间排序,而不是按折叠后的最后活动时间排序,因为按活动排序需要读取每个日志。 - 经过的芯片时间按轮次计算,而非按挂钟对话时长:你在轮次之间打字所花的时间不计入总数,当标题栏太窄而无法同时容纳两者时,末轮/总计这一对会从标题数字中省略。因代理失败而保持开启的轮次会让芯片停留在其已确定的事实上,而不是永远累加。 - 多行 dsh 命令输出(如 /goal 的状态视图)会折叠到单行状态页脚上;重新运行该命令以阅读完整文本。 - @ 仍然是普通提示文本,因为 rc.6 没有主机安全的通用附件选择器接缝。 - 图像渲染为附件标签,而非终端像素。鲸鱼是预生成的 ASCII 资源。 - 没有转录内容搜索、多根仪表板、远程附加、ACP 桥接、持久化的按命令授权,或凭空发明的 /auto 策略。 - 工作流/子代理视图是只读的持久摘要。它们不会派发并发的根会话。 - ask_user_question 仅针对活动根代理作答,且一次仅处理一个请求;子代理的请求或并发的第二个请求会被拒绝,绝不会自动作答。该工具默认不在任何 dsh 捆绑包中——必须由某个配置文件加载它。 - auto 不会发送阻塞式终端后台查询;当检测不可靠时,它会选择 Abyss。 许可证与来源 MIT,参见 LICENSE。依赖注册表完整性值以及每一份所使用的主机契约都记录在 PROVENANCE.md 中;安装细节与诊断信息在 INSTALL.md 中。 本项目独立,与 DeepSeek 无关联,也未获得其认可。徽标来源与商标边界记录在 NOTICE 中。
预览分享卡片长什么样 ↓
分享 · DeepSeek Harness Hub
lnuo56717-bit/dsh-tui-app
在终端里流式查看会话并直接编辑输入
相关插件 · UI / 主题
破甲增强版JeffKeeping/dsh-purge-plus
dsh-purge 的非官方分支fork:适配 DeepSeek Harness 0.2.1-rc.2、破甲内核…
★ 387已汉化DeepSeek 客户端
71.9
无代码业务系统平台nocobase/nocobase
NocoBase 是什么
★ 24,804已汉化DSH
71.8
1Panel 服务器面板1Panel-dev/1Panel
全球 250 万+ 自托管用户共同喜爱。
★ 37,362已汉化DSH
71.4
终端编码代理esengine/DeepSeek-Reasonix
· 指南 · ACP · 扩展开发 · 规格 · 官方网站 · Discord · QQ
★ 36,076已汉化DSH
71.2
工作状态行动态ccch1mneyyy/working-activity
作者:chimney@ccch1mneyyy。社区项目,非 DeepSeek 官方项目。
★ 664已汉化DSH
71.2
多模型配置管家farion1231/cc-switch
跨平台桌面一体化助手,支持 Claude Code、Codex、OpenCode、DeepSeek Harness 等工具,唯一官网 ccswitch.io
★ 151,814已汉化DSH
71.1
这个插件是你维护的吗?
作者本人可认领并核对本条目;认领通过后,详情页会显示「作者已认领」标记。