MarecGents/deepseek-harness-hub

Desktop桌面端 Native原生 ⭐ 3 MIT Clients & Launchers客户端与启动器

面向DeepSeek Harness的Windows桌面项目插件

Project Overview项目介绍

This repository is an archived desktop client framework built exclusively for DeepSeek Harness (DSH). It runs DSH’s Web UI in a native Tauri 2.x window for Windows, adding native OS integrations like system tray, theme synchronization, window state memory, and system notifications. Active development stopped in September 2026, because DSH’s ecosystem is undergoing frequent breaking changes that made dual-track adaptation for the desktop shell and plugins too costly to maintain.

The last maintained version is 0.1.6, which is compatible with DSH 0.1.2-rc.1. It comes with a ready-to-use NSIS installer for Windows that automatically downloads required dependencies including a private Node.js build, DSH core, and all bundled plugins during installation. Users do not need to have Node.js pre-installed on their system to use this client. First launch automatically loads the DSH UI directly, and uninstallation cleans up only framework-specific entries while leaving DSH core and user data intact.

The framework adds many quality-of-life features for DSH, including a browser-style session tab bar, a dockable interactive terminal that supports custom shells, 15 customizable skins, and unified desktop icon theming across all system UI elements. It is distributed under the permissive open source MIT license. After archiving, all active development branches are frozen, and any future resumption of work should start from the archived dev-v2 branch, with a required review of breaking change audits before upgrading DSH core.

这是专为DeepSeek Harness(DSH)打造的桌面端框架,基于Tauri 2.x以原生窗口运行DSH的Web UI,提供系统托盘、主题同步、窗口状态记忆、右侧栏与系统通知等功能。项目已于2026年9月8日归档停止开发,原因是DSH生态处于快速破坏性变更期,桌面壳加插件双轨适配成本持续走高,开发难度过大。

最新可用版本为0.1.6,适配DSH 0.1.2-rc.1,提供开箱即用的NSIS安装包。安装过程会自动下载私有Node、DSH本体及相关插件到安装目录,不需要用户系统预先安装Node环境,首次启动自动进入DSH界面,卸载时会清理自有配置项,同时保留DSH核心本体和用户个人数据。

项目支持会话标签栏、自定义交互终端、15套主题皮肤、模型选择菜单、右键菜单全量接管、桌面图标六面同步等丰富功能。已知遗留问题包括composer模型和思考强度菜单的宽度、定位仍未完全定型,部分CI工作流存在历史失败记录。本项目采用MIT许可证开源,归档后所有分支均已冻结,仅接受后续基于归档点的恢复开发。

Pre-install check安装前体检Compatibility · Security兼容性 · 安全性 2 warnings2 项注意
  • Only 3 stars - very few users, little community feedback星标只有 3,几乎没人在用,遇到问题缺少社区反馈
  • Desktop client: installation downloads an executable - verify the publisher and checksums桌面客户端:安装会下载可执行文件,请核对发布者与校验和
DSH walks through these 9 checksDSH 会逐条核对这 9 项

Compatibility兼容性

  • DSH, Node, OS and profile requirementsDSH 版本 / Node 版本 / 操作系统 / profile 是否满足要求
  • External dependencies and runtimes (Electron / Python / Docker, ...)外部依赖与运行时(Electron / Python / Docker 等)是否齐备
  • Conflicts with installed plugins: command names, skill / tool names, ports, duplicate MCP registration与已装插件是否冲突:命令名、skill / tool 重名、端口占用、重复 MCP 注册

Security安全性

  • Repo matches the facts registered here; archived or abandoned?仓库是否与页面登记一致,是否归档或长期停更
  • Safety of preinstall / install / postinstall and install.sh / setup.ps1preinstall / install / postinstall 与 install.sh、setup.ps1 是否安全
  • curl|bash, download-then-execute, obfuscation, unrelated domains → stop immediatelycurl|bash、下载即执行、混淆代码、无关域名 → 立刻停止
  • Typosquatting or unmaintained packages among the new dependencies新增依赖里有没有 typosquatting 或无人维护的包
  • Requested permissions vs. what the feature actually needs申请了哪些权限、是否超出功能所需(filesystem / network / shell / clipboard)
  • Any sudo / admin requirement, plus uninstall and rollback是否要求 sudo / 管理员权限,以及卸载与回滚方式

