🎁 福利专区全网大模型免费应用 + 新用户福利 + 注册活动入口,低成本玩转 AI

终端交互面板 huiliyi37/dsh-tianshu-tui

DeepSeek Harnessv1.0.0-rc.3
huiliyi374 天前有提交已提供中文文档扫描:含敏感能力uicodememory

把 DeepSeek Harness 变成完整、流畅的终端编程工作区。

64.8/100
综合分
296
GitHub 星标
904
npm 周下载
—/5
用户评分

数据截至 2026/10/31 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。

安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add @huiliyi37/dsh-tianshu-tui
npm 源 · @huiliyi37/dsh-tianshu-tui 的发布者账号已校验与本仓库一致

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:仅索引
是什么
dsh 原生插件 · market
装得上吗
静态安装检查通过
未做真实安装
L4 · 真实安装等级说明 →
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
活跃:最近一次提交在 4 天前
档位由哪些信号合成

本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。

验证判据与等级说明 →
社区实装还没有人打卡 · 装过的第一个就是你
安装兼容性检查✓ 自动检查通过
展开查看检查明细 ↓

以下结论由程序自动检查 npm 包、engines 声明与入口文件得出,未做人工实机验证——能装不等于用着没问题。

✓npm 包@huiliyi37/dsh-tianshu-tui @ 1.0.0-rc.3
✓Node 引擎要求 ^22.19 || >=24 · 基线 Node 22.19 满足
✓dsh CLI 依赖未声明 dsh 版本约束
✓入口文件main/exports/bin 已声明

验证方式:npm registry 存在性 + package.json 静态校验 · 最后检查 2026/10/29 09:40:10

安全扫描自动 · 静态分析源码
v2.7.0
🔵 扫描:含敏感能力尚无人工评估
展开查看扫描说明与证据 ↓

静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。

