DeepSeek Harness Hub
← 返回列表

zhou-tao/dsh-ui

DeepSeek Harnessspec-screened在 GitHub 查看 ↗
需源码安装

dsh-ui — DeepSeek Harness UI 全家桶

暂不能直接安装(需源码编译或环境不满足):缺少 main/exports/bin 入口声明;仓库 package.json 标记 private,未发布到 npm,需从源码安装。 · 最近上游提交 2026/8/20 · 已提供中文文档

deepseek-harness 的 UI 层:Tauri 桌面应用 + VS Code 扩展 + Ink TUI,共享一个经过验证的线协议客户端(@dsh-ui/protocol)

综合分
34.4
GitHub 分
34.4
用户评分
★ Stars
11
周下载量
安装插件(需先安装 dsh CLI 引擎:npm install -g @deepseek-ai/dsh)
dsh plugin --profile web add zhou-tao/dsh-ui
缺少 main/exports/bin 入口声明;仓库 package.json 标记 private,未发布到 npm,需从源码安装,改用 GitHub 源安装
数据截至 2026/9/17(元数据每日更新 · 实装验证按队列轮转,单条结论的验证时间见上方)
安装兼容性检查需源码安装

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

npm 包dsh-ui @ 1.0.0
Node 引擎未声明 engines.node
dsh CLI 依赖未声明 dsh 版本约束
入口文件缺少入口声明

缺少 main/exports/bin 入口声明;仓库 package.json 标记 private,未发布到 npm,需从源码安装

验证方式:npm registry 存在性 + package.json 静态校验 · 最后验证 2026/9/18 05:20:45

用户评分
还没有人投票,来当第一个
订阅周报,不错过优质插件更新
每周一封 · 高评分插件 + 新用户活动

README

dsh-ui — DeepSeek Harness UI 全家桶

为 DeepSeek Harness 打造的一套 UI 客户端 monorepo:桌面客户端(Tauri 2)+ 终端 TUI(Ink)+ 手机互联 H5 + VS Code 扩展,全部复用同一套实测过的 harness 协议。

桌面应用名:DeepSeek Harness UI(macOS / Windows) · TUI 包名:@dsh-ui/tui(npm)

✨ 功能特性

| 客户端 | 能力 |
| --- | --- |
| 🖥 桌面端(DeepSeek Harness UI) | 自动拉起 harness、原生窗口内嵌完整 Web UI;手机互联入口:侧边栏手机图标 + UI 弹窗(同一 Wi-Fi 局域网扫码),二维码自动加载、手机连接状态绿点 |
| 📱 手机互联 H5 | 手机浏览器访问:会话列表按工作区分组、标题与桌面端一致(标题→目录名→sessionId 兜底);会话完整消息 + markdown 渲染(代码块/表格/列表);历史加载桥接层自动瘦身(~10MB → ~100KB);发送消息适配最新 harness 载荷 |
| ⌨️ 终端 TUI(@dsh-ui/tui) | Ink 交互式会话列表/会话视图/实时 mux 流/消息输入;--once 无 TTY 模式可跑 CI/管道;npm 可安装 |
| 🧩 VS Code 扩展 | WebviewPanel 内代理桥(CSP 严格、无直连网络) |
| 📦 协议包(@dsh-ui/protocol) | 零依赖 wire 协议(信封/方法类型/事件帧),四端共享,已对活 harness 冒烟验证 |

手机互联工作方式(同 IP / 局域网)
- 桌面端启动即后台拉起连接服务;点手机图标打开弹窗 → 自动生成二维码(无需任何操作);
- 手机与电脑连同一 Wi-Fi,扫码 → 浏览会话 / 发消息;
- 状态圆点:手机 3 分钟内访问过桥接即显示绿色;
- 公网(跨 IP)互联建设中(原 cloudflared 隧道方案国内网络不可靠,已标记占位)。

🖼 界面预览

| 桌面端 | 手机互联 H5(会话列表) | 手机互联 H5(会话详情) |
| --- | --- | --- |
| desktop | mobile-h5-list | mobile-h5-conversation |

