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

零依赖桌面客户端 xccElephant/deepseek-harness-desktop

DeepSeek Harnessv0.4.1
xccElephant6 天前有提交已提供中文文档扫描:含敏感能力

双击即用,内置运行时并托管后端进程,免装 Node

29.3/100
综合分
0
GitHub 星标
—
npm 周下载
—/5
用户评分

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

自动兼容检查未通过:engines.node 要求 >=24.0.0,不满足 Node 22.19.0;仓库 package.json 标记 private,未发布到 npm,需从源码安装。以下命令仍可尝试,但可能失败。
安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add xccElephant/deepseek-harness-desktop
该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:已验证
是什么[目录]—
dsh 原生插件 · ui
暂无时间戳·判据 →
装得上吗[实装验证]✓
本站已真实安装成功
非静态推断
L4 · 真实安装等级说明 →
数据截至 2026/09/25·判据 →
安全吗[自动扫描]—
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
数据截至 2026/11/04·判据 →
还在维护吗[仓库]✓
活跃:最近一次提交在 6 天前
暂无时间戳·判据 →
图例:✓ 通过! 需注意— 未判定 / 无数据· 「未判定」= 本站尚无数据,不代表插件有问题
档位由哪些信号合成

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

验证判据与等级说明 →

可信度证据

安装兼容性检查需源码安装
要求 Node:>=24.0.0(dsh 本身要求 Node ≥ 22.19)

engines.node 要求 >=24.0.0,不满足 Node 22.19.0;仓库 package.json 标记 private,未发布到 npm,需从源码安装

展开查看检查明细 ↓

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

✓npm 包deepseek-harness-desktop @ 0.4.1
✗Node 引擎要求 >=24.0.0 · 基线 Node 22.19 不满足
✓dsh CLI 依赖未声明 dsh 版本约束
✓入口文件main/exports/bin 已声明

源码安装时若 pnpm 拦截 prepare 脚本,按其提示在 pnpm-workspace.yaml 的 allowBuilds 中放行后重跑。

验证方式:npm registry 存在性 + package.json 静态校验 · 最后检查 2026/9/22 19:21:08

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

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

