CPU 与内存
CPU 占用率;内存占用和组成,应用 / 联动 / 压缩 / 空闲分开列,还有磁盘剩余空间。
macOS · Apple Silicon · 菜单栏
实时看 CPU、内存、磁盘、网络、电池、亮度、进程占用,带趋势图和阈值告警,还有一个能拖来拖去的悬浮小窗。纯 SwiftUI 写的,数据全是系统接口直接读,没有第三方依赖,跑起来内存占用很低。
约 2.8 MB · macOS 14.0+ · arm64 · 全部功能免费,无付费墙
主界面分四个标签页:监控、剪贴板历史、工具箱、专注。悬浮窗和主界面平时都隐藏,不占屏幕;深浅色跟随系统。
CPU 占用率;内存占用和组成,应用 / 联动 / 压缩 / 空闲分开列,还有磁盘剩余空间。
电量、健康度、循环次数、充电状态、电池温度。插电和用电池时都能看。
当前亮度读数。走 DisplayServices 私有 API,系统大版本升级后若符号变化会自动降级为不可用。
上行、下行实时速率。
按 CPU / 内存排前十,横向条形图,进程名完整显示不截断。
温度、CPU、内存、网络的历史曲线,用 Swift Charts 画。
超过设定值就发系统通知、播提示音,菜单栏图标同时变红。
系统信息、二维码、单位换算、文本统计、编码、颜色、便签、常用文件夹、高级功能。
另外有全局热键、启动项管理、CPU 压力测试、Dock 温度角标、CSV 导出和多语言界面。软件只读硬件数据,不做任何写入 —— 风扇控制、亮度调节这些都没做。
这一块是照着「能当专注软件用」做的,计时、环境声、统计都在本地跑。
一键进全屏专注视图,只剩超大倒计时和进度环,Esc 退出。
计时用单调时钟锚点法(CACurrentMediaTime),不靠 Timer 累减。睡眠唤醒、系统时间跳变后自动重校准,界面同时显示毫秒级系统时间与校准偏差。
实时分贝、噪音等级(安静 / 适中 / 吵闹 / 太吵)和波形。可随时关闭,关闭后完全不占用麦克风,系统指示灯会熄灭。
内置 13 种系统音效,也能选自己的音频文件(mp3 / wav / m4a / aiff / caf,自动复制到应用支持目录),音量单独可调,支持试听。
自定义专注时长、短休 / 长休分钟数、每几轮长休、自动开始下一轮;按天统计完成番茄数与累计专注时长。
雨声 / 海浪 / 风扇三种环境声,用 AVAudioEngine 本地合成,8 秒无缝循环。不含任何音频素材,不联网、不录音,音量独立可调。
近 7 天柱状图(今天高亮)、连续专注天数、今日番茄数与累计时长。每日数据本地保存 30 天,跨天自动滚动。
首次启动自动播放漫游式教程,17 步逐个功能介绍;切页后气泡平滑跟位,结束自动回到监控主界面。设置里可以重新播放。
这两件事经常被问,写清楚省得猜。
Apple Silicon 上芯片温度不在 SMC 里,而是挂在 HID 传感器集线器上(IOHIDEventSystemClient,usagePage 0xFF00)。本机实测能读到 45 个传感器:PMU tdie/tdev、NAND、电池、tcal 这些,芯片温度取全部 tdie 读数的最大值。
这个路径普通权限就能读,不需要 root。接口是私有 API,Swift 头文件里没有,所以是动态调出来的:
dlopen + dlsym → IOHIDEventSystemClient
usagePage 0xFF00 → 传感器列表
max(PMU tdie …) → 芯片温度
M 系列上风扇转速只有 SMC 的 F*Ac 这类 key 有,而新版 macOS 的 AppleSMCKeysEndpoint 对普通进程直接拒绝,所有参数组合都试过,一律 kIOReturnBadArgument。
有些工具能显示风扇,是因为内置了需要开发者证书签名的 root 特权助手,普通 App 装不了这个东西。所以这里显示 --。
SMC 协议代码是完整写好的,等系统接口放开,或者换正式版系统,就能自动恢复显示。Intel 机器上这条备用路径本来就能直接读温度和风扇。
当前版本 26DF10Q1beta2.1.1(2.1.1 / build 211)。两种格式装完是同一个 App,链接直接指向 GitHub Release,本站不存安装包。
当前版。专注音景、7 天统计、菜单栏自定义、CSV 导出都在这一版。macOS 14.0+ / Apple Silicon arm64。
0210fdf8add0a035c63402c0d643a637814f4ae225402e50a2bb78868831cc95
全部版本与更新日志 ↗
上面的框用来切版本、切格式;这里也把每个包的直接链接列出来,方便直接取或者写脚本下载。
.pkg,双击运行,一路「继续 / 安装」,自动装进「应用程序」。HardwareMonitor.app 拖进「应用程序」文件夹。本版本为 ad-hoc 签名、未做 Apple 公证,首次打开的安全提示属正常现象。若提示「已损坏」,终端执行:
xattr -dr com.apple.quarantine /Applications/HardwareMonitor.app
两种方式装好后都一样:启动时没有 Dock 图标,点菜单栏最右侧的温度计图标 → 「打开主界面」。
macOS 14+ 都能跑。开发机是 macOS 27 beta + Apple M5。Intel 机器理论上也支持,SMC 那条备用路径在 Intel 上可以直接读温度和风扇,但没有实机验证过。
Xcode 打开 HardwareMonitor.xcodeproj,选 My Mac,⌘R 运行。或者命令行:
./build.sh
open build/Build/Products/Debug/HardwareMonitor.app
未签名的本地构建第一次运行要右键打开,或者去系统设置里允许。要分发的话得自己签名公证。
格式 26DF10Q1beta{主}.{次}.{修},末段满 10 进 1:2.1.1 → 2.1.2 → … → 2.1.9 → 2.2.0。每次改代码都升,不只是发版才升。源码和提交记录在 GitHub ↗。