| TUI(会话列表) | TUI(会话详情) | VS Code 扩展 |
| --- | --- | --- |
| tui-list | tui-conversation | vscode |

📦 安装与使用

前置依赖
- Node ≥ 22、pnpm 9
- Rust 工具链(桌面端编译需要)
- 桌面端无需预置 harness:打开时自动在 127.0.0.1:3088 启动独立的 dsh web(数据目录 ~/.dsh-ui);TUI / VS Code / H5 需要 harness 运行中(默认 127.0.0.1:3080)

1) 桌面端(DeepSeek Harness UI)
pnpm install
pnpm --filter @dsh-ui/desktop tauri:dev    # 开发模式
pnpm --filter @dsh-ui/desktop tauri:build  # 打包(.dmg / .msi / .exe)
- macOS:DeepSeek Harness UI.app(Apple Silicon 与 Intel 均有对应构建);Windows:.msi / .exe
- 发布版从 GitHub Release 获取
- 桌面端默认监听 127.0.0.1:3088(环境变量 DSH_UI_PORT 可换端口),使用独立数据目录 ~/.dsh-ui(DSH_HOME 可覆盖),与 3080 的 GUI harness 互不干扰;首次启动自动从 ~/.dsh 复用 LLM 凭证

macOS 首次打开提示"已损坏"? 这是 Gatekeeper 对未签名构建的正常拦截(提示措辞有误导性,文件本身没有损坏)。任选一种方式打开:

方式一:移除 quarantine 标记后正常打开(推荐)
xattr -dr com.apple.quarantine "/Applications/DeepSeek Harness UI.app"
open "/Applications/DeepSeek Harness UI.app"

方式二:右键点 app → 打开 → 再次点"打开"

Windows SmartScreen 提示同理:点击"更多信息" → "仍要运行"即可。

2) 手机互联 H5
pnpm --filter @dsh-ui/mobile-h5 build   # 构建前端
pnpm --filter @dsh-ui/mobile-h5 start   # 启动桥接服务(默认 4173 端口,监听 0.0.0.0)
- 手机浏览器打开 http://:4173(IP 在桌面端弹窗二维码下方可见)
- 深链直达:http://:4173/?session=

3) 终端 TUI(npm 安装)
npm i -g @dsh-ui/tui     # 或 pnpm i -g @dsh-ui/tui
dsh-tui                  # 交互模式(需真实终端)
dsh-tui --once           # 无 TTY 一次性打印
dsh-tui --once -- --session    # 导出某会话历史渲染
仓库内开发:pnpm --filter @dsh-ui/tui dev

4) VS Code 扩展
pnpm --filter dsh-ui-extension compile
F5 运行 Extension Development Host 验证

5) 一键构建 / 测试
pnpm build       # 全 workspace 构建
pnpm typecheck   # 全量类型检查
pnpm test        # 协议层单元冒烟(无需 harness)

🗂 项目结构

dsh-ui/
├── packages/protocol/       # @dsh-ui/protocol — 零依赖 wire 协议(传输层 + 方法类型 + 事件帧)
├── apps/
│   ├── desktop/             # @dsh-ui/desktop — Tauri 2 桌面端(Rust 管 harness 进程 + 手机互联注入)
│   ├── tui/                 # @dsh-ui/tui — Ink v7 终端客户端(npm 包)
│   ├── mobile-h5/           # 手机互联 H5 + 桥接服务(同源代理 /api,响应瘦身,/qr /status)
│   └── vscode-extension/    # VS Code Webview 面板客户端
├── plugins/                 # dsh 插件(抽象出的通用能力,装进 harness 即生效)
│   ├── dsh-deep-ui/         # UI 层增强:会话思考过程折叠(已工作 X 分 X 秒 + 折叠图标)
│   └── dsh-remote/          # 手机互联(H5 远程互联):手机图标 + 扫码弹窗 + 状态绿点
└── .github/workflows/       # CI(编译/测试)+ Release(GitHub Release + npm)

