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

桌面客户端插件市场 huihuisire/harness-hub

DeepSeek Harness
huihuisire77 天前有提交已提供中文文档扫描:含敏感能力

双击即用,逛市场一键装插件并自动激活

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

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

自动兼容检查未通过:要求 dsh 0.1.0-rc.6,而最新版为 0.2.1-rc.5。以下命令仍可尝试,但可能失败。
安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add huihuisire/harness-hub
该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:需留意
是什么
dsh 原生插件 · market
装得上吗
作者未把包发布到 npm,只能用源码安装
插件本身没问题,是分发方式不同
L4 · 真实安装等级说明 →
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
更新放缓:最近一次提交在 77 天前
档位由哪些信号合成

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

验证判据与等级说明 →
社区实装还没有人打卡 · 装过的第一个就是你
安装兼容性检查需源码安装

要求 dsh 0.1.0-rc.6,而最新版为 0.2.1-rc.5

展开查看检查明细 ↓

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

✗npm 包harness-hub(未发布到 npm,仅可源码安装)
✓Node 引擎未声明 engines.node
✗dsh CLI 依赖要求 0.1.0-rc.6 · 最新 0.2.1-rc.5 不兼容
✓入口文件main/exports/bin 已声明

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

验证方式:npm registry 存在性 + package.json 静态校验 · 最后检查 2026/11/4 09:46:25

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

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

