deepseek-harness
deepseek-ai
DeepSeek Harness: Everything is a Plugin.
PROJECT TOPICS
INSTALL REFERENCE
dsh plugin --profile web add github:hpyer/dsh-for-mac
该命令指向仓库当前默认分支;尚无绑定当前 commit 的完整验证结果。
PROJECT README
DshForMac(DeepSeek Harness for Mac) 是 DeepSeek Harness(DSH) 的原生 macOS 启动器与本地容器。它负责检测本机 Node.js、下载和管理经过校验的 DSH 版本、启动本地 DSH Web 服务,并在应用窗口中显示 DSH 界面。
它不是 DSH 的分叉实现,不会重定向 DSH 的用户数据,也不会修改全局 npm、pnpm、Node.js 或 shell 配置。
项目初衷:网上其实有很多
Mac桌面端了,但是基本都要求最新的系统或者支持到14/15系统就算好的了,但我觉得应该还是有部分用户仍在使用旧系统(包括我还有台13系统的)。所以,只要你电脑能装dsh必须的22.19或24以上版本的nodejs,那么你就可以安装这个应用。
node 可执行文件。@deepseek-ai/dsh 的精确版本并校验完整性。http://127.0.0.1:3080;端口可在设置中修改。DSH 0.1.5-alpha.1 开始已经内置右侧预览窗口,此功能不再迭代,只留作兼容旧聊天内的链接。等DSH正式版发布后将移除相关代码。点击缩略图可查看原图。
![]() 主界面 |
![]() 文件树 |
![]() 终端 |
![]() 拖入文件夹添加工作区 |
![]() 应用设置 |
![]() 菜单栏 |
npm 和 npx。https://mirrors.cloud.tencent.com/npm/。应用不包含 Node.js。若未检测到兼容版本,DshForMac 会给出说明并可打开 Node.js 官网;安装完成后回到应用重新检测即可。
DshForMac-<版本>-unsigned.dmg。DshForMac.app 拖入“应用程序”(/Applications)文件夹。当前应用未签名。若 macOS 的 Gatekeeper 阻止打开,请先在“系统设置 → 隐私与安全性”中选择“仍要打开”,或在终端执行下面的命令移除应用的隔离属性:
sudo xattr -rd com.apple.quarantine /Applications/DshForMac.app
执行后再次打开应用。该命令仅应针对你信任来源获得的 DshForMac 应用使用。
首次成功启动后,DSH 会显示在主窗口中。常用操作如下:
latest 始终检查,可额外选择 alpha 或 next 标签。“运行状态”旁可点击“检查 DSH 更新”,检查结果及“下载”入口显示在同一栏;DSH 版本旁可打开已安装版本目录。每天、每周和每月检查在应用持续运行时也会到期触发;发现 DSH 新版本后工具栏立即提示。本地所选版本过低时,应用会在启动前提示升级,不会因这次检查删除该版本。普通保存后设置窗口保持打开;确认立即重启 DSH 时会关闭设置窗口。DSH 的配置、会话和插件仍由 DSH 使用其上游默认用户数据路径管理。DshForMac 只在 ~/Library/Application Support/DshForMac/runtimes/ 下保存受管 DSH 版本。
项目使用 Swift Package Manager:
开发需 Xcode 15.2(Swift 5.9)或更新版本;macOS 13 可使用 Xcode 15.2。本地与较新 Xcode 均使用同一套 XCTest 测试,应用的最低运行系统仍为 macOS 11。
swift test
swift run DshForMac
如需生成通用 macOS DMG,请运行:
./scripts/package-dmg.sh
输出文件位于 dist/,且为未签名产物。打包脚本不会覆盖同名 DMG;重新构建同一版本前,需要先处理已有产物或更新版本号。源码直接运行时没有可替换的 .app,应用更新只在打包后的应用中启用。
推送形如 v0.1.0 的语义化 Git 标签会触发 GitHub Actions。工作流在 Intel 和 Apple Silicon Runner 分别构建与测试,在 macOS Runner 合成一个通用 DMG,并生成带 EdDSA 签名的 appcast.xml;两者共同发布到 GitHub Release。应用通过固定的 releases/latest/download/appcast.xml 地址检查稳定版,不调用 GitHub Releases API。预发布标签生成的 Release 不会成为默认稳定版更新源。
每次发布时,CHANGELOG.md 对应版本条目必须包含独立一行“最低兼容 DSH 版本”,格式为 - 最低兼容 DSH 版本:`版本号`。。版本号须与应用中的 AppMetadata.minimumSupportedDSHVersion 一致。发布工作流会校验此行,并把该版本条目原样用作 GitHub Release Notes。
发布前需将与 Packaging/Info.plist 中 SUPublicEDKey 对应的 Sparkle 私钥,保存为仓库 Actions 密钥 SPARKLE_PRIVATE_KEY;缺失时工作流会停止发布。当前公钥对应的私钥保存在本机钥匙串账号 cn.hpyer.dshformac 中。已安装并登录 GitHub CLI 时,可执行:
key_dir="$(mktemp -d)"
.build/artifacts/sparkle/Sparkle/bin/generate_keys --account cn.hpyer.dshformac -x "$key_dir/private-key"
gh secret set SPARKLE_PRIVATE_KEY < "$key_dir/private-key"
rm -f "$key_dir/private-key"
rmdir "$key_dir"
也可通过 GitHub 仓库设置添加密钥。不要将私钥提交到仓库;请另行安全备份钥匙串中的密钥。Sparkle 的更新包签名与 Apple Developer ID 签名不同;发布的应用仍未经过 Apple 签名或公证。
发布前请同步更新 Packaging/Info.plist 的 CFBundleShortVersionString、AppMetadata.version 和 CHANGELOG.md 中的版本号,并递增 CFBundleVersion;工作流会校验前两者必须与标签一致。已安装的旧版本不含应用更新器,需要手动安装一次加入此功能的新版本。新版本的应用包标识为 cn.hpyer.dshformac;首次启动时会迁移旧标识下的偏好设置。
更多实现细节见 架构文档。
项目自研的 DSH 插件位于 dsh-plugins/,该目录本身是 pnpm
workspace 根目录。它们与原生壳分开开发和验证,尚未发布为正式 npm 包。
This project is licensed under the MIT License.
CLASSIFICATION EVIDENCE
系统优先读取 GitHub Topics,再与站内分类词典和词根规则比对。当前命中: 无有效分类标签。