Repository navigation
Releases: 2908746449/hanshuang-mac
Release list
寒霜破甲工具 · macOS 版 v1.2
寒霜破甲工具 · macOS 版 v1.2
把原 Windows 便携版(寒霜破甲工具-便携版-1.2.zip)完整适配到 macOS。
Electron 桌面壳 + 随包 PowerShell 7.6.6,双击即用,不需要用户另装 PowerShell。
下载
| 文件 | 适用机型 | 说明 |
|---|---|---|
hanshuang-macos-arm64-1.2.zip |
Apple Silicon(M1/M2/M3/M4) | 解压后把 .app 拖进「应用程序」 |
hanshuang-macos-x64-1.2.zip |
Intel Mac | 同上 |
资产名用 ASCII:GitHub 上传时会剥掉文件名里的非 ASCII 字符,
原名「寒霜破甲工具-macOS-…」会被截成「-macOS-…」。解压出来的.app仍是中文名。
首次打开若被 Gatekeeper 拦下(构建用 ad-hoc 签名):
xattr -cr "/Applications/寒霜破甲工具.app"支持的目标
| 目标 | 注入点 | 状态 |
|---|---|---|
| Codex | ~/.codex/config.toml 的 model_instructions_file + ~/.codex/AGENTS.md + ~/.codex/skills |
✅ |
| ZCode | ~/.zcode/AGENTS.md + 记忆文件 + ZCode.app/Contents/Resources/glm/zcode.cjs 系统提示词 |
✅ |
| Cursor | ~/.cursor/rules/寒霜注入.mdc(全局 User Rules)+ 项目级 .cursor/rules |
✅ |
| Claude | ~/.claude/CLAUDE.md + ~/.claude/skills |
✅ |
| WorkBuddy 国际版 | ~/.workbuddy-ai/memory/*_memory.md + MEMORY.md + skills |
✅ |
| WorkBuddy 国内版 | ~/.workbuddy/…(同一脚本,靠 -ConfigDir 区分) |
✅ |
| DeepSeek Harness (DSH) | ~/.dsh/AGENTS.md + ~/.dsh/skills |
✅ |
| 豆包 (Doubao) | 走 CDP 驱动客户端改云端全局记忆 |
移植做法
原版注入逻辑(8 个 .ps1,4200+ 行已验证代码)一行没改。所有 Windows 专有语义
收敛到新增的 resources/platform.ps1 适配层,各脚本在 param() 之后点入:
| Windows 语义 | macOS 实现 |
|---|---|
$env:USERPROFILE |
$HOME |
$env:APPDATA / LOCALAPPDATA |
~/Library/Application Support |
$env:ProgramFiles |
/Applications |
$env:SystemDrive |
/ |
$env:TEMP |
[IO.Path]::GetTempPath() |
robocopy /E /MIR |
rsync -a [--delete](无 rsync 时退化 Copy-Item) |
[IO.DriveInfo]::GetDrives() |
返回空数组(Unix 无盘符概念) |
注册表 Uninstall\* 找安装目录 |
扫 /Applications 与 ~/Applications 下的 .app |
Start-Process *.exe |
open -a |
taskkill /PID /T /F |
kill(-pid, SIGKILL)(子进程 detached 自成进程组) |
Get-StartApps 重启 Codex |
扫 /Applications 找 Codex 系 .app → open -a |
Electron 用 33.4.11,与原 Windows 便携版同版本。
验证
tests/ipc-test.mjs:把 electron 换成桩模块,require 真实 app.asar 里的 main.cjs,
抓出注册的 IPC handler 按界面路径逐目标跑 install / uninstall / restoreMemory。
在 macOS 26.5.1 / arm64 上 22/22 通过。逐目标结论:
| 目标 | 安装 | 卸载还原 |
|---|---|---|
| Codex | ✅ config.toml 指针 + AGENTS.md 标记块 + 63 个技能 |
✅ config.toml 与安装前逐字节一致,managed-prompts 整目录回收 |
| ZCode | ✅ 命中 ZCode.app/Contents/Resources/glm/zcode.cjs 并改写 u9o/s9o |
✅ 系统提示词从 ~/.zcode/zcode.cjs.backup-* 还原 |
| Cursor | ✅ 4 处规则(~/.cursor/rules、~/Library/Application Support/Cursor/…、项目级、旧版 .cursorrules) |
✅ 全部摘除 |
| Claude | ✅ CLAUDE.md + 63 个技能 |
✅ 还原 |
| WorkBuddy | ✅ 云记忆档案 memoryBlock + MEMORY.md + generateMemoryEnabled + 63 技能 |
✅ 档案 memoryBlock/version、MEMORY.md、app-config.json 全部按备份还原 |
| DSH | ✅ AGENTS.md + 71 个技能 + 懒人包文件 |
✅ 全部摘除 |
顺带修掉三个上游真 bug(Windows 版同样存在)
install-zcode.ps1:卸载只用CTF-LAB-2.0判「系统提示词被注入过」,但实际写进去的
是随包提示词正文、不含该字面量 → 漏判 → ZCode.app 的zcode.cjs永久停在被改状态。
改为「state 备份哈希比对 + 备份目录兜底」三条判据;安装后的自检同样误报,一并修正。install-dsh.ps1:卸载只比无属性$marker,而懒人包写的是
<!-- HANSHUANG-INJECT:BEGIN pack=<kitName> -->→ 漏判 → 卸载完AGENTS.md还留着整份注入。clear-injected-prompts.ps1:同一份记忆档案既被计划「整份删除」又被计划
「清空 Memory Block」,执行时前者先删、后者再读抛异常 → 退出码 1 →
界面显示「卸载完成但提示词残留清理失败」。计划阶段去重 + 执行阶段容忍文件已删。
已知限制:豆包在 macOS 上不可用
代码已移植(路径解析实测正确指向
/Applications/Doubao.app/Contents/Helpers/Doubao Browser.app/Contents/MacOS/Doubao Browser
—— 那才是对应 Windows app\Doubao.exe 的 Chromium 主体),但当前 macOS 版豆包客户端
会重写自身命令行:
以 --remote-debugging-port=9222 启动后,进程命令行变成 ... --saman-from-chat=<pid>
→ 调试端口被丢弃,9222 不监听,DevToolsActivePort 不生成
(已排除沙箱因素:同环境下 Python 绑 127.0.0.1:9333 正常)
CDP 通道建不起来,这个目标在 macOS 上暂不可用。脚本遇到这种情况会明确打印原因,
不会静默失败。其余 6 个目标不受影响。
从源码构建
npm install
npm run build # 按当前机器架构
npm run build:arm64
npm run build:x64首次构建自动下载 Electron 33.4.11 darwin-<arch> 与 PowerShell 7.6.6 osx-<arch>
到 vendor/(带完整性校验、断点续传,直连/代理/npmmirror 三级回退)。
产物:dist/寒霜破甲工具.app