业余时间写了两个 macOS 小工具,都是为了解决我自己遇到的问题。用了一段时间觉得还算顺手,拿出来分享给各位。两个都是 Swift 原生开发,免费,采用 GPL-3.0 开源,安装包经过 Apple 签名和公证。
一、FanBar:看得见的风扇控制
GitHub:https://github.com/helson-lin/FanBar
起因
某天深夜用 Xcode 编译,MacBook 的风扇突然狂转起来。我想知道现在到底多少度、风扇转了多少,结果翻遍系统也找不到。macOS 会自动管理风扇,但完全不告诉你它在做什么。
我试过 Macs Fan Control 和 iFan,两个都挺好用,但都是闭源的,前者高级功能还要付费。对于一个需要 root 权限、直接读写硬件的工具,我更希望代码是能看到的。我的要求其实就三条:免费、开源、常驻菜单栏。找了一圈没找到同时满足三条的,于是自己写了一个。
它能做什么
- 随时看一眼:菜单栏直接显示 CPU 温度和风扇转速;展开面板能看到 CPU、GPU、SSD、电池的实时温度,还有近 10 分钟的温度曲线。
- 写代码、导视频时:切到「性能」或「极限」模式,让风扇提前介入,别等降频了才反应过来。
- 深夜或者开会时:切到「静音」,让机器安静下来。
- 平时:用「均衡」,或者自己拖曲线,定义每个温度对应的转速。
- 另外还有 90°C 高温提醒、桌面小组件(macOS 14+)、中英双语界面。
我比较在意的安全问题
- 权限隔离:菜单栏程序本身不需要 root 权限。只有一个通过 XPC 通信的特权 Helper 可以读写 AppleSMC。
- 出错自动兜底:只写入硬件上报范围内的值。退出应用或 Helper 崩溃时,风扇控制会自动交还给 macOS。
- 不需要绕过系统保护:安装包经过 Developer ID 签名和 Apple 公证。
支持 macOS 11+,Apple Silicon 完整支持;Intel 机型需要能访问 AppleSMC,2016 年以后的大多数机型都可以。
brew tap helson-lin/fanbar https://github.com/helson-lin/FanBar.git
brew install --cask helson-lin/fanbar/fanbar
设计思路写得更细的版本发在了少数派,感兴趣可以看看:https://sspai.com/post/115023

二、Dual:一个 Mac 登两个微信
GitHub:https://github.com/helson-lin/Dual
起因
工作号和生活号分开,是很多人的刚需。在 Mac 上,想同时开两个微信或者两个 TG,常见做法是在终端里 open -n,或者手动复制一份 .app、改 Bundle ID、重新签名。第一种关掉就没了,第二种步骤多、容易出错,应用一更新又得重来一遍。
我想要的是:拖进去,点一下,得到一个能长期用的独立副本。这就是 Dual。
它能做什么
- 一键克隆:把任意 .app 克隆成一个独立副本,有自己的名称、Bundle ID 和数据目录,可以和原应用同时运行、互不干扰。可以直接拖进来,也可以从「应用程序」里选。
- 常用应用做过专门适配:微信、QQ、Telegram、Discord 以及 Electron 类应用,会自动处理 Helper 重命名、用户数据隔离这些细节,克隆完就能正常登录。
- 克隆完直接能打开:自动去除隔离属性并重新签名,不用自己在终端里折腾。
- 分得清主号和小号:可以给克隆的应用加角标,Dock 里一眼就能区分。
- 原应用更新后知道要不要重做:Dual 会记录每个克隆对应的原应用和状态,以前手动做的克隆也能导入进来管理。
- 出问题好排查:内置实时日志面板。
支持 macOS 12+,Apple Silicon 和 Intel 都支持。
brew tap helson-lin/tap
brew install --cask helson-lin/tap/dual
也可以去 GitHub Releases 下载 DMG。
微信、QQ、Discord、Telegram、企业微信、AliMail 我都实测过。其他应用大多也能克隆,但没有逐一验证。另外,部分应用的用户协议可能不允许多开,使用前请自己留意。

最后
两个工具目前都是按我自己的机器和使用习惯调出来的。FanBar 的默认曲线是在 MacBook 上调的,特别想听听 Intel 机型、Mac mini、iMac 用户的反馈;Dual 如果遇到哪个应用克隆后打不开,也欢迎告诉我。
有问题可以直接在帖子里回复,或者去 GitHub 提 issue。觉得有用的话,给个 Star 就是对我最大的支持。
提前祝各位国庆快乐。