可执行外部命令读写/删除本地文件读取剪贴板或密钥环境变量发起外部网络请求
查看扫描证据(共 60 处,展示前 31 条)
  • 读取本地文件
    lib/index.js:48
    return JSON.parse(readFileSync(path, "utf8"));
  • 读取本地文件
    lib/index.js:151
    const raw = JSON.parse(readFileSync(path, "utf-8"));
  • 写入本地文件
    lib/index.js:164
    mkdirSync(dirname(path), { recursive: true });
  • 写入本地文件
    lib/index.js:166
    writeFileSync(tmp, `${JSON.stringify({
  • 写入本地文件
    lib/index.js:170
    renameSync(tmp, path);
  • 读取本地文件
    lib/index.js:195
    if (existsSync(join(profileDir, "pnpm-lock.yaml"))) return "pnpm";
  • 读取本地文件
    lib/index.js:196
    if (existsSync(join(profileDir, "package-lock.json"))) return "npm";
  • 读取本地文件
    lib/index.js:197
    if (existsSync(join(profileDir, "yarn.lock"))) return "yarn";
  • 读取本地文件
    lib/index.js:198
    if (existsSync(join(profileDir, "node_modules", ".package-lock.json"))) return "npm";
  • 执行外部命令来自配置/变量
    lib/index.js:226
    const child = spawn(command, args, {
  • 执行外部命令来自配置/变量
    lib/index.js:427
    const child = spawn(argv[0], argv.slice(1), {
  • 写入本地文件
    lib/index.js:1931
    mkdirSync(dir, { recursive: true });
  • 写入本地文件
    lib/index.js:1932
    writeFileSync(file, `${JSON.stringify(template, null, 2)}\n`);
  • 执行外部命令固定命令
    lib/index.js:1951
    return (args) => execFileSync("git", args, {
  • 写入本地文件
    lib/index.js:2092
    mkdirSync(dirname(path), { recursive: true });
  • 执行外部命令固定命令
    lib/index.js:6862
    const output = execFileSync("git", [
  • 删除本地文件
    lib/index.js:11766
    await rm(outputPath, { force: true });
  • 删除本地文件
    lib/index.js:11793
    await rm(dir, {
  • 删除本地文件
    lib/index.js:11813
    if (now - (await stat(full)).mtimeMs > STALE_MS) await rm(full, {
  • 删除本地文件
    lib/index.js:12199
    await unlink(tmpPath).catch(() => {});
  • 删除本地文件
    lib/index.js:12237
    await unlink(tmpPath).catch(() => {});
  • 删除本地文件
    lib/index.js:12260
    await unlink(pngPath).catch(() => {});
  • 发起网络请求
    lib/index.js:18704
    const res = await fetch(`${baseURL}/models`, {
  • 发起网络请求
    lib/index.js:20347
    capabilities = (await Promise.race([rpc.request("initialize", {
  • 发起网络请求
    lib/index.js:20384
    const result = await rpc.request("textDocument/definition", {
  • 发起网络请求
    lib/index.js:20404
    const result = await rpc.request("textDocument/references", {
  • 发起网络请求
    lib/index.js:20441
    const result = await Promise.race([rpc.request("textDocument/diagnostic", { textDocument: { uri } }), new Promise((resolve) => setTimeout(() => resolv
  • 执行外部命令来自配置/变量
    lib/index.js:20564
    execFileSync(process.platform === "win32" ? "where" : "which", [bin], {
  • 执行外部命令来自配置/变量
    lib/index.js:20933
    child = spawn(this.command, {
  • 读取密钥环境变量
    lib/index.js:28196
    apiKeyReady = Boolean(process.env.DEEPSEEK_API_KEY);
  • 读取密钥环境变量
    lib/index.js:29484
    this.apiKeyReady = Boolean(process.env.DEEPSEEK_API_KEY);
扫描于 2026/11/3(0 天前) · 范围 入口闭包 + 全包扫描 · 来源 npm 发布包

静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。

依赖的 DSH / Cordis 模块
@deepseek-ai/dsh-agent-preset@deepseek-ai/dsh-agent-preset-registry@deepseek-ai/dsh-cordis-host-runner@deepseek-ai/dsh-plugin-market@deepseek-ai/dsh-time-context@deepseek-ai/dsh-tool-cordis@deepseek-ai/cordis@deepseek-ai/cordis-plugin-include@deepseek-ai/cordis-plugin-loader@deepseek-ai/cordis-plugin-timer@deepseek-ai/dsh-agent@deepseek-ai/dsh-agent-default-model
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个

功能亮点

  • ANSI极简交互渲染
  • slash命令与选择器
展开完整介绍(122 字)↓

官方 DeepSeek Harness 的交互式终端 UI 插件:自研 ANSI 极简交互渲染、流式 Markdown/工具卡、16+ 主题、slash 命令与选择器、输入历史与本地偏好持久化、LSP 诊断、memory记忆,很丝滑的开发体验。

v1.0.0-rc.42026-10-29
· [1.0.0-rc.4] - 2026-10-29 · Provider 接入与自定义端点(#61) · 修复 WSL2 下 /key 无法粘贴 API Key:Linux 剪贴板链增加 powershell.exe 回退;终端原生粘贴正确路由到 Key/Provider 对话框,并防止慢速读取乱序、跨窗口写入和字段焦点漂移。空剪贴板与图片误粘会在当前 overlay 直接提示。 · 供应商目录仅归并确认过的 DeepSeek 官方别名,保留同名同 Key 的自定义路由;deepseek-account 按可用性显示只读登录状态,不再进入无效的 API Key 保存流程。catalog 本地模型列表不再冒充 Key 鉴权成功。 · 新增自定义 pi-ai 供应商编辑器:支持 route、displayName、带端口 baseURL、三种 wire 协议、手输/发现模型,以及已有路由的 baseURL/models 编辑。保存携带 settings revision,按 settings → credentials 顺序提交,Key 失败可单独重试;settings 只保存 apiKeyEnv,不写明文密钥。 · 完整处理目录读取失败、route 冲突、异步取消、继承模型编辑及 models / modelOverrides 互斥;保留 headers、compat 等未展示字段。 · 文档与社区 · 重排中英文 GitHub README,集中呈现核心体验、快速开始、版本兼容与常用操作。 · 增加天枢 Harness 官网、上游项目和论坛入口及徽章。 验证:typecheck;主仓 2806/2806、vision-ask 32/32;官方 rc.4 下原有 TUI expect E2E 全部通过;真实 rc.4 + 回环 HTTP 端点完成自定义供应商创建、模型发现、/model 选择及实际流式请求。
v1.0.0-rc.32026-10-28
适配官方 dsh 0.2.1-rc.4,修复旧预设注册表被禁用导致会话没有工具面的兼容问题。运行时依赖与四个预设同步到官方 0.2.1 线,补入 time-context 和 cordis Host runner/inspect providers。上游 schedule 依赖 Web sessionController,本 TUI 暂不挂载。验证:typecheck/lint/build 通过,全量 2725 + vision-ask 32 测试通过,真实 tarball 安装与 pty 四预设启动通过。
v1.0.0-rc.22026-09-30
· [1.0.0-rc.2] - 2026-09-30 宿主线上到 0.2.0(官方 next 已切 0.2.0-rc.1,latest 仍停 0.1.7 线——安装命令须显式 @next)。 · 宿主 0.2.0 线适配 · 依赖钉线 — 全部 @deepseek-ai/dsh-* peer/dev 依赖 ^0.1.5-rc.x → ^0.2.0-rc.1,cordis ^4.0.2 → ^4.0.4(include/loader/timer 随行);dsh-settings-file、dsh-code-runtime、dsh-agent-spine-demo 无 0.2.0 发布,撤出依赖线 · 消息模型重设计 — 每条消息携带 id/role/source;工具结果从嵌套 tool-result 内容块改为一等 ToolResultMessage(role 'tool',toolCallId/isError 上提到消息级):toolResultText(render.ts)、transcript 配对、export、app 结算卡四处同步改读平铺 content · agent 预设新架构 — dsh-agent-presets(文件根花名册)官方退场,改挂 dsh-agent-preset-registry 注册表 + 四条 dsh-agent-preset 声明行(standard/ptc/minimal/cordis,与官方 web-app 0.2.0 预设逐字同源);agentPresets 服务名与 mount/composeFrom/recompose/composedPreset 接缝不变,preset-join.ts 鸭式面零改动命中 · bundle patch 禁用清单对齐 web-app 0.2.0 — 新增 tool-plugin-manager、command-goal、workflow-ptc(取代已消失的 workflow-worker-thread);移除 base 已不存在的 tool-str-replace-editor · 消息源词汇 — source.kind: 'plugin' 退场:runtime-context 快照改识别 kind: 'runtime-context'(旧日志的 plugin 形态 replay 兼容保留);vision-ask 的视觉请求消息改用 { kind: 'user' } · 会话日志格式 v4 — SESSION_FORMAT_VERSION = 4(header 必带 isSeeded/delegationDepth);测试夹具同步 · LSP 三件套升 0.8.0 线 — @huiliyi37/* 0.6.0 → 0.8.0,闭包新增 dsh-type-meta、dsh-user-approval、fork 版 cordis-plugin-include/loader(npm 对 latest 仍停 0.1.7 线兼容),dsh-attachment 不再被需要而移出 · 组合测试重构 — spine-demo mega-bundle 角色由单包直挂取代(dsh-session + dsh-agent + dsh-agent-loop + dsh-system-prompt + dsh-tools + dsh-session-projection);预设测试从临时目录 agent.cordis.yml 改为声明式 preset-standard 行(plugins: []);tests/spine-events-compat.ts 垫片随 spine-demo 一并删除 验证:typecheck 0;全量 2725/2725(--no-file-parallelism);vision-ask 32/32;真机 pty e2e 全绿(vendor 宿主 0.2.0-rc.1:启动、v4 zstd 持久化、空会话跨/同目录复用、16 会话、/session list 与选择器)。
数据来自仓库的 GitHub Release,可能与插件实际版本不一致。

README

由 DeepSeek 最新模型翻译生成
dsh-tianshu-tui 把 DeepSeek Harness 变成完整、流畅的终端编程工作区。 dshfind 中文 · English dsh-tianshu-tui 终端界面 dsh-tianshu-tui 是官方 DeepSeek Harness 的交互式终端 UI 插件。自研轻量 ANSI 渲染引擎,提供流式 Markdown、工具卡、会话恢复与回退、图片与视觉桥、LSP 诊断、16 个主题,以及完整的 slash 命令和快捷键体系。 它是一个纯展示层插件:智能体状态来自会话事件流,不另建一套智能体循环,也不向模型偷偷注入提示词或工具。 核心体验 | 能力 | 你可以做什么 | | 流畅对话与工具视图 | 流式 Markdown、推理过程折叠、并行工具分组、结构化 diff、回合耗时与 token 指标 | | 完整会话工作区 | 恢复、切换、分叉、回退、导出会话;运行中排队,或通过 /steer 即时纠偏 | | 高效输入 | slash 菜单、@ 路径补全、历史搜索、多行粘贴、外部编辑器,以及可选 Vim 键位 | | 图片与视觉 | 粘贴并内联预览图片;识图模型直接接收,文本模型可经视觉桥获得图片描述 | | 智能体控制面板 | 审批 diff、plan 模式、目标、任务、技能、子代理与工作流状态集中呈现 |
展开完整文档(README 剩余 1 节)
dsh-tianshu-tui

把 DeepSeek Harness 变成完整、流畅的终端编程工作区。

dshfind

中文 · English

dsh-tianshu-tui 终端界面

dsh-tianshu-tui 是官方 DeepSeek Harness 的交互式终端 UI 插件。自研轻量 ANSI 渲染引擎,提供流式 Markdown、工具卡、会话恢复与回退、图片与视觉桥、LSP 诊断、16 个主题,以及完整的 slash 命令和快捷键体系。

它是一个纯展示层插件:智能体状态来自会话事件流,不另建一套智能体循环,也不向模型偷偷注入提示词或工具。

核心体验

| 能力 | 你可以做什么 |
| 流畅对话与工具视图 | 流式 Markdown、推理过程折叠、并行工具分组、结构化 diff、回合耗时与 token 指标 |
| 完整会话工作区 | 恢复、切换、分叉、回退、导出会话;运行中排队,或通过 /steer 即时纠偏 |
| 高效输入 | slash 菜单、@ 路径补全、历史搜索、多行粘贴、外部编辑器,以及可选 Vim 键位 |
| 图片与视觉 | 粘贴并内联预览图片;识图模型直接接收,文本模型可经视觉桥获得图片描述 |
| 智能体控制面板 | 审批 diff、plan 模式、目标、任务、技能、子代理与工作流状态集中呈现 |
| 可定制的开发环境 | 16 个主题、LSP 诊断、项目记忆、MCP 浏览、模型与推理等级热切换 |

快速开始

环境要求

| 组件 | 当前验证版本 |
| Node.js | ^22.19 || >=24 |
| 包管理器 | pnpm,可由 corepack enable 启用 |
| DeepSeek Harness | @deepseek-ai/dsh@0.2.1-rc.4,即 npm next 通道 |
| 本插件 | @huiliyi37/dsh-tianshu-tui@1.0.0-rc.4 |

请显式使用宿主 @next。 不要用宿主 @latest 代替(当前为 0.2.1-rc.2,低于要求);@alpha 的 0.2.2-alpha.2 存在已知 API 不兼容,暂不支持。本包也不是可独立运行的命令行。

一键安装(推荐)

脚本会检查 Node/pnpm、安装官方命令行、装配插件并启动:

macOS / Linux
bash <(curl -fsSL https://raw.githubusercontent.com/huiliyi37/dsh-tianshu-tui/main/scripts/install-tui.sh)

Windows PowerShell
powershell -ExecutionPolicy Bypass -Command "irm https://raw.githubusercontent.com/huiliyi37/dsh-tianshu-tui/main/scripts/install-tui.ps1 | iex"

只安装、不启动:macOS/Linux 在命令末尾加 --no-launch;Windows 克隆仓库后运行 powershell -ExecutionPolicy Bypass -File scripts\install-tui.ps1 -NoLaunch。

手动安装

1. 将插件装入独立的 tui profile
pnpm dlx @deepseek-ai/dsh@next plugin --profile tui add @huiliyi37/dsh-tianshu-tui

2. 启动
pnpm dlx @deepseek-ai/dsh@next --profile tui

首次启动后按引导配置 API Key,或输入 /key。看到 dsh-tianshu-tui 欢迎页即安装成功;按 Ctrl+Q 或输入 /exit 退出。
如果旧全局 dsh 导致 ERR_FS_EISDIR,或 npm 11 安装大型依赖树时发生 OOM,请改用上面的 pnpm dlx 命令。更多安装与排障方式见快速开始文档。

常用操作

常用命令

| 命令 | 作用 |
| /session | 新建、列出、切换或恢复会话 |
| /fork · /rewind | 分叉探索,或回退到历史消息边界 |
| /model · /effort | 切换当前会话的模型与推理等级 |
| /preset | 查看或切换 standard / PTC / minimal / creative 预设 |
| /status · /tasks · /subagents | 查看目标、任务与子代理状态 |
| /theme · /density | 切换主题与紧凑渲染 |
| /scroll · /export | 浏览完整转录,或导出 Markdown |

快捷键

| 按键 | 作用 |
| Enter | 发送 |
| Shift+Enter | 换行(或 \+Enter 续行) |
| Ctrl+N | 新会话 |
| Ctrl+S | 恢复最近会话 |
| Ctrl+Q | 退出(同 /exit) |
| Ctrl+P | 命令面板 |
| Ctrl+. | 完整键位表 |
| Ctrl+F / Ctrl+R | 历史搜索;n/N 下一个,p/P 上一个 |
| Ctrl+O | 展开/收起最近推理块 |
| Ctrl+E | 用 $EDITOR 编辑输入行 |
| Ctrl+T | 中轮转向 |
| Ctrl+Enter | 打断当前回合并立即发送草稿(需 kitty 键盘协议) |
| Ctrl+C | 打断在途回合;空闲空输入时双击退出 |
| Ctrl+V | 粘贴剪贴板图片,无图时粘贴文本 |
| Alt+W | 经 OSC52 把选区复制到系统剪贴板 |
| Shift+Tab | 循环 normal → plan → always-approve |
| Tab | @ 路径补全;接受 slash 菜单选中项 |
| Ctrl+U | 删除到行首 |
| ↑/↓ | 输入历史;菜单打开时为选择;空输入 ↑ 取回排队消息 |
| PageUp/PageDown | slash 菜单翻页 |
| Esc | 关闭面板或取消提问;空闲双击打开 rewind |
| t | 审批卡:本会话内记住此工具 |
| a | 审批卡:本会话放行 |

完整命令、审批操作、Vim 键位和终端协议说明见交互手册。

更新

从 npm 安装的插件会在启动时检查更新;也可以在 TUI 中输入 /update 手动检查。设置 DSH_TUI_SKIP_UPDATE=1 可关闭启动检查。

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

当前版本:1.0.0-rc.4,适配宿主 0.2.1-rc.4。本版修复 #61:WSL/原生粘贴 API Key、供应商目录与账号入口,并新增自定义 pi-ai 端点、模型发现和已有路由编辑。版本历史见 CHANGELOG.md,TUI 内可输入 /changelog 查看。

文档

| 文档 | 内容 |
| 快速开始 | 安装、启动、干净环境安装与故障排查 |
| 交互手册 | 全部命令、快捷键、面板与输入方式 |
| 配置 | 装配选项、环境变量、预设与运行时配置 |
| 主题 | 内置主题、自定义配色与终端降级 |
| 插件生态 | 伴生插件与扩展点 |
| 架构 · 适配契约 | 分层、事件流、服务依赖与展示层边界 |
| VS Code | 在 VS Code 终端中使用 |
| 贡献指南 · 开发说明 | 本地开发、构建、测试与发布流程 |

设计原则

- 事件驱动:所有渲染状态派生自会话事件流,恢复与实时显示走同一套转录桥。
- 不越过展示层边界:不注册自有提示词、工具或上下文面,不直接改写智能体请求体。
- 明确降级:宿主可选服务缺失时,对应面板会说明原因,不静默空白,也不阻塞启动。
- 终端友好:支持窄屏、16 色与 NO_COLOR,并针对中文宽字符、长输出和流式刷新优化。

实现细节与边界约束见架构文档和 ADAPTER.md。

已知限制

- ask_image 图片再询问需要同仓伴生插件 vision-ask;基础图片提交与视觉桥不依赖它。
- LSP server 采用懒启动;大型仓库可能常驻较多内存,切换会话时 rootUri 仍沿用首个会话目录。
- 上游 schedule 依赖 Web sessionController,当前 TUI 未挂载该工具面。
- 0.2.2-alpha.2 的模型选择与预设 API 已发生变化,完成专项适配前请停留在宿主 0.2.1-rc.4。

参与贡献

欢迎提交 Issue 和 PR。开始前请阅读贡献指南,改动后运行:

npm run typecheck
npm test
npm run build

官网与社区

| 入口 | 说明 |
| 天枢 Harness 官网 | 官方网站与项目介绍 |
| Tianshu-harness 上游项目 | 上游源码、Issue 与版本动态 |
| 天枢论坛 | 使用交流、经验分享与问题讨论 |

社区生态

| 项目 | 简介 |
| dshfind | DeepSeek Harness 中文学习与插件社区 |
| dsh-web-ui | DSH Web UI 插件与皮肤合集 |
| dsh-TUI | Claude Code 风格全屏终端插件 |
| deepseek-harness-ux | 长任务进度聚焦与历史自动折叠 |
| DSH-better-sidebar | 文件、终端、Git 与子代理侧边栏工作台 |
| DSH Desktop | 社区桌面端与远程任务控制 |
| dsh-whale-report | 会话、成本、工具调用与风险报告 |

许可与来源

基于 Apache-2.0 开源。终端渲染引擎从作者的天枢 Tianshu-harness 演进而来;逐文件来源与修改声明见 SOURCE-MAP.md 和 NOTICE。
预览分享卡片长什么样 ↓huiliyi37/dsh-tianshu-tui
分享 · DeepSeek Harness Hub
huiliyi37/dsh-tianshu-tui

把 DeepSeek Harness 变成完整、流畅的终端编程工作区。

回到顶部