mcpField
M
mac-optimizer

mac-optimizer

github.com/skalinets其他1155 次安装8 周前更新
代码仓库

关于 mac-optimizer

mac-optimizer 用于分析 macOS 性能和电池状态,并帮助 Agent 按优先级整理优化建议。它适合排查资源占用、后台活动和电量消耗。

主要功能

  1. 01检查内存、CPU、进程和磁盘
  2. 02识别浏览器及后台服务占用
  3. 03收集电池健康与功耗数据
  4. 04按影响程度整理建议

适用场景

  1. 01排查 Mac 运行缓慢
  2. 02查找占用内存或 CPU 的进程
  3. 03诊断电池电量快速耗尽
  4. 04检查后台服务和唤醒活动

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/skalinets/mac_optimizer --skill mac-optimizer

安装后在 Claude Code 中输入/mac-optimizer确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

README.md
mac-optimize.sh
mac-battery.sh
agents/
background-services-auditor.md
sleep-wake-auditor.md
power-hog-hunter.md
battery-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)提供建议。

需要评估的关键指标
  1. 内存压力 — 检查物理 RAM 与已用内存、交换空间使用量和压缩器大小。

    • 交换空间使用量 > RAM 的 50% = 压力较大
    • 可用内存 < 500MB = 危急
    • 压缩器 > RAM 的 50% = 系统运行吃力
  2. 浏览器臃肿 — 统计浏览器进程数量和 RAM 总占比。

    • Chrome/Brave 进程 >50 个 = 标签页过多
    • 同时运行多个 Chromium 浏览器 = RAM 使用重复
    • 建议安装标签页休眠扩展或关闭标签页
  3. Claude Code 会话 — 每个会话都会占用内存。

    • 闲置会话 >3 个 = 建议关闭未使用的会话
  4. 容器运行时 — Docker/OrbStack 虚拟机会占用大量 RAM。

    • 如果当前未使用,建议停止
  5. 启动守护进程和 Agent — 来自不需要的应用的后台服务。

    • 标记未在使用的应用所运行的守护进程(TeamViewer、Zoom、不需要的更新程序)
    • 标记功能重复的项目(例如,两个 NTFS 驱动程序)
  6. 长期运行的进程 — 累计 CPU 时间较长的进程。

    • 可能表明存在内存泄漏或失控进程
    • 如果运行时间过长,建议重启
  7. 磁盘空间 — 可用空间 < 20GB 时标记。

  8. 系统运行时间 — 如果 > 7 天,建议重启以释放交换空间并重置压缩器。

回复格式

按以下格式呈现分析结果:

  1. 摘要表格 — 包含带状态指示的关键指标
  2. 资源占用大户 — 按资源使用量从高到低排列
  3. 建议 — 按 HIGH / MEDIUM / LOW 影响级别分组
  4. 快速优化 — 用户可立即运行的可复制粘贴命令
快速优化命令示例
# 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-analysthaiku对 7 个数字进行算术运算并套用固定阈值,无需判断。
sleep-wake-auditorhaiku统计日志行数,并将原因对应到已知的 pmset 标志。
power-hog-huntersonnet必须识别未知进程,并判断其用电是否合理。
background-services-auditorsonnet必须了解第三方 Agent 和应用的用途。

如果脚本已显示电池健康且暗唤醒次数少于 10 次,则不要启动两个 haiku Agent。在主模型上自行完成综合分析。不要委派综合分析。

如果 ~/.claude/agents/ 中存在已安装的 Agent(参见 README),则改用 subagent_type: <name>,并跳过复制提示词。

3. Agent 无法完成的事项
  • 将浏览器渲染器 PID 对应到具体标签页。用户必须打开浏览器任务管理器。
  • 测量各进程以瓦特为单位的能耗,或 GPU 和显示屏的耗电量。这需要使用 sudo powermetrics。请将命令提供给用户,并表示可以帮助解读输出。
  • 运行任何 sudo 命令。请打印命令并告知用户自行运行。
4. 综合分析

将四份报告汇总为一份答复:

  1. 结论行:根据电池健康分析结果,说明耗电短缺中硬件与软件各自所占的比例。
  2. 瓦特数表格:当前功耗、预计续航时间,以及耗电最多的 5 个项目和预计可节省的电量。
  3. 操作建议:按每单位操作成本可节省的瓦特数排序。退出应用优于更改 pmset 设置,更改 pmset 设置优于清理启动 Agent。
  4. 更换电池:当健康度低于 80% 时,将其作为单独一项列出。不要将其埋在其他建议中。

阈值:功耗低于 10 W 属于正常,10–20 W 属于中等,超过 20 W 表示软件正在大量耗电。容量低于 80% 或显示“建议维修”意味着更换电池是目前效果最大的单项措施。

重要提示:launchctl unload 已弃用,并且在新版 macOS 上会失效。请始终改用 launchctl bootout / launchctl disable。这些命令需要 sudo——请告知用户直接在自己的终端中运行。

建议使用 kill 前,务必先提醒用户——对于图形界面应用,优先使用 osascript -e 'quit app'。

评论

支持 Markdown