DeepSeek Harness
August 28, 2026 · View on GitHub
DeepSeek 编码 Agent 的 macOS 应用。装好后打开就能用。
本机需要 Node.js 22+。如果要安装尚未发布到 npm registry 的 GitHub 最新 DSH tag,还需要 pnpm。应用会在本地运行 @deepseek-ai/dsh,把界面开在原生窗口里。安装包不内置 Chromium,也不把 DSH 打进 .app。
安装
- 前往 Releases,下载适合当前 Mac 架构的 DMG,或选择 universal 通用版本。
- 打开 DMG,将
DeepSeek Harness.app拖入「应用程序」。 - 第一次启动请右键应用,选择「打开」。
发布包使用 Ad-hoc 签名。如果系统仍然拦住,可执行:
xattr -dr com.apple.quarantine "/Applications/DeepSeek Harness.app"
第一次打开时,如果本机还没有 DSH,应用会自动下载(大约三百兆)。之后再开就是窗口本身。会话导出和浏览器下载会存到 ~/Downloads。
环境要求
运行:
- macOS 26.0 或更高版本
- Node.js 22+(Homebrew、nvm、fnm、volta 等装的都可以;从 Dock 启动也能找到)
- pnpm(用于安装尚未发布到 npm registry 的 GitHub 最新 DSH tag)
构建:
- Xcode 26+ / Swift 6.2+
更新 DSH
菜单 DeepSeek Harness → 检查 DSH 更新…(⇧⌘U)检查的是本地 DSH,不是这个桌面应用。DSH 版本优先取 deepseek-harness tags 的最新 dsh-v* 版本;即使 npm registry 尚未发布,也会下载 GitHub 源码并在本机构建安装。点 更新 会装好并重启服务,不必重装本应用。点 稍后 会跳过该版本。启动后也会在后台检查。
同菜单里还有 打开日志 和 打开缓存目录。
数据目录
~/.dshapp # DSH 桌面应用管理目录
~/.dshapp/runtime # 真正运行的本地 DSH;GitHub 源码或 npm 包都会安装到这里
~/.dshapp/cache # 安装过程中的缓存;成功后会清掉,失败时可手动删除后重试
~/.dshapp/dsh.log # 应用日志
从源码构建
./scripts/build.sh
open "dist/DeepSeek Harness.app"
构建发布 DMG
./scripts/build.sh --build-only universal --sign --dmg
./scripts/build.sh --build-only arm64 --sign --dmg
./scripts/build.sh --build-only x86_64 --sign --dmg
--build-only <arch>:使用 release 配置构建universal、arm64或x86_64--sign:为应用添加 Ad-hoc 签名(含 entitlements)--dmg:在dist/生成DeepSeek-Harness-<arch>-<version>.dmgAPP_VERSION:写入构建产物的Info.plist和 DMG 文件名;如果省略,则依次使用最新 Git 标签、Packaging/Info.plist里的版本,或0.0.0-devAPP_BUILD:写入构建产物的CFBundleVersion;如果省略,则依次使用 GitHub Actions run number、git commit 数、Packaging/Info.plist里的构建号,或0
推送 v* 标签会触发 Release workflow:打三种架构的 DMG,按 Conventional Commits 生成 changelog,并上传到 GitHub Release。在 Actions 里手动运行则只上传 artifact,不创建 Release。
技术栈
- SwiftUI — 窗口、菜单和启动界面
- WebKit — 嵌入本地 DSH 页面
- Observation — 应用共享状态
- Swift Package Manager — 构建和依赖管理
项目结构
DeepSeek-Harness/
├── .github/workflows/ # 发布自动化
├── Packaging/ # Info.plist、图标、entitlements
├── scripts/ # 构建、打包和 changelog
├── Sources/DshApp/ # 应用入口、启动、更新和 WebView
├── Package.swift
└── README.md