← 返回列表
未验证
用 Qt6 原生界面接入会话,内存省四成五
尚未跑自动兼容性验证,可查看页面内的依赖与入口分析。 · 最近上游提交 2026/8/21 · 已提供中文文档
DeepSeek Harness(dsh)的 Qt6 / QML 原生桌面客户端。
综合分
28.1
GitHub 分
28.1
用户评分
—
★ Stars
1
周下载量
—
安装插件(需先安装 dsh CLI 引擎:npm install -g @deepseek-ai/dsh)
dsh plugin --profile web add RayJinStudio/Deepseek_Harness_QTDesktop该插件未发布到 npm,走 GitHub 源安装(pnpm 若拦截 prepare 脚本,按其提示在 pnpm-workspace.yaml 的 allowBuilds 中放行后重跑)
数据截至 2026/9/16(元数据每日更新 · 实装验证按队列轮转,单条结论的验证时间见上方)
用户评分
还没有人投票,来当第一个
订阅周报,不错过优质插件更新
每周一封 · 高评分插件 + 新用户活动
README
dsh-qt
DeepSeek Harness(dsh)的 Qt6 / QML 原生桌面客户端。界面与交互 1:1 复刻 Web
原版,通信协议与原版完全一致——同一个 harness 宿主,Web 与 Qt 客户端可互换使用。
同会话同负载实测——内存省约 45%,CPU 占用约为三分之一。
功能
- 会话界面 1:1 复刻 Web 原版
- 流式 Markdown 渲染(增量分块、代码块独立刷新)、Think 思考折叠行
- 工具卡全型别:终端 / diff / 搜索 / 读写 / 网页,错误行首行摘要、运行态扫光
- 审批接管面板、提问卡片、消息队列坞(排队 / 插话,贴输入框叠放)
- 图片附件:拖拽 / Ctrl+V 粘贴 / 文件选择,气泡外缩略图(单图 240px 自适应、
多图 64px 方格),点击全屏 lightbox 预览;历史图片经 session.attachment 惰性解析
- 产物 chips、复制 / 分支 chrome(仅轮次结束后出现在轮尾,与原版 TurnTailNodeView 一致)
- 轮次统计条(轮数 / 步数 / 耗时 / token 速率 / 缓存命中)
- 轨迹页:全事件时间线 + 标签化详情(Summary / Payload / Result / Schema / Timing)
- 会话管理:工作区树、会话搜索、重命名 / 归档 / 分支、历史向上分页
- 侧边栏:56px 收缩 rail、拖拽调宽、窗口宽度自适应收展(迟滞区间)
- 设置面板:内置各节 + 插件注入节,主题跟随系统(可 --theme 覆盖)
软件运行截图
会话界面
dsh-qt 会话界面
新会话首页
dsh-qt 新会话首页
设置面板(插件设置UI部分兼容)
dsh-qt 设置面板
插件兼容(React 设置页 → QML 原生组件)
官方 WebUI 插件常带 client 端 React 页面(settings.section 等 slot 注入)。本客户端不嵌入
浏览器内核,而是用 Node 子进程运行插件前端逻辑,再把 React 元素树实时翻译成原生 QML 组件:
tools/plugin-runtime-core.mjs mini-React(createElement + hooks + 渲染)+ slots/ctx/fetch shim
tools/plugin-runtime.mjs stdio 桥接(QProcess ↔ Node,JSON lines 协议)
src/plugins/ClientPluginHost.* 插件发现(~/.dsh/profiles//node_modules)、spawn、sections 模型
src/ui/plugins/PluginTree.js 元素树 → QML 宿主组件(样式 / flex 布局 / 事件翻译)
src/ui/plugins/R.qml 宿主组件(RBox/RColumn/RRow/RFlow/RText/RButton/RLink/RInput…)
- 插件前端代码在原版 bundle 中原样运行(VNode 树结构化diff),不嵌入 Chromium/WebView
- 已注册的 settings.section 出现在设置面板导航栏(按 order 排在内置节之后)
- 运行时状态 / 错误显示在导航栏底部;诊断日志带 [pluginHost] 前缀输出到 stderr
兼容性说明:已实测部分插件的设置页可用。mini-React 实现了
常用 hooks 子集,宿主组件覆盖常见 HTML 元素与样式属性——部分插件可能存在兼容性问题
(如依赖复杂第三方组件库、浏览器专有 API、canvas 等),欢迎反馈具体插件。
技术优势
- 纯 Qt 原生:Qt6 QML 渲染,无 Chromium / WebView 内核,启动快、体积小
- 深度内存优化:相比 Web 类原版(Electron / Tauri / WebView2 壳)内存与 CPU 占用显著更低
- C++ 侧 QAbstractListModel 增量模型,行级 dataChanged 精确失效(绝不整表重建)
- 流式 token 节流 flush + 块级前缀保持(已落定块不重绑,快速 token 流不重建整棵代理树)
- 图片按显示尺寸 2x 密度解码,历史附件惰性解析;轨迹页惰性装载(切走即卸载)
- 协议完全一致:HTTP POST 一元调用 + POST /api/respond + 两条只下行 WebSocket
(/api/events.mux、/api/events.host),Typert remote 走 POST /api//
(payload {args: {...}})——行为对照上游 packages/host/apiproxy/src/api/
构建
Windows(Qt 6.6.1 msvc2019_64 / msvc2022 均可)
cmake -B build -DCMAKE_PREFIX_PATH=D:/software/Qt/6.6.1/msvc2019_64 -DCMAKE_BUILD_TYPE=Release
cmake --build build -j
Linux
cmake -B build -DCMAKE_PREFIX_PATH=~/software/QT/6.5.3/gcc_64 -DCMAKE_BUILD_TYPE=Release
cmake --build build -j
运行
先启动 harness(需要 node 22+)
pnpm dsh --profile web # 默认监听 127.0.0.1:3080
再启动客户端
./build/dsh-qt # 连默认 3080
./build/dsh-qt -u http://127.0.0.1:
Linux:本机 Wayland 组件过旧时必须 xcb
QT_QPA_PLATFORM=xcb ./build/dsh-qt
开发参数
- --dump:无头冒烟——连接后打印 workspace/session/conversation 行数并退出
- --demo:注入合成事件(全部工具卡型 + 审批 + 提问 + 队列),不连 host
- --shot :启动后截图并退出(配 QT_QPA_PLATFORM=offscreen QT_QUICK_BACKEND=software)
- --theme light|dark:覆盖系统主题(默认跟随系统,与 WebUI 的 preference: 'system' 一致)
- --settings :启动即打开设置面板并定位到指定节(插件节 id 也可,如 --settings subscription-auth)
结构(镜像 packages/client)
src/connection/ ≈ client/connection:ApiClient / WsDownlink / ConnectionController
src/runtime/ ≈ client/runtime:Session/Workspace/Projection/Queue/Jobs/Interaction/
Settings/Subagent/Conversation Store + Runtime 路由
src/ui/ QML 模块,目录与 webui 的 ui-* 一一对应(layout/sidebar/conversation/
tool/questions/approvals/settings/subagent/theme)
tools/_harness/ QML 几何探测 harness(qml.exe 直跑,布局回归用)
协议对照文档(上游单一事实源):deepseek-harness-master/packages/host/apiproxy/src/api/。
未来展望
- Harness 启动器(Launcher)
- 在客户端内置 harness 启动与托管能力,支持按 profile 管理本地 harness 环境
- 提供环境检测与配置(Node/pnpm 版本、端口占用、工作目录与启动参数)
- 客户端启动时可自动拉起 harness,退出时按策略托管或回收进程,降低手工维护成本
- 增加启动健康检查与重连机制,确保会话可用性与恢复速度扫码进群