Run a few agents and the fans take off. Manatee finds out who it is and how long it has been running hot, then moves it to the efficiency cores — the task keeps running.
$ brew install --cask luogao/tap/manatee
Lives in the menu bar·macOS 13+·Apple Silicon·MIT licensed
70.6 → 44.9℃
Measured at 8 threads pegged, peak to settle
−25.7℃
Peak drop from a single cool-down
25s
9℃ down during a real runaway Claude Code
Activity Monitor counts processes. Manatee counts sessions — the dozen node processes one agent spawns show up here as a single line.
Activity Monitor / Stats / iStat
14 node processes adding up to 340%, and no way to tell whose.
Manatee
One session, 14 child processes, folded into one line.
The usual approach
"Kill the process." The temperature drops right away, and the task starts over from scratch.
Manatee
"Move it to the efficiency cores." The threads keep running, they just stop competing for the performance cores.
The usual approach
"How hot is it right now." One instantaneous reading, forgotten the moment you close the window.
Manatee
"Who burned the most CPU this week." Archived by session, look back any time.
No dashboard home page, no account, no onboarding flow. Click it and that is everything.
The hottest sensor sits next to the clock, so you never open a window just to glance at a temperature.
The dozen processes of one agent fold into a single line — counted by session, not by pid.
It lowers the scheduling class and the threads keep running. Context, temp files, uncommitted changes — all still there.
Something is only flagged once it crosses your threshold and stays there. Both are adjustable.
Who is holding 5173, who still has 7788 up, and how long each has been alive.
One hour to 30 days of CPU time, temperature curves and port history — all stored locally.
Manatee calls the built-in taskpolicy to drop the target process from User Initiated to Background QoS. The performance cores go back to foreground work; the efficiency cores keep running your task.
This is not SIGSTOP — the process never halts. And it is not nice — on Apple Silicon that priority scheme does not influence core assignment.
Restoring is just as simple: put the QoS back and the threads return to the performance cores. No restart, no lost context.
Requires macOS 14 or later. No account, no subscription.
01 / HOMEBREW
It appears in the menu bar right after installing. On first launch, just allow it to read the sensors.
02 / RELEASES
Grab the latest from Releases and drag it into Applications.
03 / SOURCE
Open the project in Xcode 16, then Build & Run.
No. Manatee only changes the scheduling class. The process does not exit and terminal output keeps flowing. Click once to restore.
Depends on the work. Compute-bound tasks slow down noticeably; network- and IO-bound ones barely notice. In testing, 8 pegged threads survived start to finish while the chip went from 70.6℃ to 44.9℃.
They count by process; Manatee merges by session. One Claude Code session may spawn a dozen node processes, and you only need one line: who it is, how hot, and for how long.
No. It changes the QoS of processes you started yourself, which normal user permissions cover.
Claude Code, Codex CLI, Cursor, Gemini CLI, Aider, Copilot CLI, Ollama, LM Studio and Xcode Build — 12 in total, each with its own toggle in settings.
No. Temperature, ports and history are read and written locally only. No account, no telemetry.