技术要点
- 协议(已实测):unary RPC 走 POST /api/{method},下行事件 WebSocket(/api/events.mux);浏览器 / Node 双载体
- 手机互联桥接:harness 绑定 127.0.0.1 且拒绝局域网 Origin → H5 由桥接同源托管,服务端代理 /api/;历史响应自动过滤流式分片/元数据(10MB → ~100KB)
- 跨 IP 方案规划:原 cloudflared 快速隧道在国内网络不可靠,已标记"建设中";后续优先考虑 SSH 反向隧道(VPS + 自有域名 + Caddy 自动 HTTPS)

🔌 dsh 插件(plugins/)

把通用能力抽象为 harness 插件(client bundle,装完即生效),后续 UI 优化都在这两个插件里持续进行:

| 插件 | 能力 |
| --- | --- |
| dsh-deep-ui | 每轮回答结束后自动折叠 AI 思考过程(工具调用/推理/步骤),摘要「已工作 X 分 X 秒」+ 折叠图标(收起箭头向右/展开向下),横线分隔后再展示回答 |
| dsh-remote | 手机互联入口:侧边栏手机图标 + UI 弹窗(同 Wi-Fi 扫码)、连接状态绿点、二维码自动加载 |

安装 / 卸载(装进 harness profile)

桌面端 DeepSeek Harness UI 启动时自动安装(幂等):应用启动/拉起 harness 前会自动把
plugins/ 下的插件装进 ~/.dsh/profiles/web(写入 cordis.patch.yml + package.json 依赖 +
node_modules 链接),无需手动操作;首次运行(profile 刚创建)会补装并自动重启一次 harness 使其生效。
插件源码已随桌面端打包进 bundle(resources/plugins/),release 版同样生效。

手动安装 / 卸载(CLI 场景,如 TUI):
pnpm plugins:install            # 写入 ~/.dsh/profiles/web 的 cordis.patch.yml + 依赖并 pnpm install
重启 harness(或重启桌面端 DeepSeek Harness UI)后生效
pnpm plugins:install --remove   # 卸载

插件结构:每个插件是 npm 包(dsh.client 声明 + exports["./client"] 的 ModuleLoader bundle + 空 node 半身)。
桌面端内置注入(inject.js)与 dsh-remote 以 window.__dshPhoneInject 互斥,装插件后由插件接管。
自动安装后如需改回手动管理,先 pnpm plugins:install --remove 再重启桌面端即可。

🚀 发布(CI/CD)

见 .github/workflows/:

- CI(push / PR):pnpm install → typecheck → test → build
- Release(推送 v* 标签):
- 桌面端自动构建并上传 GitHub Release:macOS arm64(Apple Silicon)+ macOS x64(Intel)的 .dmg、Windows 的 .msi / .exe
- TUI 自动发布 npm(@dsh-ui/tui,需 NPM_TOKEN secret)

git tag v0.1.1 && git push origin v0.1.1   # 触发发布

🤝 贡献指南

欢迎提交 Issue 与 PR!请遵循以下约定:

1. Fork + 分支:从 main 切出 feat/xxx 或 fix/xxx 分支
2. 本地校验(提交前必须通过):
pnpm install
pnpm typecheck   # 全量类型检查
pnpm test        # 协议层测试
pnpm build       # 全量构建

3. 协议改动:涉及 harness 交互时,先对活 harness 实测(pnpm --filter @dsh-ui/protocol smoke),并在 packages/protocol 更新类型与注释
4. 提交信息:feat / fix / docs / chore + 简述(如 fix(desktop): 二维码自动加载)
5. PR:描述改动内容、验证方式、截图(如有 UI 变更)
6. 测试:新增逻辑尽量在 packages/protocol 加纯逻辑断言(pnpm test),不依赖 harness 即可跑

代码风格:TypeScript 严格模式;Rust 侧 cargo check 零警告;保持零不必要依赖。

📄 License

MIT

上游仓库有新提交时邮件通知你(每天最多一封,无更新不打扰),随时一键退订。

💬 加入 DPharness 群聊

插件用法、部署报错、新插件第一时间同步——群里问,比一个人翻文档快。

点击加入 QQ 群
DPharness 群聊二维码,手机 QQ 扫码进群
扫码进群