为 DSH Web 界面在官方工作区胶囊旁加 git 分支选择器与 Git 图谱面板,分支切换在 host 进程真实执行,并加 loopback + 工作区门卫。
- 语言
- TypeScript
- License
- BSD-3-Clause
- 分支
- main
安装
$ dsh plugin --profile web add github:ningbainb/deepseek-harness-desktop/packages/dsh-git-graph在终端中运行以上命令,通过 dsh CLI 安装此插件。可在右上角切换 Profile。 第一次用 dsh?看这篇新手教程
一句话定位
为 DeepSeek Harness Web 界面在官方工作区胶囊旁加一个 git 分支选择器,并在弹层里提供「创建并检出新分支」与「Git 图谱」面板,分支切换在 host 进程真实执行,浏览器只负责展示与点选。
核心能力
- 在会话输入卡正上方的 chip 上显示当前分支名(detached HEAD 显示「分离 HEAD」),非 git 工作区自动隐藏,避免出现死控件
- 打开弹层后可搜索本地分支、查看当前分支的勾选标记,并在底部看到「未提交的更改」摘要(dirty 文件数)
- 切换分支前自动跑守卫检查(未解决冲突、进行中的合并/rebase/cherry-pick/revert/bisect、目标分支被其他 worktree 检出),守卫命中时切换会被拒绝并给出可读的中英错误提示,不会破坏磁盘工作树
- 支持「创建并检出新分支」,先在前端镜像
git check-ref-format --branch的命名规则即时反馈,再走 host 端权威校验和重名检查,最后执行git switch -c <name>,成功后自动刷新 chip 与图谱 - 提供只读 Git 图谱弹层:以拓扑顺序展示分支/标签/远端的 commit 列表,含等宽字体的泳道字符、相对时间(刚刚 / X 分钟前 / X 小时前 / X 天前)、ref 标签,分页加载(每页 100 条,初始 200 条)
- host 端通过
/git/eventsSSE 推送外部 git 状态变化(订阅时每 30 秒轮询一次,单次探测 15 秒超时);chip 还会在 window focus 时刷新(5 秒节流),保证另开终端切换分支后 UI 能跟上
技术实现
- 语言: TypeScript(host 与 browser 半区共享 src/core 纯逻辑;TypeScript 模块化构建,css-modules 走 lightningcss)
- 关键依赖:
@deepseek-ai/dsh-client-ui-conversation、@deepseek-ai/dsh-client-ui-slots、@deepseek-ai/dsh-client-runtime、@deepseek-ai/dsh-client-locale(peer 注入面,皆 ^0.1.0-rc.7,package.json:60-70);host 侧依赖@deepseek-ai/dsh-host-webserver、@deepseek-ai/dsh-subprocess、@deepseek-ai/dsh-workspace(package.json:61-70);@deepseek-ai/cordis4.x 做 function plugin 装配 - 架构模式: 双面 cordis 插件。host half(src/index.ts)通过
inject = ['webServer','subprocess','workspaceRegistry']挂载 GitService 与/git/*路由;client half(src/client/index.ts)通过inject = ['slots','sessions','connection','locale','conversation']注入 git verbs(repoStatus / branches / switchBranch / createBranch / graph / subscribeChanges)。激活走"dsh": { "bundle": { "patch": "./cordis.patch.yml" } }把ui-git-graphrow 注入 profile(cordis.patch.yml:1-12) - 入口文件:
packages/dsh-git-graph/src/index.ts(host 半区 apply 入口)+packages/dsh-git-graph/src/client/index.ts(browser 半区 apply 入口)。git 命令 argv 集中在src/core/git-command.ts,纯分支名校验 mirror 在同一文件
适用场景
当你在 DeepSeek Harness Web 里处理多个 git 分支、经常需要从对话界面里直接切到别的分支去看历史/对比、又不想打开终端;同时你希望切换前有冲突保护,避免「切过去发现还有未解决的合并冲突」导致工作树脏掉。也适合作为只读 Git 图谱的轻量替代——你不必离开 dsh Web 就能看到全分支/标签/远端的拓扑结构与 ref 标签。
前置依赖与兼容性
| 依赖 | 最低版本 | 说明 |
|---|---|---|
| DeepSeek Harness(web profile) | ^0.1.0-rc.7 | peerDependencies 全锁此版本(package.json:60-70);bundled patch 走 cordis.patch.yml(cordis.patch.yml:1-12) |
| Node.js | ^22.19.0 || >=24.0.0 | package.json:7-9 engines.node |
| 平台 | macOS / Windows / Linux | 跨平台,无原生模块(package.json 仅声明 react ^18.2.0 peer,无 node-gyp 依赖) |
| 系统 git 可执行 | 必需 | host 半区通过 ctx.subprocess.spawn(['git',...])(Windows 强制 git.exe)真实执行 git 命令(src/host/git-service.ts:53-94);无 git 则所有操作以 internal 错误返回 |
| 已注册的工作区 | 必需 | /git/* 路径门卫:请求的 path 必须 realpath 后命中 ctx.workspaceRegistry 里的某个工作区(src/index.ts:35-48);浏览器对未注册目录发起请求会得到 workspace-unknown |
| Loopback 客户端 | 必需 | /git/* 与 /git/events SSE 都拒绝非 loopback socket/Host 请求(src/host/routes.ts:83-103),LAN 暴露的 dsh web 对外网客户端一律 403 |
| DSH_HOME 环境变量 | 可选 | 未设置时回退到 ~/.dsh,host 半区把 worktree 目录放在 $DSH_HOME/worktrees/<repoHash>/<runId> 下(src/index.ts:82 / src/host/worktree-service.ts:212) |
安装方式
dsh plugin --profile web add github:ningbainb/deepseek-harness-desktop/packages/dsh-git-graph
配置项
本插件无需额外配置。所有守卫、SSE 节奏、上下文挂载超时都在代码里固定写死,不开放用户级 schema。
| 配置 | 类型 | 说明 | 默认值 |
|---|---|---|---|
DSH_HOME | 环境变量(可选) | 决定 worktree 子目录的存放位置;不设时使用 ~/.dsh(src/index.ts:82) | ~/.dsh |
源码里其他可调参数(仅供二次开发参考,运行时不通过插件配置):
CONTEXT_FALLBACK_MS = 2000:等待conversation.input.selector.context槽位声明的超时,超时后 chip 回退到conversation.input.dock(src/client/index.ts:108)POLL_INTERVAL_MS = 30_000:host SSE 在有订阅者时轮询 workspace 状态的时间间隔(src/host/routes.ts:45)STATUS_TIMEOUT_MS = 15_000:单次状态探测的硬超时,避免挂死的 git 子进程卡住推送流(src/host/routes.ts:57)FOCUS_REFRESH_MIN_MS = 5_000:window focus 触发的 chip 重新拉取节流(src/client/chips/BranchChip.tsx:37)
常见问题
Q: 这个插件会改动 DeepSeek Harness 官方源码吗?
A: 不会。AGENTS.md:5-6 明确「主仓(sibling checkout)零改动;本仓是自包含的 cordis 插件包」;所有类型来源是 node_modules 里的 @deepseek-ai/* peerDependencies(package.json:60-70),不引入对 DSH 源码 checkout 的 tsconfig 引用。卸载即回到官方原生行为。
Q: 分支切换是真实的 git switch 吗?会影响其他会话吗?
A: 是真实的。src/host/git-service.ts:176-197 调用 git switch --no-guess <branch> 跑在 repoRoot 真实工作树上,并且会作用于该 workspace 下所有会话(不是单会话的 cwd 覆盖)。这意味着如果你在一个会话里切了分支,另一个会话来打开同一个工作区时也已经是新分支了;这是「工作区级」语义,不是「会话级」。
Q: 浏览器能不能借这个接口对任意目录跑 git?
A: 不能。src/index.ts:35-48 的 workspaceGate 把请求路径 realpath 后必须命中 ctx.workspaceRegistry 里某个已注册路径,否则返回 workspace-unknown;routes.ts:83-103 还会拒绝所有非 loopback 客户端(LAN 暴露的 dsh web 对外部客户端直接 403),/git/* 还强制 POST + application/json(routes.ts:215-229)。Worktree 路由更严:只接受不透明 ID,路径/base ref/argv 一律不接(README.md:74 / worktree-routes.ts:46-48)。
Q: 什么时候分支 chip 会隐藏?
A: 当它查不到 cwd(sessions list 里该 sessionId 的 cwd 为空)或者 status 返回 null(非 git 工作区)时整个 chip 不渲染。src/client/chips/BranchChip.tsx:253 写「repo === undefined || repo === null return null」;这种隐藏优于禁用,避免死控件,且工作区变仓库后 chip 会在下一次刷新时自动出现。
Q: 切换失败会给出什么样的错误?
A: 错误分两大类:守卫级(conflicts-present、operation-in-progress、branch-in-other-worktree、invalid-branch-name、branch-already-exists、target-branch-not-found、workspace-unknown)和切换时 Git 抛出的覆盖冲突(tracked/untracked-changes-would-be-overwritten,附前 2 个文件路径 + 溢出计数)。src/host/git-service.ts:294-311 的 guardBlock 跑前一种,src/core/git-command.ts:178-196 的 classifySwitchFailure 把 stderr 归到稳定 code;客户端在 src/client/chips/error-copy.ts:27-50 把 code 翻成中英双语可读句子。
Q: 跟官方分支管理有冲突吗?会被重复工作区选择器覆盖吗?
A: 工作区选择不在本插件里——官方工作区胶囊是唯一入口(src/client/index.ts:23-24 / ADR-001:36)。插件只补「分支」和「图谱」两个动作,对应 UI 上与官方胶囊并排的 28px 透明 chip。分支状态不会写进 session log,也不会进入模型可见面(src/index.ts:6-8),所以不会影响模型侧的对话历史。
Q: 需要 Git 在系统 PATH 里吗?
A: 需要。Host 侧的 GitService 用 subprocess 服务直接 spawn git(macOS/Linux)或 git.exe(Windows,src/host/git-service.ts:53-55 强制走原生可执行名避免 .cmd shim 解析问题);运行机器必须装好 git,否则所有 /git/* 接口都会以 internal 错误返回。Worktree 操作走同一个 spawn seam。
Q: 怎么卸载?
A: dsh plugin --profile web remove @linxin666/dsh-client-ui-git-graph(README.md:67)。包名是 npm 发布的 @linxin666/dsh-client-ui-git-graph,激活插件时挂的是 ui-git-graph 这个 cordis row 名(cordis.patch.yml:11)。卸载后下次 dsh web 启动就不再注册任何 /git/* 路由与浏览器 chip。
上手难度
入门 — 安装一行命令,重启 dsh web 即生效;无需配置;用户只需点击 chip、选择分支、查看错误提示。所有高级行为(守卫、SSE 节奏、loopback 限制)都由插件内置。
已知问题与限制
- 仅支持本地分支:分支列表只走
git for-each-ref refs/heads(src/host/git-service.ts:151 / src/core/git-command.ts:19-23),不会列出远端分支。如果你在做git fetch后想看 origin/* 分支,需要在终端 fetch 后让 chip 重新拉取(挂载/弹层打开/focus 都会触发) - 切换窗口受工作区状态强约束:未解决合并冲突、进行中的 merge/rebase/cherry-pick/revert/bisect、目标分支被其他 worktree 检出,这三种情况都会被守卫拦下(src/host/git-service.ts:294-311),你需要先去终端完成或 abort 这些操作
- LAN 暴露时不服务 /git/:所有 /git/ 接口强制 loopback + Host 校验(src/host/routes.ts:83-103),如果你把 dsh web 反向代理到公网,对应接口会返回 403;插件不打算为外部访问放宽这个限制(ADR-001:38)
- Worktree 功能只在 host half 暴露(src/index.ts:62-87),浏览器侧 chip 不带 worktree 入口;这部分由桌面端 Task Board 这类插件另行消费 /git-worktree/* 路由
- Worktree 子目录固定在
$DSH_HOME/worktrees/<repoHash>/<runId>下(src/host/worktree-service.ts:212 / src/index.ts:82),且路径逃逸会被 TypeError 阻止(src/host/worktree-service.ts:214);如果你移动了 DSH_HOME,需要保证旧路径下的 worktree 已被清理或主动移除,否则会出现 orphan 记录 - 浏览器 chip 与官方工作区胶囊是「会话级 vs workspace 级」分离的:会话切换不会清空 chip,但切到非 git cwd 时 chip 会自动隐藏(src/client/chips/BranchChip.tsx:253)
- package.json:7-9 把 Node 锁到
^22.19.0 || >=24.0.0,更早的 Node 不在测试矩阵内
中文 | English

DeepSeek Harness Desktop 是社区维护的开源 Windows AI 编程桌面客户端:它把完整的 DeepSeek Harness Web Surface、官方 DSH 本地主机、插件、Skills、主题和自动更新打包进一个 Windows x64 安装器。支持 Windows 10/11,免费采用 BSD-3-Clause 许可证,安装后无需另配 Node.js。
社区用户交流群
QQ 群:1105158177 · 点击一键加入 QQ 群
Windows 桌面版
DeepSeek Harness Desktop 将原版 DSH Web 界面完整装进 Windows EXE:不是重写页面,而是用安全的 Electron 窗口启动官方 @deepseek-ai/dsh 本地主机,再原样加载本仓库的全部插件与皮肤。
浏览产品介绍 · 下载 Windows x64 安装器 · 桌面版技术说明 · Task Board v3 说明 · 发布与交接工作流 · 更新日志
如果这个项目对你有帮助,欢迎在 GitHub 仓库 点 Star,帮助更多桌面版用户发现它。
最新版:2.7.0
desktop-v2.7.0 是当前稳定版:查看完整发布说明 · 直接下载安装包 · 下载 SHA-256 校验文件
| 版本 | 主要更新 |
|---|---|
| 2.7.0 | 修复 Windows 8% Runtime 启动故障并升级到 DSH rc.7;新增托盘后台自动化、Host 持久任务调度、插件兼容声明/锁、browser-safe Desktop SDK、安全工作区外部打开和 Candidate Matrix。 |
| 2.6.0 | Task Board v3 引入 Project、Task Run、Evidence 与 Git Worktree 审核流;Runtime Provider 缺少可选能力时显式回退 shared-workspace,并加入 Candidate 执行兼容夹具与有界匿名产品统计。 |
| 2.5.0 | 新增 Runtime Adapter 与上游兼容防线、安全 .dshpreset 和 Web Profile 迁移、原子插件批量事务、严格 Deep Link/文件关联与结构化通知。 |
| 2.4.0 | 新增可靠更新关停回执 v2、主界面/扩展坞权限拆分、Desktop Contract v1,以及 Task Board Host 文件存储 v2。 |
| 2.3.0 | 新增只出现一次的 GitHub Star 动画引导与“加入社群”反馈入口;安装预检可识别外部 PowerShell/CMD/Node 宿主、EncodedCommand 与 Windows 短路径,兼容 0.1.9 直接升级,并通过独立 profile 与端口回退和官方 Web 端共存。 |
| 2.2.0 | 隐藏 Windows 终端及其后代窗口;升级时自动清理旧应用和插件后台、迁移可识别旧依赖与旧安全模式误判;重启复用端口,安全模式支持可见提示与一键恢复。 |
| 2.1.0 | 新增国内更新镜像自动测速与回退、插件快照/自动隔离/安全模式三层容灾;统一皮肤持久化,修复升级文件占用、隐藏命令框、中文工作区重启循环,并从工具菜单直接打开扩展坞。 |
| 2.0.0 | 修复取消后排队消息滞留与运行时损坏循环;新增 Skills 菜单、模型 API 有界重试、思考区吸顶和 SSH 实时监控;统一 Harness 原生视觉并完善粒子鲸鱼启动页。 |
| 0.1.9 | 修复对话气泡与整段内容复制;更新改为后台下载并加入毛玻璃更新面板与粒子鲸鱼启动页;新增社区插件适配检测、离线切换、失败回滚与性能保护。 |
| 0.1.8 | 内置 ChatGPT OAuth 与 OpenAI Codex 模型、模型推理强度滑块、帮助菜单社群与建议入口;默认只保留 dshmarket,并修复空补丁、旧市场和皮肤链接迁移。 |
| 0.1.7 | 全新深海启动界面与状态驱动进度;32px macOS 风格磨砂玻璃窗口栏;收紧大文件预览内存、Git 轮询和 SSH 传输边界,并提升首次安装后的冷启动容错与发布门禁。 |
| 0.1.6 | 内置腾讯官方 QQ Bot 与扫码 Connector;在扩展坞完成二维码绑定、刷新、取消、重新绑定和解绑,QQ 私聊与群聊可直接接入桌面版 Harness。AppSecret 使用 Windows 凭据保护加密,只注入 DSH 子进程。 |
| 0.1.5 | 原生标题栏跟随亮色/暗色主题;全屏弹窗避开标题栏安全区;修复安装版皮肤发现与切换,并内置 dshmarket 和 dsh-plugin-hub。 |
| 0.1.4 | 桌宠迁移到全局 Shell Overlay,首页和设置页均可见;恢复五张 Web UI 插件配置卡;皮肤中心完整展示安装版随附的九套皮肤。 |
| 0.1.3 | 加入稳定版 GitHub Release 更新检查、双语更新说明、用户确认下载、任务栏进度和二次确认安装。 |
2.7.0 功能亮点
- 可靠 Windows 启动:移除 PowerShell 5.1
-WindowStyle Hidden与 Electron Node 模式的冲突,隐藏窗口仍由spawn的windowsHide处理;空旧补丁、状态订阅竞态和 IPC 错误不会再把启动页永久留在 8%。 - 验证过的 Runtime 组合:内置
@deepseek-ai/dsh0.1.0-rc.7、dshmarket1.15.0、Web UI 聚合0.2.3、兼容 rc.7 的 Codex Connect 与dsh-live-stats0.1.20,Stable 继续精确锁定而非追随latest。 - 托盘与后台自动化需显式选择:默认关闭仍会退出。选择“最小化到托盘并启用后台自动化”后,关闭主窗口才保留 Runtime 和到期任务;显式退出、更新、安全模式和崩溃路径一律完整停止。
- Host 持久任务调度:Task Board 保存时区、cron 槽位、租约、misfire/running 策略和确定性运行键;启用后台自动化时通过真实 DSH Session 执行并回写 Task Run,Host 不可用时仍回退浏览器调度。
- 可审计的扩展边界:扩展坞校验
dsh.compatibility的版本、Desktop API、能力、Surface 与运行时证据,并在 profile 写入desktop-plugins.lock.json。browser-safe SDK 不导入 Electron 或私有 DSH 模块;预览的外部打开仅传工作区根和相对路径,Host 验证后才交给系统。 - Candidate Matrix:候选 DSH 在临时 worktree 中收集矩阵、Stable 支持和离线社区插件质量证据;候选永远不能自动改写 Stable 依赖、lockfile、更新元数据或发布。
2.6.0 功能亮点
- Task Board v3:任务可关联 Project,明确选择 shared-workspace 或 Git Worktree;旧账本复制迁移到 Host-owned v3,原 v2 文件保留为备份。
- 可审阅执行结果:每次执行生成紧凑 Task Run 与派生 Evidence,展示文件、增删统计、有限 diff 预览、Session/运行入口和 Provider 能力证据,不保存完整会话或 Secret。
- 受控 Git Worktree:Host 只接受不透明 id,固定 Worktree 根目录、分支命名、realpath、clean/conflict/operation 预检;Commit、Merge、Keep、Discard 都是明确审核动作,Discard 需要二次确认。
- 安全兼容回退:Stable Provider 仍可只提供生命周期和 Profile 能力;缺少 Worktree 所需能力时记录原因并使用现有 shared-workspace 执行,不伪造隔离状态。
- Candidate 执行门禁:真实临时 Git 仓库夹具验证 Session CWD、生命周期事件、取消与重启恢复,失败只阻断 Candidate,不改 Stable 图或发布元数据。
- 匿名统计边界:官方正式版默认启用仅用于产品改进的有界匿名统计,不提供应用内关闭开关;不收集身份、对话、文件、路径、凭据或日志,不保留原始事件,源码与 Fork 构建不包含官方统计端点。完整范围见 隐私政策。
2.5.0 功能亮点
- Runtime 兼容防线:Adapter v1、直接 import 边界、Known Good、patch registry 与耦合审计共同保护稳定 DSH 图;Candidate Lite 只生成报告,不自动升级 Stable。
- 安全 Desktop Preset:
.dshpresetv1 在主进程检查完整性、路径、压缩比、脚本、Secret、Git URL 与精确版本,Renderer 只获得审阅计划。 - 全环境原子回滚:批量插件、设置、Skills 与任务模板使用一次 Runtime 停止/启动事务;任何包或健康检查失败都会恢复旧环境。
- Web Profile 选择性迁移:迁移前显示可安装、更新、缺失、不兼容、未声明、已满足和 Desktop 管理项;所选插件与可归属的非敏感 Profile 配置在同一事务中应用或回滚。
- 明确后续动作:插件变更后突出显示“刷新”;改变 bundle 图时同时提供“Restart DeepSeek Harness”,Preset 进度完整显示提交或恢复状态。
- 严格系统入口:
dsh://仅允许固定导航路由和安全 ID;.dshpreset双击只打开预览,不把文件路径交给 Renderer,也不会静默安装。 - 结构化通知:Desktop Contract 1.1 校验通知分类、ID、文本与 Deep Link,支持去重、限频、前台抑制和白名单点击路由。
- 稳定版不追 latest:当前 Runtime 继续精确锁定验证版本;Candidate 失败不会影响主分支、lockfile、发布说明或 updater 元数据。
2.5.0 体验与更新改进
- 全页粒子主题:粒子鲸鱼从启动页延伸到主界面,并按普通浏览、输入聚焦、弹窗、减少动态效果和后台状态自动调低密度、透明度与速度;可在「设置 > 插件配置 > 粒子主题」中开关和调整。
- 可调设置窗口:设置面板可拖动、从八个边/角缩放并记住上次位置和尺寸;最小尺寸、响应式布局和屏幕约束可避免内容重叠、溢出或移出可见区域。
- 明确的更新下载路径:GitHub Releases 是唯一默认下载源;更新窗口提供「前往 GitHub 下载」「加入用户群」「稍后更新」。若 GitHub 下载较慢,可加入 QQ 用户群获取同步安装包。
- 覆盖更新不再依赖旧卸载器:安装器会在严格进程与文件锁检查后迁移旧程序并清理精确注册项;即使旧 2.5.0 已带修复标记,也不会再次进入有缺陷的卸载流程。

完整桌面能力
- 排队消息可靠续传:智能体工作时发送的消息继续按 FIFO 顺序排队;取消当前执行后,队列会自动恢复,不丢失、不重复、不乱序。
- 对话栏 Skills 技能库:输入框左下角直接搜索已安装技能,支持最近使用、来源与描述展示、方向键导航、Enter 插入和 Esc 关闭。
- 模型 API 自动恢复:对限流、超时、断网和可恢复服务端错误执行有界退避重试;恢复后继续当前请求,手动取消仍会立即生效。
- SSH 实时监控与安全操作:每三秒刷新 CPU、内存、磁盘、负载、进程与失败服务;经过确认后可终止进程或重启 systemd 服务。
- 长思考随时折叠:思考区展开后,折叠控制会吸附在会话顶部,不必滚回长内容起点。
- 运行时完整性预检:启动前检查关键文件,安装不完整时停止重启循环并给出明确的重新安装提示。
- 更新与安装更可靠:GitHub 官方源优先,发现新版后后台下载,完成后再确认重启安装;GitHub 下载较慢时可从用户群获取同步安装包,退出时完整回收 DSH 子进程。
- Harness 原生视觉统一:标题栏、扩展坞、启动页和主界面使用一致的系统视觉;全页粒子鲸鱼会按交互场景自动安静下来,并尊重减少动态效果设置。
Harness 主界面

2.3.0 桌面界面
| 粒子鲸鱼启动界面 | 插件与技能扩展坞 |
|---|---|
![]() | ![]() |
- 内置 dsh-web-ui 0.1.18 套件,保留任务看板、Git 图谱、右侧面板、SSH、移动端远程、实时统计、宠物,并加入独立的全页粒子主题、图像描述与量身 Agent;
- 内置腾讯官方 QQ Bot,可在扩展坞扫码绑定 QQ 私聊与群聊,无需编辑 YAML 或打开后台终端;
- 内置 ChatGPT OAuth、OpenAI Codex 模型与推理强度滑块,登录使用系统浏览器,凭据保存在本机;
- 独立
desktopprofile,不覆盖既有 DSH 配置,运行时仅监听回环地址; - 内置崩溃恢复、日志脱敏与轮转、窗口状态恢复、严格导航与权限策略;
- 内置 GitHub Release 更新检查,发现新版后在后台下载,完成后再由用户阅读说明并确认重启安装;
- 扩展坞支持社区 DSH bundle 安装/回滚、内置插件市场,以及项目、DSH、Agents 技能发现与安全导入;
- 安装包自带官方 DSH、pnpm 与原生依赖,无需另外安装 Node.js。
桌面版已预装任务看板、Git 图谱、右侧面板、移动端远程、远程连接、鲸鱼娘宠物、全页粒子主题、实时令牌统计、Codex Connect、推理强度滑块、插件市场和皮肤中心。下载安装 EXE 即可使用,不需要另外安装 DSH、Node.js 或执行插件命令。
功能插件
QQ 机器人扫码接入(桌面版 0.1.6)
桌面版内置腾讯官方 @tencent-connect/dsh-qqbot 0.3.0 和 @tencent-connect/qqbot-connector 1.2.0。在扩展坞打开 QQ Bot 卡片即可获取自动刷新的二维码,使用手机 QQ 扫码后,QQ 私聊与群聊便可连接到本机 Harness;同时支持取消、重新绑定和彻底解绑。
未绑定时插件保持禁用,不会让隐藏的后台进程等待终端扫码,也不会拖慢 Web UI 启动。绑定成功后桌面端会自动启用插件并重启 DSH。AppSecret 由 Electron safeStorage 结合 Windows 系统凭据保护加密保存,不会发送到渲染页面、写入日志或明文进入 cordis.patch.yml;运行时只通过子进程环境注入。
Codex 模型与推理强度(桌面版 0.1.8)
桌面版内置 dsh-codex-connect 0.1.0-alpha.4.5,可在设置页通过系统浏览器完成 ChatGPT OAuth,并启用 OpenAI Codex 模型。它不会默认替换当前模型、接管全局搜索或启用远程图片工具;检测到已有 Codex Provider 时会保留现有配置,OAuth 凭据只保存在本机 DSH home。
内置 reasoning-slider 0.0.2,在模型选择器中只展示模型实际支持的推理强度,切换模型时会自动回退到有效档位。顶部帮助菜单同时提供 QQ 群二维码、一键加群与 GitHub 建议入口,所有外链均交由系统浏览器打开。
任务看板
在侧边栏点击「任务看板」进入。任务按五列状态组织:待规划、待办、进行中、已完成、已失败。点击卡片上的「执行」,任务将由真实的 DSH 智能体会话执行,完成后状态自动回写;需要复盘时,可直接跳转到执行会话查看完整过程。
任务支持定时执行:在详情中配置 cron 表达式(如每天 23:00 自动升级 DSH、每周一 09:00 生成周报),页面保持打开时会在到点后自动开工。任务台账存于当前 DSH profile 的 Host 文件,浏览器旧数据在校验迁移后继续保留用于降级。
| 多列看板 | 定时执行 |
|---|---|
![]() | ![]() |
Git 图谱
输入框上方的分支选择器,支持切换分支与查看提交历史;Git 图谱将分支泳道与提交历史可视化,仓库再大也能顺着时间线快速定位变更。

右侧面板
项目会话打开时,聊天区右侧出现「预览」与「文件/变更」两块面板:
- 文件树:浏览工作目录,点击文件即在预览面板打开,整行点击展开文件夹,支持按文件名搜索定位;
- 预览:多标签预览 markdown、HTML、代码、diff、CSV、PDF、Office、图片与文本等格式,支持源码 / 预览切换、分屏编辑与保存;
- 变更(SCM):真实 git 变更面板,支持 stage / unstage / discard;
- 面板宽度可拖拽调整,双击把手复位默认宽度,折叠状态与宽度按项目持久化;
- 11 款皮肤全部适配右侧面板,换肤后面板随之融入主题。

鲸鱼娘宠物
一只常驻界面的鲸鱼娘宠物,会跟随智能体的状态切换动画:思考、等待、工作、庆祝。点击可互动(摸头),投喂小鱼干可提升亲密度,陪伴度从幼鲸一路成长至「深海羁绊」。支持自定义名称、自由拖动位置,也可随时隐藏。
| 陪伴工作 | 互动面板 |
|---|---|
![]() | ![]() |
实时令牌统计
在输入框下方实时显示生成速度(TPS)、LLM 耗时、上下文占用、缓存命中率以及输入 / 输出 token 数,每次生成的用量一目了然。

移动端远程
侧边栏底部的手机图标打开配对面板:扫码配对(或复制链接)后,手机进入独立的移动端界面,远程控制当前 dsh web 工作区——查看与新建会话、收发消息、切换模型与思考强度、调整权限预设,全部与桌面端同步。配对令牌一次性且限时,「停止」可随时吊销所有设备;二维码默认走局域网,也可开启 cloudflared 公网隧道,让手机在任意网络配对。
| 工作区列表 | 会话列表与新建会话 |
|---|---|
![]() | ![]() |
| 聊天(折叠的深度思考与工具调用) | 模型与思考强度选择 |
![]() | ![]() |
远程连接
侧边栏「SSH」入口打开远程运维面板。主机支持密钥 / 密码认证,可从 ~/.ssh/config 一键导入;配置统一存于 ~/.dsh/dsh-ssh.json。对已配置主机可执行真实操作:
- Web 终端:xterm.js 远程终端,实时输出、随窗口自适应;
- 文件传输:SFTP 上传 / 下载,带进度条与远程目录浏览;
- 端口转发:本地隧道直达远程内网服务(数据库、API、管理后台),仅监听 127.0.0.1;
- 集群执行:一条命令并发跑多台主机,按别名 / 环境 / 标签过滤;
- Agent 直连:Agent 与面板共享同一份主机配置,对话中直接说「连一下 xxx 看看状态」即可由智能体执行远程命令。
设置中心
全部插件的开关与参数统一收纳于「设置 > 插件配置」,修改即时生效。桌面版会明确开放移动端远程控制、皮肤中心、实时令牌估算、任务看板、宠物和粒子主题六张配置卡,不会因 DSH Host 的设置命名空间过滤而缺项。设置窗口本身可拖动、从边缘或角落缩放,并会记住上次位置和尺寸;小窗口与高 DPI 下会自动重排和滚动,避免内容重叠或移出屏幕。

插件市场与扩展坞
桌面 profile 只内置 dshmarket 1.3.0 作为默认插件市场。市场安装目标固定为隔离的 desktop profile,支持社区 DSH bundle 的发现、安装、事务回滚和保留升级;运行时重启由桌面宿主统一管理,避免市场自行启动第二个 DSH 进程。项目技能、DSH 技能与 Agents 技能也可在扩展坞中发现并经过安全检查后导入。
皮肤
皮肤中心提供 11 款可选皮肤(含 Harbor 与 QQ2006),均支持先试穿再应用:试穿即时生效、退出完全还原,确认满意后一键应用。

Windows XP(Luna)
还原 Luna 经典界面:蓝色渐变窗口条、绿色「开始」按钮、Bliss 蓝天桌面,全局直角风格。

Minecraft 方块世界
以《我的世界》主界面为灵感:像素全景天空盒在界面后方缓慢旋转,按钮为灰石板样式,输入框为木告示牌样式。

Blue Fantasy 蓝色幻想
鲸鱼插画铺于半透明面板之下,靛蓝色调色板贯穿全局,暗色主题下效果尤为突出。

鲸吟(Whale Song)
深海鲸语女神主题:无文字纯氛围背景画(蓝发女神与鲸群居左、冰蓝星座网格与金色细线点缀、右侧大量留白)垫在半透明面板之下,冰蓝 / 浅青 / 深海军蓝 / 钴蓝冷色体系贯穿全局,暗色变体为深海夜航调。
· 
初音未来(Miku)
电子歌姬主题以青蓝音符、声波状态栏与半透明舞台面板重塑完整界面,同时保持亮色、暗色模式和功能插件可读性。
交易终端(Trading Terminal)
带实时行情的炒股皮肤:顶栏滚动跑马灯(A股 / 港股 / 美股 / 指数 / 加密 / 外汇,红涨绿跌),标题栏行情快签,状态栏展示 A股 / 港股 / 美股交易时段与港美股指数。已安装 dsh-fun-ticker 时跑马灯跟随你的自选列表(同源代理取数),已安装 dsh-longbridge 时指数格渲染长桥券商快照;两个插件都没装也能直接走公共行情源(腾讯 / 币安 / Frankfurter)独立工作,所有路径失败都安全降级为 --。
· 
其余三款:QQ2008 怀旧版(水晶蓝配色与企鹅元素)、同花顺风格(行情元素融入界面)、龙的传人(朱砂龙印主题)。
下载、校验与升级
- 从 GitHub Releases 下载最新的 Windows x64 安装包。
- 运行
DeepSeek-Harness-Desktop-Setup-<版本号>-x64.exe完成安装;DSH、插件、皮肤、pnpm 和原生依赖均已随安装包提供。 - 如需核验文件完整性,请下载同一 Release 中的
SHA256SUMS.txt并比对安装包 SHA-256。
GitHub Releases 是应用内置且默认使用的唯一下载源。如果 GitHub 下载速度较慢,可点击更新窗口的「加入用户群」,通过 QQ 群 1105158177 获取同步提供的最新安装包;应用不会默认启用或宣传第三方镜像为“更快”线路。
应用会检查稳定版 GitHub Release,展示中英双语更新说明,并提供「前往 GitHub 下载」「加入用户群」「稍后更新」。安装仍需明确确认,覆盖升级不会删除既有 DSH_HOME、桌面 profile、社区 bundle、桌宠状态、皮肤配置或已加密的 QQ Bot 凭据。
当前安装包没有商业代码签名,Windows SmartScreen 可能显示“未知发布者”。请只使用本项目 Release 页面提供的安装包;推荐采用默认安装路径,避免过长路径触发传统 Win32 限制。
来源与版权
| 包 | 来源 | 版权 |
|---|---|---|
| dsh-task-board / dsh-git-graph / dsh-aionui-panel / dsh-pet / dsh-particle-theme / dsh-remote-web-ui / dsh-live-stats / dsh-web-ui-settings / dsh-skins / dsh-web-ui-all / skins | 作者 zhu1090093659 个人开发 | BSD-3-Clause(zhu1090093659) |
迁入第三方代码必须保留 LICENSE 与署名;活跃且有上游的第三方优先 fork 或依赖引用,不搬代码。
友情链接
- 本项目积极参与并认可 LINUX DO 社区。










