---
name: mac-fan-thermal-control
description: Diagnose macOS heat and fan behavior with read-only system evidence, then guide a reversible Macs Fan Control setup when the user explicitly wants a more active cooling curve. Use for a hot Mac, loud or inactive fans, background CPU heat, sustained compiling or rendering, or verifying fan settings after restart. Do not treat third-party readings as hardware diagnosis, redistribute the app, or change fan controls before checking load and ventilation.
---

# Mac Fan Thermal Control

Find the heat source before changing cooling behavior. Apple Automatic is the default safe state and the required rollback option.

Read [references/safety-and-sources.md](references/safety-and-sources.md) before recommending installation, choosing a sensor, or proposing temperatures.

## Workflow

### 1. Collect read-only evidence

```bash
python3 scripts/diagnose_thermal.py --output /tmp/mac-thermal-report.json
```

Use the report to check:

- Mac model, macOS version, power source, uptime, and thermal warnings
- Sustained CPU-heavy background processes
- Memory pressure that may drive extra work
- Whether Macs Fan Control is installed and running

Repeat process sampling if a single reading is ambiguous. Do not kill processes, disable services, or install software during diagnosis.

### 2. Fix the actual heat source first

Close or pause a runaway process only with user approval. Move the Mac to a stable, ventilated surface and confirm the ambient environment is reasonable. If Apple reports thermal warnings, shutdowns, unusual smells, battery swelling, or persistent heat at idle, stop software tuning and recommend qualified service.

### 3. Offer fan control only when useful

If the user explicitly wants it, install from the vendor or Homebrew:

```bash
brew install --cask macs-fan-control
```

The user must handle administrator authorization. Never request, store, type, or automate their password. Do not bundle the third-party application with this skill.

### 4. Choose a sensor and curve on the current Mac

Inspect the sensors actually shown by the application. Prefer a stable CPU average or proximity sensor when available.

Start conservatively. A 55–75°C curve is an example for sustained work, not a universal default. A more aggressive 50–70°C example increases noise and fan use and requires explicit confirmation. Never copy either range without checking the model, workload, reported sensors, and user preference.

### 5. Verify and preserve rollback

Under representative load, verify that:

- the selected sensor changes plausibly;
- fan RPM rises and falls with temperature;
- CPU load and temperature are observed together;
- the system remains stable and ventilation is unobstructed;
- login-item behavior is correct after restart if the user enabled it.

Show the user how to return every fan to **Auto / Apple Automatic**. If readings or behavior are inconsistent, roll back rather than increasing fan speed further.

## Safety boundaries

- Diagnose first; fan control is optional mitigation, not a cure for runaway software or blocked airflow.
- Never promise lower temperatures from a curve before measuring under comparable load.
- Never automate a privileged helper, password entry, or unsupported command-line control.
- Stop at read-only reporting unless the user has explicitly asked to install or change settings.
