关于 mac-optimizer
mac-optimizer 用于分析 macOS 性能和电池状态,并帮助 Agent 按优先级整理优化建议。它适合排查资源占用、后台活动和电量消耗。
主要功能
- 01检查内存、CPU、进程和磁盘
- 02识别浏览器及后台服务占用
- 03收集电池健康与功耗数据
- 04按影响程度整理建议
适用场景
- 01排查 Mac 运行缓慢
- 02查找占用内存或 CPU 的进程
- 03诊断电池电量快速耗尽
- 04检查后台服务和唤醒活动
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ skalinets/ mac_optimizer --skill mac-optimizer安装后在 Claude Code 中输入/mac-optimizer确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
README.mdmac-optimize.shmac-battery.shagents/background-services-auditor.mdsleep-wake-auditor.mdpower-hog-hunter.mdbattery-health-analyst.md详细介绍
Mac 性能优化器
分析 macOS 系统的当前状态,并提供可操作的优化建议。
适用场景
- 用户要求“检查性能”“优化我的 Mac”或询问“我的 Mac 为什么这么慢”
- 用户想检查正在运行的进程、内存或 CPU 使用情况
- 用户要求检查系统健康状况或分析资源使用情况
- 用户说电池耗电很快,只能用几个小时,或询问是什么在耗电(参见下文“电池模式”)
如何运行
运行分析脚本(路径相对于此技能的安装位置):
bash "$(dirname "$(readlink -f "$0" 2>/dev/null || echo "$HOME/.claude/skills/mac-optimizer")")/mac-optimize.sh"
或者,如果此技能通过 npx skills add 安装:
bash "$HOME/.claude/skills/mac-optimizer/mac-optimize.sh"
如何分析输出
运行脚本后,分析输出,并按影响级别(HIGH / MEDIUM / LOW)提供建议。
需要评估的关键指标
-
内存压力 — 检查物理 RAM 与已用内存、交换空间使用量和压缩器大小。
- 交换空间使用量 > RAM 的 50% = 压力较大
- 可用内存 < 500MB = 危急
- 压缩器 > RAM 的 50% = 系统运行吃力
-
浏览器臃肿 — 统计浏览器进程数量和 RAM 总占比。
- Chrome/Brave 进程 >50 个 = 标签页过多
- 同时运行多个 Chromium 浏览器 = RAM 使用重复
- 建议安装标签页休眠扩展或关闭标签页
-
Claude Code 会话 — 每个会话都会占用内存。
- 闲置会话 >3 个 = 建议关闭未使用的会话
-
容器运行时 — Docker/OrbStack 虚拟机会占用大量 RAM。
- 如果当前未使用,建议停止
-
启动守护进程和 Agent — 来自不需要的应用的后台服务。
- 标记未在使用的应用所运行的守护进程(TeamViewer、Zoom、不需要的更新程序)
- 标记功能重复的项目(例如,两个 NTFS 驱动程序)
-
长期运行的进程 — 累计 CPU 时间较长的进程。
- 可能表明存在内存泄漏或失控进程
- 如果运行时间过长,建议重启
-
磁盘空间 — 可用空间 < 20GB 时标记。
-
系统运行时间 — 如果 > 7 天,建议重启以释放交换空间并重置压缩器。
回复格式
按以下格式呈现分析结果:
- 摘要表格 — 包含带状态指示的关键指标
- 资源占用大户 — 按资源使用量从高到低排列
- 建议 — 按 HIGH / MEDIUM / LOW 影响级别分组
- 快速优化 — 用户可立即运行的可复制粘贴命令
快速优化命令示例
# Quit an app not in use
osascript -e 'quit app "AppName"'
# Purge inactive memory (temporary relief)
sudo purge
# Enable low power mode on battery
sudo pmset -b lowpowermode 1
# Disable a launch daemon (modern macOS — do NOT use launchctl unload)
sudo launchctl bootout system /Library/LaunchDaemons/com.example.plist
# Prevent it from loading on next boot
sudo launchctl disable system/com.example.service
# List and kill heavy processes
kill -TERM <PID>
电池模式
当用户反馈的是电池续航问题,而不是速度慢时,使用此模式。分两步:收集信息,然后分派给一个小型 Agent 团队。
1. 收集
bash "$HOME/.claude/skills/mac-optimizer/mac-battery.sh"
无需 sudo。脚本会报告电池健康状况(容量与设计容量对比、循环次数、实时放电功率、预计续航时间)、电池 pmset 配置文件、按功耗影响排序的进程、占用资源较多的浏览器渲染进程、聊天和同步应用、已知耗电诱因(打开活动监视器、caffeinate、多个 Claude Code 会话、tmux 窗格数量、系统运行时间过长)、睡眠断言以及 24 小时唤醒次数。
2. 分派给 Agent 团队
在一条消息中启动全部四个 Agent,让它们并行运行。使用 Agent 工具,并设置 subagent_type: general-purpose。对于每个 Agent,读取此技能目录中的 agents/<name>.md,从 frontmatter 中获取 model:,并将 Markdown 正文用作提示词。在提示词中传入相关脚本部分,避免 Agent 重新收集信息。
| Agent | 模型 | 选择该模型的原因 |
|---|---|---|
battery-health-analyst | haiku | 对 7 个数字进行算术运算并套用固定阈值,无需判断。 |
sleep-wake-auditor | haiku | 统计日志行数,并将原因对应到已知的 pmset 标志。 |
power-hog-hunter | sonnet | 必须识别未知进程,并判断其用电是否合理。 |
background-services-auditor | sonnet | 必须了解第三方 Agent 和应用的用途。 |
如果脚本已显示电池健康且暗唤醒次数少于 10 次,则不要启动两个 haiku Agent。在主模型上自行完成综合分析。不要委派综合分析。
如果 ~/.claude/agents/ 中存在已安装的 Agent(参见 README),则改用 subagent_type: <name>,并跳过复制提示词。
3. Agent 无法完成的事项
- 将浏览器渲染器 PID 对应到具体标签页。用户必须打开浏览器任务管理器。
- 测量各进程以瓦特为单位的能耗,或 GPU 和显示屏的耗电量。这需要使用
sudo powermetrics。请将命令提供给用户,并表示可以帮助解读输出。 - 运行任何
sudo命令。请打印命令并告知用户自行运行。
4. 综合分析
将四份报告汇总为一份答复:
- 结论行:根据电池健康分析结果,说明耗电短缺中硬件与软件各自所占的比例。
- 瓦特数表格:当前功耗、预计续航时间,以及耗电最多的 5 个项目和预计可节省的电量。
- 操作建议:按每单位操作成本可节省的瓦特数排序。退出应用优于更改 pmset 设置,更改 pmset 设置优于清理启动 Agent。
- 更换电池:当健康度低于 80% 时,将其作为单独一项列出。不要将其埋在其他建议中。
阈值:功耗低于 10 W 属于正常,10–20 W 属于中等,超过 20 W 表示软件正在大量耗电。容量低于 80% 或显示“建议维修”意味着更换电池是目前效果最大的单项措施。
重要提示:launchctl unload 已弃用,并且在新版 macOS 上会失效。请始终改用 launchctl bootout / launchctl disable。这些命令需要 sudo——请告知用户直接在自己的终端中运行。
建议使用 kill 前,务必先提醒用户——对于图形界面应用,优先使用 osascript -e 'quit app'。