Anything uncertain must be marked unknown with a note on how to confirm it. This site's signal screen is a static snapshot, not a security audit.拿不准的必须标「未知」并说明要我怎么确认。本站的信号筛查是静态快照,不能替代安全审计。

Or use CLI install (for developers)或使用命令行安装(适合开发者)

CLI Install命令行安装

dsh plugin --profile web add github:MarecGents/deepseek-harness-hub

把 MarecGents/deepseek-harness-hub 加入你的 DSH 配置(web profile)即可启用。

READMEREADME

@marecgents/dsh-hub —— DeepSeek Harness(dsh)的桌面端框架:以原生 Tauri 2.x 窗口运行 dsh Web UI,提供托盘、主题同步、窗口记忆、右侧栏与系统通知。

⚠️ 项目已归档(2026-09-08)

本仓库已归档,停止主动开发。 归档原因:dsh 生态处于快速破坏性变更期(0.1.2-rc.1 → 0.1.3-alpha.1 连续破坏面),桌面壳 + 插件双轨适配成本持续走高,开发进度过于艰难,经仓库所有者决定归档。

  • 最后版本:0.1.6(Tauri 2.x 壳 + dsh 0.1.2-rc.1 适配,NSIS 安装器可用)
  • 分支状态:dev-v2 与 main 均冻结在归档点;dev-v1(WebView2 时代)保持永久冻结
  • 已知遗留:composer 模型/思考强度菜单的宽度与定位仍在迭代中(未完全收敛);CI workflow(frontend/rust)存在历史失败记录(lock 同步、Windows-only 构建脚本、行尾校验等,部分已修复)
  • 后续指引:如需恢复开发,从 dev-v2 归档点继续;升级 dsh 前先读 REFERENCE.md §2 的破坏性变更审计(0.1.2-rc.1 / 0.1.3-alpha.1)

版本状态(2026-09-06):0.1.6——Tauri 2.x 壳 + dsh web 插件层(dsh 0.1.2-rc.1 适配 + composer 模型与思考强度 seat 修复)。NSIS 安装器安装即用(安装期自动下载私有 Node + dsh + 插件到安装目录,无需系统预装 Node),首启自动进 dsh UI;卸载走快速通道并清理自有 profile 条目(保留 .dsh 本体与用户数据)。功能全貌见 FUNCTIONS.md(11 大类、每项带来源与测试状态):会话标签栏、交互终端(自定义 Shell)、对话定位条、置顶会话、右键菜单全量接管 + 双语 i18n、15 套皮肤 + 背景图 + 桌面图标六面同步、权限策略、composer 内联思考强度声明、四个独立插件、壳内拖放恢复、启动 Splash 皮肤配色。0.0.2-rc.* 与 0.0.1-rc.14(WebView2 壳 dev-v1,已冻结)为历史版本。

npm version npm rc license GitHub stars dsh-plugin platform


分支状态

分支 状态 说明
main 已归档冻结(2026-09-08) 归档点 = dev-v2 同步;不再接收更新
dev-v1 永久冻结(WebView2 时代存档) 不再接收任何更新/同步;历史收尾 = 0.0.1-rc.13/rc.14(WebView2 最终版)
dev-v2 已归档冻结(2026-09-08) 归档点 = 0.1.6(T1 调试版,未发布 npm);恢复开发从此分支继续