可执行外部命令读写/删除本地文件读取剪贴板或密钥环境变量发起外部网络请求
查看扫描证据(共 78 处,展示前 42 条)
  • 写入本地文件
    src/main/main.js:20
    fs.mkdirSync(dir, { recursive: true });
  • 写入本地文件
    src/main/main.js:21
    const stream = fs.createWriteStream(path.join(dir, 'main.log'), { flags: 'a' });
  • 读取本地文件
    src/main/main.js:109
    const text = fs.readFileSync(path.join(paths.dshHome(), 'settings.yaml'), 'utf8');
  • 写入本地文件
    src/main/main.js:321
    fs.mkdirSync(dir, { recursive: true });
  • 写入本地文件
    src/main/main.js:369
    fs.writeFileSync(path.join(dir, 'view-harness.png'), shot.toPNG());
  • 写入本地文件
    src/main/main.js:379
    fs.writeFileSync(path.join(dir, 'view-plugins.png'), shot2.toPNG());
  • 写入本地文件
    src/main/main.js:385
    fs.writeFileSync(path.join(dir, 'verify.json'), JSON.stringify(report, null, 2));
  • 发起网络请求
    src/main/service-manager.js:23
    const req = http.get(url, { timeout: timeoutMs }, (res) => {
  • 执行外部命令固定命令
    src/main/service-manager.js:50
    spawn('taskkill', ['/pid', String(pid), '/T', '/F'], { stdio: 'ignore' });
  • 写入本地文件
    src/main/service-manager.js:175
    fs.mkdirSync(paths.dshHome(), { recursive: true });
  • 执行外部命令来自配置/变量
    src/main/service-manager.js:176
    proc = spawn(paths.nodeExecutable(), args, {
  • 读取密钥环境变量
    src/main/plugin-manager.js:36
    if (process.env.GITHUB_TOKEN) headers.Authorization = `Bearer ${process.env.GITHUB_TOKEN}`;
  • 发起网络请求
    src/main/plugin-manager.js:45
    res = await fetch(url, { headers: ghHeaders(), signal: controller.signal });
  • 读取本地文件
    src/main/plugin-manager.js:129
    const entry = candidates.find((p) => fs.existsSync(p));
  • 写入本地文件
    src/main/plugin-manager.js:133
    await fsp.mkdir(binDir, { recursive: true });
  • 写入本地文件
    src/main/plugin-manager.js:138
    await fsp.writeFile(path.join(binDir, 'pnpm.cmd'), cmd);
  • 写入本地文件
    src/main/plugin-manager.js:139
    await fsp.writeFile(path.join(binDir, 'pnpm.ps1'), `& '${nodeExe}' '${entry}' @args\n`);
  • 写入本地文件
    src/main/plugin-manager.js:143
    await fsp.writeFile(target, sh, { mode: 0o755 });
  • 读取本地文件
    src/main/plugin-manager.js:170
    if (!fs.existsSync(file)) return null;
  • 读取本地文件
    src/main/plugin-manager.js:171
    return JSON.parse(fs.readFileSync(file, 'utf8'));
  • 读取本地文件
    src/main/plugin-manager.js:192
    const data = JSON.parse(fs.readFileSync(file, 'utf8'));
  • 读取本地文件
    src/main/plugin-manager.js:209
    if (!fs.existsSync(dir)) return { ok: false, reason: '包目录不存在' };
  • 读取本地文件
    src/main/plugin-manager.js:212
    pkg = JSON.parse(fs.readFileSync(path.join(dir, 'package.json'), 'utf8'));
  • 请求外部主机raw.githubusercontent.com
    src/main/plugin-manager.js:417
    const res = await fetch(`https://raw.githubusercontent.com/${fullName}/${branch}/${file}`, {
  • 发起网络请求
    src/main/plugin-manager.js:417
    const res = await fetch(`https://raw.githubusercontent.com/${fullName}/${branch}/${file}`, {
  • 写入本地文件
    src/main/plugin-manager.js:445
    await fsp.mkdir(dir, { recursive: true });
  • 写入本地文件
    src/main/plugin-manager.js:451
    await fsp.copyFile(src, path.join(dir, name));
  • 删除本地文件
    src/main/plugin-manager.js:682
    if (fs.existsSync(dest)) await fsp.rm(dest, { recursive: true, force: true });
  • 删除本地文件
    src/main/plugin-manager.js:776
    await fsp.rm(full, { recursive: true, force: true });
  • 删除本地文件
    src/main/plugin-manager.js:793
    if (fs.existsSync(dest)) await fsp.rm(dest, { recursive: true, force: true });
  • 删除本地文件
    src/main/plugin-manager.js:794
    if (fs.existsSync(archive)) await fsp.rm(archive, { force: true });
  • 发起网络请求
    src/main/plugin-manager.js:855
    res = await fetch(url, {
  • 发起网络请求
    src/main/plugin-manager.js:946
    const res = await fetch(`${REGISTRY}/${name.replace('/', '%2F')}`, {
  • 请求外部主机github.com
    src/main/plugin-manager.js:1029
    const res = await fetch(`https://github.com/${repo}/archive/refs/heads/${candidate}.tar.gz`, {
  • 发起网络请求
    src/main/plugin-manager.js:1029
    const res = await fetch(`https://github.com/${repo}/archive/refs/heads/${candidate}.tar.gz`, {
  • 删除本地文件
    src/main/plugin-manager.js:1098
    fs.rmSync(repoDir, { recursive: true, force: true });
  • 读取本地文件
    src/main/paths.js:24
    if (fs.existsSync(path.join(dir, 'node_modules', '@deepseek-ai', 'dsh', 'lib', 'bin.js'))) {
  • 读取本地文件
    src/main/paths.js:105
    if (fs.existsSync(candidate)) return candidate;
  • 读取本地文件
    src/main/paths.js:122
    if (fs.existsSync(candidate) && fs.statSync(candidate).isFile()) return candidate;
  • 写入本地文件
    src/main/paths.js:130
    fs.mkdirSync(dir, { recursive: true });
  • 写入本地文件
    src/main/exec.js:16
    if (opts.cwd) fs.mkdirSync(opts.cwd, { recursive: true });
  • 执行外部命令来自配置/变量
    src/main/exec.js:17
    const proc = spawn(file, args, {
扫描于 2026/11/4(0 天前) · 范围 入口闭包 + 全包扫描 · 来源 GitHub 仓库
涉及外部主机:raw.githubusercontent.com、github.com

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

依赖的 DSH / Cordis 模块
@deepseek-ai/dsh@deepseek-ai/cordis-plugin-group@deepseek-ai/dsh-anonymous-user-id@deepseek-ai/dsh-atomic-write@deepseek-ai/dsh-bash-local@deepseek-ai/dsh-code-runtime@deepseek-ai/dsh-compaction@deepseek-ai/dsh-fs@deepseek-ai/dsh-invariants@deepseek-ai/dsh-output-retention@deepseek-ai/dsh-sandbox@deepseek-ai/dsh-scope
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个

界面预览

3 张 · 点击查看大图

功能亮点

  • 双击即用
  • 内置插件管理器
  • 一键装插件并激活

README

由 DeepSeek 最新模型翻译生成
Harness Hub Harness Hub — DeepSeek Harness 桌面应用 DeepSeek Harness(dsh)桌面端:免命令行、免环境配置,双击即用;开源插件一站式集成——不用你自己搜、自己装,应用内逛市场、一键安装、自动激活。 一个原生 DeepSeek Harness(dsh)桌面客户端,内置一站式开源插件市场——一键浏览、安装并激活社区插件。无需 CLI,无需 Node.js 环境,无需 Docker。 License Electron Platform dsh 社区开源皮肤插件「黑鲸鱼娘」(dsh-deep-whale)一键安装并自动激活后的 dsh 界面 —— 你的 Agent 工作台,也可以有自己的风格。 一个社区开源皮肤插件(dsh-deep-whale)一键安装并激活后的效果。 黑鲸鱼娘皮肤插件效果 — DeepSeek Harness desktop with community skin plugin 开源插件,一站式集成|One-Stop Plugin Integration DeepSeek Harness 的「万物皆插件」生态在 GitHub 上有数千个开源作品,但自己搜仓库、敲命令、处理依赖、排查激活,门槛太高。
展开完整文档(README 剩余 1 节)
Harness Hub

Harness Hub — DeepSeek Harness 桌面应用

DeepSeek Harness(dsh)桌面端:免命令行、免环境配置,双击即用;开源插件一站式集成——不用你自己搜、自己装,应用内逛市场、一键安装、自动激活。
一个原生 DeepSeek Harness(dsh)桌面客户端,内置一站式开源插件市场——一键浏览、安装并激活社区插件。无需 CLI,无需 Node.js 环境,无需 Docker。

License
Electron
Platform
dsh

社区开源皮肤插件「黑鲸鱼娘」(dsh-deep-whale)一键安装并自动激活后的 dsh 界面 —— 你的 Agent 工作台,也可以有自己的风格。
一个社区开源皮肤插件(dsh-deep-whale)一键安装并激活后的效果。

黑鲸鱼娘皮肤插件效果 — DeepSeek Harness desktop with community skin plugin

开源插件,一站式集成|One-Stop Plugin Integration

DeepSeek Harness 的「万物皆插件」生态在 GitHub 上有数千个开源作品,但自己搜仓库、敲命令、处理依赖、排查激活,门槛太高。Harness Hub 把整条链路收进应用内:

- 逛(Browse) — 内置插件市场,实时聚合 GitHub dsh-plugin 标签下的开源插件,按 Star 数 / 最近更新排序,支持搜索与翻页,详情抽屉直接预览仓库 README;
- 装(Install) — 一键安装,不用你找仓库地址、不用敲命令;自动解析仓库真实默认分支,内置 pnpm 完成依赖安装;也支持粘贴 npm 包名 / owner/repo / GitHub 链接手动安装;
- 激活(Activate) — 安装完成自动重启服务加载新插件,无需任何手动操作;「已安装」页实时显示启用状态;
- 放心(Safe) — 每次安装/卸载前自动备份 profile 配置,失败自动回滚,历史备份可随时一键回退,玩坏也能秒恢复。

内置插件市场 — one-stop open-source plugin marketplace for DeepSeek Harness

界面展示|Demo

demo.gif

为什么选择 Harness Hub?|Why Harness Hub

DeepSeek Harness 是一个「万物皆插件」的 AI Agent 运行时,但命令行安装、Node 环境、端口排查把很多用户挡在门外。Harness Hub 把这些全部藏到桌面应用背后:

DeepSeek Harness 是一个「万物皆插件」的 AI Agent 运行时——但命令行安装、Node 环境和端口调试把很多用户挡在门外。Harness Hub 把这些全部藏到原生桌面应用背后。

- 零配置启动(Zero setup) — 内置 Node 运行时与 pnpm,不需要你机器上装任何环境;双击安装包即用。
- 服务全自动托管(Managed service) — 自动启动 dsh web 服务、探测与复用端口、崩溃自动恢复,托盘常驻后台。
- 按需联网,启动零等待(On-demand network) — 启动过程不请求任何外部网络;插件市场只在你打开它时才加载,慢网络 20 秒自动中断,绝不卡住首屏。
- 主题跟随(Theme sync) — 自动跟随你在 dsh 设置里选择的浅色/深色主题。
- 与命令行 dsh 共享数据(Shared profile) — 使用同一个 ~/.dsh 目录,桌面端装的插件在命令行里同样生效,反之亦然。

架构一览|How It Works

┌─────────────────────────── Harness Hub (Electron) ───────────────────────────┐
│ │
│ Renderer(插件市场 / 已安装 / 备份回滚 / 主题) │ │ │ preload (contextBridge) │ │ Main process ──► DshServiceManager:启动/复用/自愈 dsh web,仅绑定 127.0.0.1 │ │ │ └► PluginManager:市场搜索、一键安装、自动备份/回滚(内置 pnpm)│ │ ▼ │ │ 内嵌 webview ──► http://127.0.0.1:3080 (dsh web UI,仅本地回环) │ └──────────────────────────────────────────────────────────────────────────────┘

快速开始|Quick Start

直接使用:到 Releases 页下载对应平台安装包(Windows:Harness Hub Setup x.x.x.exe;macOS:.dmg;Linux:.AppImage / .deb)。

从源码运行(开发):

npm install # 安装依赖(含 @deepseek-ai/dsh 与内置 pnpm)
npm run fetch-node # 下载内置 Node 运行时(约 80MB,仅首次)
npm start # 启动桌面应用

打包发行版:

npm run dist # Windows(NSIS 安装包 + 便携版)
npm run dist:mac # macOS(dmg / zip)
npm run dist:linux # Linux(AppImage / deb)

系统要求|Requirements

| 项目 | 要求 |
| 操作系统 | Windows 10+ / macOS 11+ / 主流 Linux 发行版(x64) |
| Node.js | 无需安装(应用内置) |
| 网络 | 仅逛市场/装插件时需要;启动与服务运行完全本地 |

隐私与安全|Privacy & Security

- dsh web 服务仅绑定 127.0.0.1 本地回环地址,不对外暴露;
- 所有数据保存在你本机的 ~/.dsh 目录,与命令行 dsh 完全一致,应用不上传任何内容;
- 外部链接一律交给系统浏览器打开,应用内 webview 禁止跨源导航;
- 插件为社区开源作品,安装前可在详情抽屉查看仓库 README 自行审查。

常见问题|FAQ / Troubleshooting

| 现象 | 处理 |
| 首次启动较慢 | 首次需初始化运行环境,通常几秒;插件市场不在此阶段联网 |
| 端口被占用 | 自动探测 3080–3090 空闲端口,或复用已在运行的 dsh web |
| 插件安装失败 | 配置已自动回滚,不影响现有环境;可在「备份与回滚」页一键回退 |
| Windows SmartScreen 提示 | 社区版未做代码签名,选择「仍要运行」即可 |
| 界面异常/白屏 | 应用会自动重试并记录日志,日志位于 %APPDATA%\Harness Hub\logs\main.log |

关注与交流|Follow & Community

扫码关注作者公众号「回血氧」,获取版本更新、插件推荐与使用技巧的第一手信息:

生态|Ecosystem & Related

- 上游项目:deepseek-ai/deepseek-harness — DeepSeek Harness: Everything is a Plugin.
- 插件精选列表:awesome-dsh-plugin
- 插件开发主题标签:dsh-plugin(GitHub topic)

开发|Development

npm test # 核心模块无界面自测(服务/端口/插件管理/市场)

代码结构:src/main(主进程:服务管理、插件管理、托盘、IPC)、renderer(渲染层 UI)、scripts(内置运行时下载、图标生成、自测)。

免责声明|Disclaimer

Harness Hub 是社区维护的第三方封装项目,不是 DeepSeek 官方产品。上游 dsh 处于开发者预览阶段,接口可能发生破坏性变更。

许可证|License

MIT
预览分享卡片长什么样 ↓huihuisire/harness-hub
分享 · DeepSeek Harness Hub
huihuisire/harness-hub

双击即用,逛市场一键装插件并自动激活

这是你的仓库?认领条目

回到顶部