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

桌面客户端 mapan0424/deepseek-harness-desktop

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

保留 Harness 的完整能力,带来打开即用的 Mac 体验。

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

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

自动兼容检查未通过:缺少 main/exports/bin 入口声明;仓库 package.json 标记 private,未发布到 npm,需从源码安装。以下命令仍可尝试,但可能失败。
安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add mapan0424/deepseek-harness-desktop
该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:已验证
是什么
dsh 原生插件 · desktop
装得上吗
本站已真实安装成功
非静态推断
L4 · 真实安装等级说明 →
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
活跃:最近一次提交在 14 天前
档位由哪些信号合成

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

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

缺少 main/exports/bin 入口声明;仓库 package.json 标记 private,未发布到 npm,需从源码安装

展开查看检查明细 ↓

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

✗npm 包harness-desktop-macos(未发布到 npm,仅可源码安装)
✓Node 引擎未声明 engines.node
✓dsh CLI 依赖未声明 dsh 版本约束
✗入口文件缺少入口声明

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

验证方式:npm registry 存在性 + package.json 静态校验 · 最后检查 2026/10/31 10:23:05

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

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

读写/删除本地文件读取剪贴板或密钥环境变量
查看扫描证据(共 23 处,展示前 22 条)
  • 读取本地文件
    packages/harness-channel-config/lib/index.js:308
    const raw = await readFile(settingsPath, "utf8");
  • 读取本地文件
    packages/harness-channel-config/lib/index.js:345
    raw = await readFile(settingsPath, "utf8");
  • 写入本地文件
    packages/harness-channel-config/lib/index.js:390
    await writeFile(settingsPath, outLines.join("\n"), "utf8");
  • 读取本地文件
    packages/harness-channel-config/lib/index.js:396
    const parsed = JSON.parse(await readFile(join(stateDir, fileName), "utf8"));
  • 读取密钥环境变量
    packages/harness-channel-dingtalk/lib/config.mjs:12
    appKey: process.env.DINGTALK_APP_KEY || "",
  • 读取密钥环境变量
    packages/harness-channel-dingtalk/lib/config.mjs:13
    appSecret: process.env.DINGTALK_APP_SECRET || "",
  • 读取密钥环境变量
    packages/harness-channel-feishu/lib/config.mjs:13
    appSecret: process.env.FEISHU_APP_SECRET || "",
  • 读取密钥环境变量
    packages/harness-channel-feishu/lib/config.mjs:14
    verifyToken: process.env.FEISHU_VERIFY_TOKEN || "",
  • 读取密钥环境变量
    packages/harness-channel-feishu/lib/config.mjs:15
    encryptKey: process.env.FEISHU_ENCRYPT_KEY || "",
  • 写入本地文件
    packages/harness-channel-feishu/lib/media-cache.mjs:153
    await mkdir(dir, { recursive: true });
  • 写入本地文件
    packages/harness-channel-feishu/lib/media-cache.mjs:156
    await writeFile(filepath, buf);
  • 读取本地文件
    packages/harness-channel-feishu/lib/media-cache.mjs:166
    const data = await readFile(srcPath);
  • 读取密钥环境变量
    packages/harness-channel-wecom/lib/config.mjs:14
    secret: process.env.WECOM_BOT_SECRET || "",
  • 读取密钥环境变量
    packages/harness-channel-wecom/lib/config.mjs:17
    corpSecret: process.env.WECOM_CORP_SECRET || "",
  • 读取密钥环境变量
    packages/harness-channel-wecom/lib/config.mjs:18
    callbackToken: process.env.WECOM_CALLBACK_TOKEN || "",
  • 写入本地文件
    packages/harness-core/lib/gateway-core.mjs:27
    appendFileSync("/tmp/dsh_channel_debug.log", `[${new Date().toISOString()}] [${tag}] ${msg}\n`);
  • 读取本地文件
    packages/harness-core/lib/gateway-core.mjs:93
    if (path && (existsSync(path) || existsSync(path.replace(/^~/, homedir())))) {
  • 读取本地文件
    packages/harness-core/lib/gateway-core.mjs:108
    if (existsSync(p) && statSync(p).isFile()) unique.push({ path: p, name: f.name || basename(p) });
  • 读取本地文件
    packages/harness-core/lib/gateway-core.mjs:108
    if (existsSync(p) && statSync(p).isFile()) unique.push({ path: p, name: f.name || basename(p) });
  • 读取本地文件
    packages/harness-core/lib/gateway-core.mjs:356
    if (this.statePath && existsSync(this.statePath)) {
  • 读取本地文件
    packages/harness-core/lib/gateway-core.mjs:358
    const raw = readFileSync(this.statePath, "utf8");
  • 读取本地文件
    packages/harness-core/lib/gateway-core.mjs:378
    if (this.statePath && existsSync(this.statePath)) {
扫描于 2026/11/2(1 天前) · 范围 全包扫描 · 来源 GitHub 仓库

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

给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个

功能亮点

  • 保留完整能力
  • 打开即用Mac体验

非官方 Tauri 桌面客户端,用于 DeepSeek Harness

README

由 DeepSeek 最新模型翻译生成
简体中文 · English DeepSeek Harness for macOS 保留 Harness 的完整能力,带来打开即用的 Mac 体验。 无需 Node.js、终端命令或运行环境配置。下载、打开,开始工作。 下载最新版本 · 上游 Harness · 问题与建议 [!IMPORTANT] 本项目仅供个人学习与测试使用。 这是我在学习 Tauri 桌面封装和 DeepSeek Harness 插件开发时做的实验性项目,测试并不充分,随时可能变更或停止维护,不建议用于生产环境或重要工作。 推荐大家下载使用 DeepSeek 官方原版: DeepSeek Harness 官网 · 官方 GitHub 仓库(安装 Node.js 后也可以直接运行 npx @deepseek-ai/dsh web)。
展开完整文档(README 剩余 1 节)
简体中文 · English

DeepSeek Harness for macOS
保留 Harness 的完整能力,带来打开即用的 Mac 体验。
无需 Node.js、终端命令或运行环境配置。下载、打开,开始工作。

下载最新版本
· 上游 Harness
· 问题与建议

[!IMPORTANT]
本项目仅供个人学习与测试使用。 这是我在学习 Tauri 桌面封装和 DeepSeek Harness 插件开发时做的实验性项目,测试并不充分,随时可能变更或停止维护,不建议用于生产环境或重要工作。

推荐大家下载使用 DeepSeek 官方原版: DeepSeek Harness 官网 · 官方 GitHub 仓库(安装 Node.js 后也可以直接运行 npx @deepseek-ai/dsh web)。

https://github.com/user-attachments/assets/486eb943-a455-4f56-b009-5fc1e877e812

内嵌产品演示视频 · 35 秒

v0.3.16 更新内容

- 修复顶部栏读取用量时,因会话摘要含截断的 emoji 而出现 unexpected end of hex escape 的问题;
- 为已有摘要中的孤立 UTF-16 代理项增加读取容错,保留原始会话和用量记录;
- 修复新会话摘要的截断边界,避免把 emoji 切成半个字符,并保留原有预览长度限制;
- 新增原生解析和摘要生成回归测试,已使用本机真实会话列表验证用量字段保持一致。

v0.3.15 更新内容

- 修复 macOS 12.7.6 上模型选择器因缺少 Array.prototype.toSorted() 而报错、无法选择模型的问题;
- 为旧版 WebKit 补充排序兼容实现,保持模型目录不被修改,并保留新版引擎的原生实现;
- 新增六项兼容性回归测试,纳入现有构建检查,并已用 macOS 12.7.6 的真实 JavaScriptCore 验证模型排序代码;
- 继续内置 @deepseek-ai/dsh@0.2.1-alpha.5 与 @deepseek-ai/cordis@4.0.5。

v0.3.14 更新内容

- 升级核心运行时至官方 @deepseek-ai/dsh@0.2.1-alpha.5 与 @deepseek-ai/cordis@4.0.5,精确锁定 293 个子包依赖闭包,杜绝预发布依赖漂移;
- 带来上游 0.2.x 系列能力:插件市场与自定义插件索引源、模型选择器搜索、已发送消息中的密钥自动脱敏、/compact 手动压缩上下文、Office / PDF 预览与对话体验优化等;
- 适配 0.2.x 新版浏览器会话认证接口,重写桌面端本地回环自动登录补丁,打开 App 即进入工作台;
- 内嵌插件全面升级并通过 DSH 0.2 插件版本兼容性检查:配置中心 0.1.13、Core 0.1.10、飞书 0.1.8、钉钉 0.1.6、企业微信 0.1.10、iMessage 0.1.11、Harness Insights 0.1.15、Locale Pack 0.1.9;
- 构建门禁新增插件禁用检测:任一内置插件被 DSH 判定为版本不兼容时构建直接失败;
- 继续保持 macOS 12.7.6 兼容:全部原生二进制最低系统版本不高于 12.7.6,WebKit 兼容补丁在新运行时上全部生效;
- Windows 构建继续排除 iMessage,因为它只依赖 macOS 的 Messages.app;其余插件跨平台提供。

✨ 为什么值得使用

真正的开箱即用

无需提前安装或维护:

- Node.js
- npm / pnpm
- Homebrew
- DeepSeek Harness CLI
- 额外运行时与首次启动下载

下载对应 DMG,把 App 放进「应用程序」,打开就能用。发行包固定并内置完整运行环境,不受全局 Node 版本、PATH 或包管理器状态影响。

保留 Harness 的完整体验

这不是功能缩水的聊天壳。客户端直接承载 DeepSeek Harness Web UI,持续保留核心能力:

- 多轮会话与流式回复
- Markdown 与代码内容
- 工作区和上下文管理
- 工具调用与审批流程
- 模型、凭据和插件配置
- Harness 上游持续演进的交互体验
- 内置 Harness Insights:本地 Token、模型和工具使用洞察,支持 Golden Ratio 活跃热力图与双主题
- 内置全渠道消息网关:可视化配置、飞书 / Lark、钉钉、企业微信 / WeCom,以及 macOS 上的 iMessage
- 内置多语言与民族语言包:支持藏文、传统蒙古文、维吾尔文、凉山彝文、繁体中文、日文、韩文等无缝即时切换

桌面层不重复发明 Harness,而是让它在桌面系统上运行得更自然。内置插件以独立 Cordis 架构开发,与上游源码解耦,随安装包统一开箱交付。

消息通道

安装包会预置已验证的消息通道插件,打开 Harness 后可在设置中的「消息通道」页面直接配置:

- 可视化配置:统一管理通道参数、授权状态、默认工作区和会话状态;
- 飞书 / Lark:配置企业自建应用后,支持 WebSocket 长连接实时接收事件与开放 API 卡片/文本流式回复;
- 钉钉:支持企业内部机器人 Stream 长连接,无需暴露公网 webhook,并可把 Agent 审批和提问回传同一会话;
- 企业微信 / WeCom:配置自建应用凭据后,即可将企业微信对话与本地 Harness 智能体无缝打通;
- iMessage:仅 macOS 提供,支持本地 Messages/chat.db 模式;首次使用需要授予完全磁盘访问和自动化权限。

Windows 安装包不会携带 iMessage 插件,配置页面也不会显示 iMessage,避免出现不可用入口。

🌐 多语言与民族语言支持 (Locale Pack)

客户端预置了强大的本地化语言包,支持在设置中即时切换显示语言,包含:
- 少数民族语言:藏文 (བོད་ཡིག)、传统蒙古文 (ᠮᠣᠩᠭᠣᠯ ᠬᠡᠯᠡ)、维吾尔文 (ئۇيغۇرچە)、凉山彝文 (ꆈꌠꉙ);
- 多国与地区语言:繁体中文 (繁體中文)、日文 (日本語)、韩文 (한국어)、法文 (Français)、德文 (Deutsch)、俄文 (Русский)、西班牙文 (Español) 及英文 (English)。

更像一个真正的 Mac App

- 独立窗口与 Dock 入口
- 自动启动本地 Harness 服务
- 自动选择可用端口
- 启动完成后直接进入工作台
- 关闭窗口后驻留系统托盘,再次打开无需重新等待 Harness 启动
- 左键托盘图标查看本周 Token、模型调用、7 日趋势和 Token 构成
- 右键托盘图标查看本周摘要,并打开或退出 DeepSeek Harness
- dsh 意外退出时自动原端口恢复一次,失败后进入本地恢复页
- 从托盘或系统菜单退出时自动回收后台进程
- 使用 macOS 系统 WebView,不额外携带 Chromium
- 无需保留终端窗口或手动管理本地服务

本地运行,数据由你掌控

Harness 服务只监听本机 127.0.0.1。会话、设置、工作区和凭据继续由本地 Harness 管理;桌面客户端不会为了启动 UI 将本地服务暴露到局域网。

模型请求的目标和数据处理方式取决于你在 Harness 中选择的模型服务与配置。

旧设备兼容矩阵

不把仍在使用的 Intel Mac 排除在外。每种架构都有独立的安装包、Node.js 运行时和原生依赖,减少混合架构带来的体积与兼容性问题。

| 平台 | 发布包 | 状态 | 自动化验证 |
| macOS 12.7.6+ Apple Silicon | DeepSeek.Harness__macos_arm64.dmg | 支持 | arm64 App、最低系统版本、原生模块、内置运行时与 Markdown/WebKit 兼容性 |
| macOS 12.7.6+ Intel | DeepSeek.Harness__macos_x86_64.dmg | 支持 | Intel App、x86_64 原生模块、最低系统版本、内置运行时与 Markdown/WebKit 兼容性 |
| Windows 10 / 11 x64 | setup.exe 或 .msi | 支持 | x86_64 安装包、展开后的运行时、原生依赖、Markdown 与 bundle 完整性 |

macOS 12.7.6 是当前发行包声明的最低版本;Intel 和 Apple Silicon 使用对应架构的 DMG。矩阵反映发行包和自动化检查结果,具体性能与 WebKit 行为仍可能受设备型号和系统补丁版本影响。

🚀 下载与安装

前往 GitHub Releases,根据系统和处理器选择安装包:

| 平台 | 安装包 |
| macOS Apple Silicon(M1 / M2 / M3 / M4 等) | DeepSeek.Harness__macos_arm64.dmg |
| macOS Intel | DeepSeek.Harness__macos_x86_64.dmg |
| Windows 10 / 11 x64(推荐) | DeepSeek.Harness__windows_x86_64-setup.exe |
| Windows x64 企业部署 | DeepSeek.Harness_*_windows_x86_64.msi |

macOS

1. 打开 DMG;
2. 将 DeepSeek Harness.app 拖入「应用程序」;
3. 启动 App,并在 Harness 中配置需要使用的模型或 API 凭据。
如果 macOS 首次打开时阻止运行,请确认文件来自本仓库 Release,再执行:

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

Windows

1. 下载并运行 setup.exe;
2. 完成安装后从开始菜单打开 DeepSeek Harness;
3. 在 Harness 中配置需要使用的模型或 API 凭据。

MSI 主要用于企业或批量部署。Windows 10/11 通常已内置应用所需的 Microsoft Edge WebView2 Runtime。

自动更新

从 v0.2.0 起,已安装的桌面 App 会在启动完成后延迟检查 GitHub Releases。发现新版本时,App 会先显示更新说明;确认后自动下载、停止本地 dsh、安装并重启到新版本。macOS Apple Silicon、macOS Intel 和 Windows x64 都使用各自架构的签名更新包。

v0.1.9 及更早版本没有自动更新能力,需要手动安装一次 v0.2.0;之后的版本即可在 App 内完成后续更新。

🧭 它如何工作

DeepSeek Harness.app
├── 原生 macOS / Windows 窗口与系统托盘 ├── Rust / Tauri 桌面层 │ ├── 启动内置运行时 │ ├── 选择本地端口与端口自愈 │ ├── 等待服务就绪 │ └── 管理进程生命周期 ├── 官方 Node.js 运行时 ├── DeepSeek Harness 核心 (Agent / Session / LLM) ├── 内置插件矩阵 (Cordis Plugins) │ ├── Harness Insights (Token / 模型用量看板) │ ├── Harness Channels (飞书 / 企微 / iMessage / 设置界面) │ └── Harness Locale Pack (多语言与民族语言包) └── 系统 WebView └── Harness Web UI

正式发行包直接从 App Resources 运行唯一一份内置 runtime,不在首次启动时下载或解压第二份副本。桌面层负责环境和生命周期,Harness 负责智能体、会话、模型、工具及插件能力。

🌊 项目愿景

我们希望它不只是「能启动 Harness 的外壳」,而是一个长期可靠的 macOS 入口:

- 降低门槛:让更多人无需理解 Node.js 工具链也能使用 Harness;
- 忠于上游:尽可能保持 Harness 的能力、交互和插件生态;
- 尊重平台:逐步完善菜单、快捷键、通知、文件交互和自动更新;
- 兼顾旧设备:在合理范围内继续支持仍有价值的 Intel Mac 与旧版 macOS;
- 本地优先:把运行环境、进程和数据边界保持在用户可理解、可掌控的范围内;
- 可复现分发:锁定并验证运行时、架构和依赖,让同一版本拥有一致体验。

如果你希望 Harness 成为每天都能从 Dock 打开的生产力工具,欢迎试用、反馈和参与改进。

🛠️ 开发

环境

- macOS
- Node.js
- pnpm
- Rust toolchain
- Xcode Command Line Tools

本地运行

pnpm install
pnpm tauri dev

需要升级内嵌 DSH 运行时、同步社区插件并发布新桌面版本时,请按 DSH 运行时升级手册 执行。

构建 Apple Silicon

pnpm build:macos

产物:

src-tauri/target/release/bundle/dmg/DeepSeek Harness_<version>_aarch64.dmg

构建 Intel Mac

pnpm build:macos:intel

产物:

src-tauri/target/x86_64-apple-darwin/release/bundle/dmg/DeepSeek Harness_<version>_x64.dmg

构建 Windows x64

Windows 安装包由原生 Windows GitHub Actions Runner 构建:

Actions → Build Windows x64 → Run workflow

也可以在 Windows x64 开发机运行:

pnpm build:windows

构建流程会自动:

- 下载并校验对应架构的官方 Node.js;
- 安装固定版本的 Harness 生产依赖;
- 保留对应架构的原生模块;
- 应用 macOS 12.7.6 WebKit 兼容处理;
- 验证 Markdown 行为、Mach-O 架构与最低系统版本;
- 生成 npm 与 Rust/Tauri 第三方许可证报告;
- 检查运行时只有一份,不产生首次启动缓存副本;
- 内置并验证独立的 Harness Insights 插件。

🤝 贡献

欢迎通过 Issues 提交:

- macOS 或 Windows 兼容性问题
- Intel、Apple Silicon 或 Windows x64 运行反馈
- 桌面体验建议
- 构建与分发改进
- 上游 Harness 升级适配

提交问题时建议附上 macOS 版本、处理器架构和可公开的错误信息,请勿上传 API Key 或其他凭据。

📄 许可证与声明

桌面外壳采用 MIT License。DeepSeek Harness 及其他内置组件保留各自的版权和许可证;完整第三方说明见 src-tauri/legal/THIRD_PARTY_NOTICES.md。

本项目由社区独立开发和分发,不是 DeepSeek 官方产品,也不代表获得 DeepSeek 的赞助、认可或背书。「DeepSeek」与「DeepSeek Harness」仅用于说明兼容的上游项目。
本项目仅用于个人学习与测试,不提供任何形式的稳定性或兼容性保证。日常使用请优先选择 DeepSeek Harness 官方原版。

🔗 相关项目

- DeepSeek Harness(上游核心)
- DeepSeek Harness Plugins(社区插件矩阵)
- DeepSeek Harness 官方网站

🌐 友情链接(Links)

- LINUX DO 社区
预览分享卡片长什么样 ↓mapan0424/deepseek-harness-desktop
分享 · DeepSeek Harness Hub
mapan0424/deepseek-harness-desktop

保留 Harness 的完整能力,带来打开即用的 Mac 体验。

回到顶部