可执行外部命令读写/删除本地文件写入剪贴板(不计风险)发起外部网络请求
查看扫描证据(共 20 处,展示前 20 条)
  • 执行外部命令来自配置/变量
    src/main/backend.ts:117
    child = spawn(runtime.path, [entry, ...args], {
  • 执行外部命令固定命令
    src/main/backend.ts:181
    spawnSync('taskkill', ['/pid', String(child.pid), '/T', '/F'], { windowsHide: true })
  • 写入剪贴板
    src/main/ipc.ts:51
    clipboard.writeText(report)
  • 写入本地文件
    src/main/logger.ts:20
    mkdirSync(dir, { recursive: true })
  • 写入本地文件
    src/main/logger.ts:23
    if (statSync(logPath).size > MAX_BYTES) renameSync(logPath, `${logPath}.1`)
  • 读取本地文件
    src/main/logger.ts:23
    if (statSync(logPath).size > MAX_BYTES) renameSync(logPath, `${logPath}.1`)
  • 写入本地文件
    src/main/logger.ts:27
    stream = createWriteStream(logPath, { flags: 'a' })
  • 写入剪贴板
    src/main/menu.ts:138
    if (url !== null) clipboard.writeText(url)
  • 写入剪贴板
    src/main/menu.ts:226
    if (result.response === 1) clipboard.writeText(detail)
  • 执行外部命令来自配置/变量
    src/main/node-runtime.ts:82
    const probe = spawnSync(binary, ['--version'], {
  • 读取本地文件
    src/main/paths.ts:23
    return existsSync(binary) ? binary : null
  • 读取本地文件
    src/main/paths.ts:37
    return existsSync(entry) ? entry : null
  • 读取本地文件
    src/main/paths.ts:50
    if (!existsSync(manifest)) return null
  • 读取本地文件
    src/main/paths.ts:52
    const parsed = JSON.parse(readFileSync(manifest, 'utf8')) as { version?: unknown }
  • 读取本地文件
    src/main/settings.ts:55
    const parsed = JSON.parse(readFileSync(settingsFile(), 'utf8')) as Partial<DesktopSettings>
  • 写入本地文件
    src/main/settings.ts:96
    mkdirSync(path.dirname(settingsFile()), { recursive: true })
  • 写入本地文件
    src/main/settings.ts:97
    writeFileSync(settingsFile(), `${JSON.stringify(cache, null, 2)}\n`, 'utf8')
  • 执行外部命令来自配置/变量
    src/main/shell-path.ts:48
    const probe = spawnSync(shell, probeArgs(), {
  • 执行外部命令来自配置/变量
    src/main/shell-path.ts:64
    execFile(
  • 发起网络请求
    src/main/updates.ts:133
    return fetch(url, {
扫描于 2026/11/4(1 天前) · 范围 入口闭包 + 全包扫描 · 来源 GitHub 仓库

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

社区实装还没有人打卡 · 装过的第一个就是你
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个

功能亮点

  • 内置Node运行时
  • 托管后端进程
  • 原生窗口

非官方 DeepSeek Harness(dsh)桌面应用:内置 Node 运行时、受监管后端、原生窗口,零前置依赖。

README

由 DeepSeek 最新模型翻译生成
DeepSeek Harness Desktop DeepSeek Harness(dsh)的桌面版。 Harness 是 DeepSeek 于 2026-08-13 开源的 Agent 运行时,官方提供的是一个启动本地 Web UI 的命令行工具;本仓库把它包装成一个从 Dock 直接双击启动、无需任何前置依赖的桌面应用。 非官方项目。 与 DeepSeek 无隶属关系,未获其背书或支持,详见 NOTICE.md。 桌面应用中运行的 Harness 界面 相比命令行多了什么 官方的 npx @deepseek-ai/dsh web 需要 Node.js 22.19+、一个常开的终端窗口和一个浏览器标签页。 这个应用把这三样都去掉了: - 零前置依赖。 安装包内置了固定版本的 Node 运行时和固定版本的 Harness,用户不需要装 Node。 - 真正的应用窗口。 原生菜单与快捷键、记忆窗口位置与缩放、多窗口共用一个后端,也不用再和浏览器争抢键盘快捷键。 - 受管的后端进程。 dsh web 随应用启动,异常退出后自动重启,退出应用时连它自己派生的子进程(shell、language server)一并清理,不留孤儿进程。 - Agent 能拿到真正的 PATH。
展开完整文档(README 剩余 1 节)
DeepSeek Harness Desktop

DeepSeek Harness(dsh)的桌面版。
Harness 是 DeepSeek 于 2026-08-13 开源的 Agent 运行时,官方提供的是一个启动本地 Web UI 的命令行工具;本仓库把它包装成一个从 Dock 直接双击启动、无需任何前置依赖的桌面应用。

非官方项目。 与 DeepSeek 无隶属关系,未获其背书或支持,详见 NOTICE.md。

桌面应用中运行的 Harness 界面

相比命令行多了什么

官方的 npx @deepseek-ai/dsh web 需要 Node.js 22.19+、一个常开的终端窗口和一个浏览器标签页。
这个应用把这三样都去掉了:

- 零前置依赖。 安装包内置了固定版本的 Node 运行时和固定版本的 Harness,用户不需要装 Node。
- 真正的应用窗口。 原生菜单与快捷键、记忆窗口位置与缩放、多窗口共用一个后端,也不用再和浏览器争抢键盘快捷键。
- 受管的后端进程。 dsh web 随应用启动,异常退出后自动重启,退出应用时连它自己派生的子进程(shell、language server)一并清理,不留孤儿进程。
- Agent 能拿到真正的 PATH。 GUI 进程继承的是启动器环境而非登录 shell 环境,所以从桌面启动的 Agent 通常会丢掉 git、rg 以及所有通过 Homebrew / nvm / asdf 安装的工具链。本应用会读取一次登录 shell 的 PATH 并缓存,让 Agent 的工具集和你的终端一致。
- 看得懂的失败提示。 后端起不来时,窗口里会直接给出原因、后端自身的输出、重启按钮和一键复制诊断信息,而不是一片空白。

后端启动失败时的状态界面

安装

从 Releases 下载:

| 平台 | 文件 |
| macOS(Apple Silicon) | …-arm64.dmg |
| macOS(Intel) | …-x64.dmg |
| Windows x64 | …-setup.exe |
| Linux x64 | …-x86_64.AppImage 或 …-amd64.deb |

构建产物未使用开发者证书签名,首次启动系统会拦截:

- macOS —— 应用做了 ad-hoc 签名但未经过公证,需要先清除下载隔离属性才能打开。
请先把它拖到「应用程序」,然后在「系统设置 → 隐私与安全性」中选择「仍要打开」,或执行:

xattr -dr com.apple.quarantine "/Applications/DeepSeek Harness Desktop.app"

请在第一次尝试打开之前就执行;macOS 会缓存拦截结果,事后再清除属性可能需要重新拷贝一份应用。

- Windows —— SmartScreen 提示「Windows 已保护你的电脑」,选择「更多信息」→「仍要运行」。

应用不附带任何 API 凭据。首次运行时 Harness 会像命令行版一样引导你填入模型提供商的 Key。

工作原理

Electron 主进程 ├─ 派生: <内置 node> <内置 dsh>/lib/bin.js web --port 0 │ └─ 监听成功后打印 "dsh web: http://127.0.0.1:<port>" └─ BrowserWindow 加载该 URL

有三个设计决策值得说明,它们是这套方案稳定而非取巧的原因:

后端是独立进程,而不是加载进 Electron 的代码。 Harness 依赖针对标准 Node ABI 编译的原生模块(node-pty、sharp)。用普通 Node 二进制运行它们,无需为 Electron ABI 重新编译,后端崩溃也不会把窗口一起带走。

窗口加载 http://127.0.0.1,而不是 file:// 加 IPC 桥。 Harness 把特权能力——设置、凭据、原生目录选择器、用系统应用打开路径——都限制在「回环地址 + 同源」的信任边界内。直接使用真实来源即可满足该边界,桌面版行为与浏览器会话完全一致,也不需要维护任何桥接层。

端口用 0。 由操作系统分配端口,后端把它打印出来,外壳从那一行读取。既不需要探测空闲端口,也不会和你已经在终端里跑着的 dsh 撞端口。

缓存就绪后,从启动到界面渲染约 1.5 秒。

文件位置

| 内容 | 路径 |
| 外壳日志 | <userData>/logs/desktop.log(菜单 File → Open Log Folder) |
| 外壳设置 | <userData>/settings.json |
| Harness 数据、配置、会话 | ~/.dsh(菜单 File → Open Harness Home) |

<userData> 在 macOS 为 ~/Library/Application Support/DeepSeek Harness Desktop, Windows 为 %APPDATA%\DeepSeek Harness Desktop,Linux 为 ~/.config/DeepSeek Harness Desktop。

Agent 本身的一切——模型提供商、权限、Skill、MCP 服务——都在 Harness 界面里配置并存放于 ~/.dsh,与本仓库无关。外壳只管窗口状态和两个后端参数:

{
"port": 0,
"extraArgs": []
}

port 用于固定后端端口(不再由系统分配),extraArgs 会原样追加到 dsh web 后面。

从源码构建

需要 Node.js 24(版本固定在 package.json 的 dshDesktop.nodeVersion)以及 C++ 工具链——安装 Harness 载荷时会编译 node-pty。

git clone https://github.com/xccElephant/deepseek-harness-desktop.git
cd deepseek-harness-desktop
npm ci
npm run prepare:payload # 下载 Node 运行时并安装 Harness(约 2 分钟)
npm run dev # 构建并启动
npm run dist # 为当前平台构建安装包,输出到 release/

prepare:payload 会用 SHASUMS256.txt 校验下载的 Node,并跳过已是最新的步骤;给任一 prepare 脚本传 --force 可强制重做。

安装包必须在对应平台的 runner 上原生构建,不能交叉编译:内置的 Node 二进制和 Harness 的原生模块都是分平台分架构的。发布工作流覆盖 macOS arm64、 macOS x64、Windows x64 与 Linux x64。

升级内置的 Harness

上游处于 Developer Preview 阶段并明确会有破坏兼容性的变更,所以版本是固定的而非浮动的:

// package.json
"dshDesktop": {
"dshVersion": "0.1.0-rc.6",
"nodeVersion": "24.19.0"
}

改掉 dshVersion,执行 npm run prepare:dsh,确认应用仍能正常进入界面即可。本仓库不依赖上游任何内部实现——唯一的耦合是命令行调用方式(dsh web --port)以及服务监听后打印的那一行。

这件事不用盯着:upstream-watch 每天比对 npm 上的 latest,发现新版就提一个只改这一个字段的 PR,并对该分支启动一次完整构建——四个平台打包,然后真装真启 Linux 与 Windows 版本。合并与发布仍是手动的:上游还是开发者预览版,随时可能改掉上面那两处耦合,而这种回归应该由人看一眼再决定。

更新

应用启动后会查一次最新发布,有新版才提示,可以选择"这个版本不再提醒"。菜单 Help → Check for Updates… 可随时手动检查。

查询先问 releases API,问不到再退回 /releases/latest 的重定向——两者单独都不够用:API 权威,但匿名配额是每个 IP 每小时 60 次,共享出口后面很容易已经用光;重定向没有配额,但它走缓存,实测在刚发布后的几分钟里会落后于真实的最新版。两条都失败就静默跳过,不会影响启动。

没有自动下载安装:在没有开发者证书的前提下,让应用自己替换自己的二进制,等于把未经校验的下载内容直接执行。所以它只负责告诉你,装不装由你点。

已知限制

- 没有开发者证书签名与公证(macOS 仅做 ad-hoc 签名),因此有上面提到的首次启动拦截。
- 不会自动安装更新,只会提示;见上文「更新」。
- 上游仍是开发者预览版。 破坏性变更频繁。自动检查会真装真启 Linux 与 Windows 版本, macOS 版本仍需发布前手动启动确认。
- 每台机器一个后端。 重复启动会聚焦已有窗口,而不是对同一个 ~/.dsh 再起一个后端。

许可

本仓库自身代码为 MIT。内置载荷各自遵循其原有许可,详见 NOTICE.md。
预览分享卡片长什么样 ↓xccElephant/deepseek-harness-desktop
分享 · DeepSeek Harness Hub
xccElephant/deepseek-harness-desktop

双击即用,内置运行时并托管后端进程,免装 Node

这个插件是你维护的吗?
作者本人可认领并核对本条目;认领通过后,详情页会显示「作者已认领」标记。
认领条目 →
回到顶部