dparedesi

mac-health

1
1
# Install this skill:
npx skills add dparedesi/agent-global-skills --skill "mac-health"

Install specific skill from multi-skill repository

# Description

Quick Mac system health check with battery, RAM, CPU status and actionable recommendations. Use when user mentions "mac health", "mac status", "mac performance", "battery check", "ram usage", "what's eating memory", "should I kill any process", or "mac running slow".

# SKILL.md


name: mac-health
description: Quick Mac system health check with battery, RAM, CPU status and actionable recommendations. Use when user mentions "mac health", "mac status", "mac performance", "battery check", "ram usage", "what's eating memory", "should I kill any process", or "mac running slow".


Mac Health Check

Why? Quickly diagnose if your Mac is struggling and get actionable fixes without digging through Activity Monitor.

Quick Start

"check my mac health" β†’ battery, RAM, CPU summary + recommendations

Workflow

Step 1: Gather System Metrics

Run these commands in parallel:

# Battery status
pmset -g batt

# RAM overview (total + usage)
system_profiler SPHardwareDataType | grep "Memory"
vm_stat

# Top processes by memory (top 5)
ps aux -m | head -6

# Top processes by CPU (top 5)  
ps aux -r | head -6

# Network speed (built-in macOS tool)
networkQuality

[!NOTE]
Validation checkpoint: Verify all commands succeeded before proceeding. If pmset returns nothing, you're on a desktop Mac β€” skip battery. If vm_stat fails, fall back to top -l 1 for memory info.

Step 2: Format Concise Output

Present as a brief summary, NOT tables. Example format:

πŸ”‹ Battery: 73% (discharging, ~20h remaining)
πŸ’Ύ RAM: 17.1GB / 24GB used (71%)
⚑ CPU: Light load
🌐 Network: ⬇️ 262 Mbps ⬆️ 26 Mbps (36ms latency)

Top memory: Amp (478MB), Passwords (320MB), Spotlight (310MB)
Top CPU: WindowServer (3.2%), Amp (2.1%), Finder (0.8%)

Step 3: Analyze & Recommend

[!TIP]
Keep output concise β€” users want a quick health check, not a system report.

Apply these thresholds and provide recommendations:

Battery:
- < 20%: "⚠️ Consider plugging in soon"
- < 10%: "πŸ”΄ Critical β€” plug in now"

RAM:
- > 85% used: "⚠️ Memory pressure high"
- > 95% used: "πŸ”΄ System may slow down β€” consider closing apps"
- Any single process > 2GB: Flag it for potential action

CPU:
- Any process > 80% sustained: "⚠️ [Process] using significant CPU"
- Any process > 150%: "πŸ”΄ [Process] may be stuck β€” consider force-quitting"

Network:
- Download < 10 Mbps: "⚠️ Slow download speed"
- Upload < 5 Mbps: "⚠️ Slow upload speed"
- Latency > 100ms: "⚠️ High latency β€” may affect video calls"

Common recommendations:
| Condition | Recommendation |
|-----------|----------------|
| mds_stores high CPU/RAM | "Spotlight indexing β€” will settle down" |
| kernel_task high CPU | "Thermal throttling β€” check ventilation" |
| WindowServer high | "GPU load from UI β€” normal if using many windows" |
| Inactive app using >1GB | "Consider quitting [app] to free memory" |

Step 4: Offer Actions

[!CAUTION]
Only offer to kill a process if it's clearly stuck (>150% CPU) or the user explicitly asks.

If issues found, offer:
- "Want me to kill [process]?" (if clearly stuck)
- "Should I check what's causing [issue]?"

If healthy:
- End with "βœ… System looks healthy β€” no action needed"

Examples

Example 1: Healthy System

πŸ”‹ Battery: 73% (discharging, ~20h remaining)
πŸ’Ύ RAM: 17.1GB / 24GB (71%) β€” healthy
⚑ CPU: Light load (< 10% average)
🌐 Network: ⬇️ 262 Mbps ⬆️ 26 Mbps (36ms latency)

Top memory: Amp (478MB), Passwords (320MB), Spotlight (310MB)
Top CPU: WindowServer (1.0%), Amp (0.7%), Finder (0.3%)