功能特性

  • 原生桌面化:用 Tauri 2.x 原生窗口打开 dsh Web UI,无浏览器标签页干扰。
  • 品牌化 Splash(皮肤配色):启动覆盖层配色跟随当前皮肤/主题(helpers/boot_theme.rs 读配置注入,body/html 背景同步防导航闪白),带阶段文案(正在启动服务…/正在加载界面…);占位页常驻到导航,dsh 页等 SPA 首绘后平滑淡出(无白屏间隙)。
  • 系统托盘:
    • 显示主界面 / 隐藏主界面(按窗口状态动态切换)
    • 打开工作区(自动激活并前置 Explorer)
    • 新建任务(走官方 ctx.workspaces.startSession 流程,UI 即时刷新;SPA 未就绪时命令自动重试——__mgShellReady 300ms×20 轮询不丢命令)
    • 退出(写 quit.marker 后干净退出,避免误判崩溃重启)
  • 窗口状态记忆与尺寸管理:最大化状态、分辨率、主题等持久化到 $DSH_HOME/dsh-hub/config.json;套用保存尺寸前若处于最大化先退最大化、退出时恢复保存尺寸;无保存尺寸时默认光标所在屏 3/4(multi-monitor aware,无上限,下限 480×360)。
  • 主题跟随(system):MutationObserver 事件驱动,apply_page_theme 命令让标题栏深浅色、webview 背景与**窗口图标(icon-dark / icon-light 翻转)**实时跟随 dsh 页面主题(Tauri 壳 Rust Dwm 实现)。
  • 桌面图标(S6,PR #25 + 08-23 重构):设置卡可选 5 张鲸鱼娘图标(sad/happy/duo/maid/blue)或默认主题翻转鲸鱼;切换即时生效于任务栏按钮(WM_SETICON ICON_BIG,PostMessageW 异步)+ 标题栏/Alt-Tab(ICON_SMALL)+ 托盘 + 开始菜单快捷方式 + 桌面快捷方式的 .lnk IconLocation 与 AUMID IconUri 统一指向 icons\current.ico 固定锚点(rc.18:切换图标即重写锚点文件 + 通知 Explorer——快捷方式移到任意文件夹图标仍跟随,任务栏缓存经逐-lnk 通知 + ie4uinit 刷新) + 自绘标题栏图标(与任务栏/托盘同源真实 PNG /api/dsh-hub/icons/*.png)——六面统一编排(managers/icon.rs IconManager:面级幂等 + 全局串行锁 + 单 worker/pending 合并,快速连续切换不卡死);持久化于 config.json 的 desktopIcon;.ico 多尺寸资产由 scripts/generate-desktop-icons.py 生成并随 resources 打包到 $INSTDIR\icons\。
  • 模型选择(composer 默认 seat,PR #33):在对话输入框右下角以单一 trigger 显示「模型 · 思考强度」,打开后进入「模型 / 思考强度」两级菜单;priority −1 shadow 官方 conversation.input.model seat,模型与 effort 共用同一 session directory 和 select 链路。0.1.6 修复:采用 scoped ctx.inject(['modelDirectories']) 等待服务就绪后注册,修复 dsh 0.1.2-rc.1 服务排序导致的官方默认 seat 回退;自定义模型无 reasoning 元数据时,可在同一思考强度面板内声明标准档位,写入官方 llm-pi-ai 设置后由 Host catalog 返回正式选项;服务缺失仍降级内置 seat,不 PENDING 整个插件。
  • 会话标签栏(M2):标题栏内浏览器式会话多页标签(SessionTabs.tsx createPortal 渲染进 #dsh-hub-titlebar .tb-title)——点击切换、+ 新建、× 关闭;固定宽度 180px + 多标签弹性压缩(浏览器式,溢出隐藏不滚动);标签文字居中、关闭 × 贴最右、字号 13;状态点(等待琥珀 / 后台完成绿 / 运行蓝 + 脉冲动画);右键菜单复用 session-menu(分叉/归档/复制路径/资源管理器)+ 内联重命名(IME 组合输入不误提交);拖拽排序(session-tabs.ts localStorage dsh-hub:session-tabs 持久化);激活标签自动滚动入视;归档/删除会话自动移除标签(空快照不剪枝门控 + blank「新会话」占位)。
  • 交互终端(M4):底部 dock 真实交互终端(xterm.js 6.0.0 + node-pty)——Ctrl+J 开关;每 tab 一个独立会话(cwd = 打开时所在工作区);自定义 Shell(2026-08-26):默认终端可选 PowerShell 5.1 / PowerShell 7 (pwsh) / 命令提示符 (cmd) / Bash (Git Bash / WSL)——宿主先探测可用性(进程 PATH + 机器 PATH 扫描,未安装的不列出),设置面板仅显示已检测到的 shell,选择持久化(terminal-prefs),ptyRetarget 按 shell 语法重定向(PS Set-Location / cmd cd /d / bash cd);多 tab + 懒挂载(切换重放 ring buffer);危险命令拦截(rm / Remove-Item / format 等 UX 护栏,非安全边界);输出走 SSE JSON 信封(data: JSON.stringify(chunk) + 15s 心跳)+ 进程级 token 鉴权(Authorization: Bearer / EventSource ?token=;token 经 webserver/index-inject 以 global __DSH_HUB_TOKEN__ 注入页面,见 src/index.ts);关闭 taskkill /T /F 杀整棵进程树防残留。(host:src/services/pty-manager.ts(detectShells + createPty(shell))+ src/server/terminal-pty-api.ts(含 GET /pty/shells)+ src/server/token.ts;client:pty-store.ts / terminal-dock.tsx / terminal-prefs.ts / xterm-css.ts)
  • S0 安全(M3):Origin 白名单校验——POST/PUT 等状态变更请求校验 Origin(loopback / tauri:),缺失 Origin 拒绝;GET/HEAD 跳过(DNS-rebinding 已由 Host 校验覆盖)(server/host-guard.ts,路由工厂共享)。
  • 工作区打开(M4):POST /api/dsh-hub/workspace/open 用 OS 默认方式打开文件/文件夹(host+origin+token 三重守卫,Windows explorer.exe);壳 capability 放行 dialog:allow-open(M2,src-tauri/capabilities/default.json)。
  • findings-ledger 插件(PR #38):独立 dsh 插件(plugins/dsh-findings-ledger/)——baseline 快照 + 变更对账 + 覆盖度报告。
  • permission-guard 插件(PR #37):独立 dsh 插件(plugins/dsh-permission-guard/)——逐命令权限白名单 + 四级能力拦截(auto / give-command / confirm / never)。
  • project-memory 插件(PR #36):独立 dsh 插件(plugins/dsh-project-memory/)——每项目持久记忆(FACT.md + JOURNAL.jsonl,自动注入 systemPrompt.context + memory_read/memory_log/memory_fact 工具)。
  • usage-stats 插件(PR #34):独立 dsh 插件(plugins/dsh-usage-stats/)——全会话 token 用量统计(按 provider/model 聚合 + 设置页可视化:汇总/各模型卡片/按天表格/趋势图/单价费用估算 + HTTP API;0.1.0 修复读取 500 与表格透背景图两处缺陷);provider 名与服务端文案均双语(zh/en,跟随 dsh 语言设置,独立加载插件同样生效)。 以上 4 个独立插件双轨分发(随 hub resources + 独立 npm 轨,package.json 均已 private:false 就绪),见 BUILD.md §7 与 AGENTS.md §1.1。
  • 设置页(一级):0.1.2 起为设置对话框一等页面(Agent 预设与用量统计之间),0.1.3 改为官方插件页风格三卡片(分辨率/常规设置/外观设置,默认折叠)+ 权限策略单列——窗口尺寸 / 主题 / 托盘行为 / 会话完成通知 / 提示音 / 多实例开关 / 界面皮肤 / 背景图 / 桌面图标。皮肤 15 套:内置 5(午夜蓝/旧纸张/终端绿/ZCode/极光紫)+ Reasonix 官方 8(rx-,黑金/绯红地平线/青蓝舞台/熔炉金红/玫瑰晨光/鼠尾草微风/火花笔记/紫罗兰星光)+ opencode 2(oc- 经典/石墨)——由统一推导规则生成器产出(1:1 直映射 + 定向混合 + dimmed 夹取 ≥3.5:1),每套浅/深 × 33 token + docs/skins/*.md 文档;选择器为官方 Setting-Cell + Menu(菜单项与 pill 带皮肤浅|深色块预览),皮肤名/描述走词典、随 dsh 语言切换。
  • i18n(全量双语):hub 全部界面文案(设置卡/会话菜单/工作区菜单/皮肤名/空白右键菜单等)与 usage-stats 插件文案均收进 zh/en 词典(src/client/locale.ts;usage-stats 独立插件自带词典),语言源 = dsh 设置(General → Language)——官方 locale 插件写入的 <html lang>,切换即全量刷新。
  • 右键菜单语义:WebView2 原生右键菜单已在 Rust 侧禁用(SetAreDefaultContextMenusEnabled(false));右键全部由 DOM 接管,四层优先级——对象行(会话/工作区)→ 各自专属菜单,对话文本选中 → 复制菜单(复制/添加到当前任务/在辅助对话中提问),链接 → 链接菜单(在浏览器中打开/复制链接地址),输入框 → 编辑菜单(撤销/重做/剪切/复制/粘贴/删除/全选),空白处 → 刷新菜单。链接左键点击在默认浏览器打开(open_url Tauri 命令)。
  • 壳内拖放恢复(0.1.0):关闭 Tauri 对 WebView2 拖放的文件专用覆盖——列表行拖拽排序(工作区/会话)、标签拖拽在壳内恢复浏览器同款行为;拖文件到输入区 = 官方附件上传,其他区域安全忽略(杜绝 file:// 导航);拖拽状态 watchdog 兜底。
  • 权限策略档位(rc.14):dsh-permission-guard 的 policy 三档(follow 跟随会话官方预设 / strict 白名单 / read-only),设置页与会话左下角 chip 双入口切换。
  • 性能(rc.15):会话后台预热(长会话冷开 ~2s → ~0.2s)+ 聊天流 content-visibility(长历史滚动不卡顿)。
  • 多实例保护:启动时检测已有 dsh 实例(任意端口),默认拒绝共存以防会话数据损坏;确需共存可在设置中显式开启(附危险警告)。
  • 右侧栏:概览(Token 统计)、文件树、Git 变更三页;收起后保留窄栏快捷按钮。
  • 对话定位条(rail):中栏左缘竖排小横条 minimap(每段对话一条,点击跳转;位置按段序近似,数据源官方 ConversationSnapshot turnTimings,只读)。时间窗真实 kind 预览(修 #35):hover 预览按 turnTimings 时间窗 [startTime, endTime) + node.turn 对齐真实节点 kind(user/steering/context/assistant/command/compaction)提取开场文本,替换原 turn-tail 死代码(命令轮次回退助手回复)。自适应配色:采样 rail 下方的实际背景(皮肤表面色 × 背景图 cover 数学混合),按采样色相派生 tick 深/浅色调(WCAG 对比度择优,≥7:1)与激活态强调色——每套皮肤/背景图得到自己的 rail 色板,非固定两色;tick 附 1px 对比描边兜底。
  • 置顶会话:会话行 hover 置顶(同名会话安全跳过、不误标);置顶区常驻列表顶部(可独立滚动);持久化于 $DSH_HOME/dsh-hub/pins.json(localStorage 兜底)。注:多标签/多实例下 pins 为整体替换语义(最后写者胜);同标签内 PUT 依赖 fetch 顺序保序。
  • 会话完成通知 + 事件提示音:
    • 提示音(独立开关):用户提交问题(开始音)、任务正常完成(完成音)、AI 请求批准(需要你)、任务出错(出错音)——四段原创合成音效(scripts/synthesize-sounds.mjs 生成,无第三方素材),窗口隐藏到托盘时依然可闻。
    • Toast:任务完成/出错时弹 Windows 原生通知(notify-rust 直弹,wait_for_action 点击回窗),30s 冷却。点击跳会话:点击 toast 回窗口并跳到对应会话(mg:shell-command focus-session 事件 + __mgShellReady 300ms×20 重试)。聚焦会话策略:正在查看的会话完成时只响提示音不弹 Toast(结果就在眼前);后台会话完成或窗口隐藏时仍弹 Toast。
  • 独立进程身份:桌面壳为单一 Tauri 原生应用(cargo tauri build NSIS 安装),任务管理器显示 DeepSeek Harness Hub 图标与名称;WebView2 时代 dsh-hub.exe / dsh-hub-guard.exe(node.exe 复制 + rcedit 打补丁)机制已删除。
  • 启动门控:仅当通过本项目启动时注入桌面壳与插件页面;普通 dsh web 完全不受影响。

Showing the opening section of the README — the full document lives in the repository以上为 README 开头摘要,完整文档在仓库内 · View the full README on GitHub →在 GitHub 查看完整 README →

← 上一个 Prev captain-ai 下一个 Next everything-codex →