βœ… System looks healthy β€” no action needed

Example 2: Low Battery + High RAM

πŸ”‹ Battery: 8% (discharging, ~45min remaining)
   πŸ”΄ Critical β€” plug in now!
πŸ’Ύ RAM: 22.8GB / 24GB (95%)
   πŸ”΄ Memory pressure critical β€” consider closing apps
⚑ CPU: Moderate load

Top memory: Chrome (4.2GB), Slack (1.8GB), Docker (1.5GB)
Top CPU: Chrome Helper (12%), Docker (8%), Spotlight (5%)

⚠️ Chrome using 4.2GB β€” consider closing unused tabs
⚠️ Docker using 1.5GB β€” quit if not needed

Want me to help close any of these?

Example 3: Stuck Process

πŸ”‹ Battery: 45% (charging)
πŸ’Ύ RAM: 14GB / 24GB (58%) β€” healthy
⚑ CPU: High load

Top memory: Xcode (2.1GB), Simulator (890MB), Safari (650MB)
Top CPU: node (187%), Xcode (45%), coreaudiod (12%)

πŸ”΄ node at 187% CPU β€” likely stuck or in infinite loop
   Process running for 8+ minutes at this level

Want me to kill the stuck node process (PID 12847)?

Troubleshooting

Issue Cause Fix
pmset returns nothing No battery (desktop Mac) Skip battery section
vm_stat weird numbers Values are in pages Multiply by 16384 / 1048576 for MB
Process names truncated ps default column width Use ps aux -m -o pid,rss,comm for full names
RAM numbers don't add up macOS uses compressed/cached memory Focus on "active + wired" as true usage
High CPU but system feels fine Brief spikes are normal Only flag if sustained >30 seconds

Quality Rules

Output Validation Checklist

Before presenting results, verify:
- [ ] All four sections present (Battery, RAM, CPU, Network)
- [ ] Percentages calculated correctly (used/total Γ— 100)
- [ ] Top processes listed for both memory AND CPU
- [ ] Recommendations match thresholds (not arbitrary)
- [ ] Emojis used consistently (πŸ”‹πŸ’Ύβš‘πŸŒ for sections, βš οΈπŸ”΄βœ… for status)

Anti-Patterns to Avoid

Don't Do Instead
Show raw vm_stat output Convert pages to MB/GB
List 10+ processes Top 3-5 only
Use technical jargon Plain language ("memory pressure" not "page faults")
Recommend killing system processes Only suggest for user apps
Give advice without thresholds Always cite the threshold being exceeded

Naming Conventions

  • Battery states: "charging", "discharging", "fully charged", "not charging"
  • RAM levels: "healthy" (<85%), "high" (85-95%), "critical" (>95%)
  • CPU levels: "light" (<30%), "moderate" (30-60%), "high" (>60%)
  • Network levels: "slow" (download <10Mbps), "moderate" (10-50Mbps), "fast" (>50Mbps)

Testing

Evaluation Scenarios

Scenario Input Condition Expected Behavior
Healthy system RAM <85%, CPU <30%, Battery >20% Shows "βœ… System looks healthy"
Low battery Battery <10% Shows πŸ”΄ critical warning
High RAM RAM >95% Shows πŸ”΄ + suggests closing apps
Stuck process Any process >150% CPU Offers to kill with PID
Desktop Mac No battery (iMac, Mac Mini, Mac Pro) Skips battery section gracefully
Memory hog Single process >2GB Flags for potential action
Slow network Download <10 Mbps Shows ⚠️ slow download warning
High latency Latency >100ms Shows ⚠️ latency warning

Model Coverage

  • Tested on: Sonnet, Haiku
  • Edge cases verified: Desktop Mac (no battery), fresh boot (low usage), compile job (high CPU spike)

Validation Commands

# Verify battery section works
pmset -g batt

# Verify RAM calculation
vm_stat | head -5

# Verify process listing
ps aux -m | head -3

# Verify network test works
networkQuality

# Supported AI Coding Agents

This skill is compatible with the SKILL.md standard and works with all major AI coding agents:

Learn more about the SKILL.md standard and how to use these skills with your preferred AI coding agent.