68%
Load 7.91 · 12 cores
Unified-memory pressure · Apple Silicon
Searoom is a quiet menu-bar instrument for watching memory pressure and the capacity that matters while local LLMs and other heavy work are running.
SEAROOM
68%
Load 7.91 · 12 cores
27/36GB
Free 8.6GB · Swap 0.4GB
82%
Graphics load
68°C
CPU sensor · 2400 RPM · 2380 RPM
↓ 18.4 MB/s
↑ 1.2 MB/s
F1 2400 · F2 2380
01D 09H
Open, understand, and get back to work in seconds.
Low-frequency collection keeps the observer out of the way.
Unsupported hardware sensors are shown as unavailable, never zero.
Searoom reports its own CPU and memory footprint.
The instrument
Searoom keeps the load-bearing signals together, pairs every pressure color with a state word or value, and retains a bounded local history for useful trends.
Current utilization, load average, and a clearly labeled derived saturation signal.
Working set, reclaimable capacity, cache, pressure, and swap activity.
macOS thermal state plus best-effort temperature and fan telemetry when available.
Live download, upload, disk read, disk write, and swap byte rates.
Best-effort GPU utilization with graceful behavior on unsupported hardware.
The final telemetry line always shows Searoom’s own CPU, RAM, and sample interval.
What you can do with it
The instrument reads the same signals for everyone. What it shows you, where, how often, and how far back is a set of choices, and all of them are remembered.
Up to five of twenty-five metrics, in any order, stacked or inline. Pick none and it shows the mark alone.
Drag a dashboard card, or reorder from a keyboard and VoiceOver accessible list. The order is kept.
From 15 minutes to 24 hours. A long window costs no more memory or disk than a short one.
Six trends share one hover, so a cause and its effect are marked at the same instant across cards.
Every whole second from 1 to 10, driven by a single timer with the expensive reads deliberately slower.
Record a global shortcut, and turn on launch at login if you want it there from the start.
Trackpad feedback on every control that has a stop, and one switch that turns all of it off.
The same signed binary is a searoom command. Read-only, offline, and it describes its own contract to whatever is parsing it.
No account, no analytics, no background updater. The version check runs only when you click it.
Local means local
No account, no analytics, no crash uploader, and nothing that reaches the network on its own schedule. Preferences and bounded trend history live locally.
A system instrument shouldn’t become another system to monitor.
Early open-source build · v0.7.0
Searoom is written in Swift 6 with direct AppKit rendering and no runtime dependencies. Clone the repository, build it, and keep an eye on the work that matters.
Terminal
Swift Package Manager$ git clone https://github.com/emaitchess/searoom.git
$ cd searoom
$ swift build --disable-sandbox
$ .build/debug/Searoom
Measured, not asserted
Four field notes were rewritten after a measurement session on a MacBook Pro, Apple M5 Pro, 48 GB, macOS 27.0 build 26A5425a, running Searoom 0.3.0 against two local models held in memory at once.
Loading a second model drove the working set to 43.69 GB and produced 225 MB of swap-out, with free memory falling to 0.05 GB and the compressor peaking at 17.17 GB first. The escalation order is in the second-model field note, and what it means for reading the counters is in swap I/O vs swap size.
Six minutes of continuous generation took both fans from 0 to roughly 5,000 RPM, and 70 seconds after the last request they had fallen by only about 2%. The full curve is in why your Mac’s fans spin up.
That same run reached a fair thermal state and was never throttled, so the throttling field note publishes a run that did not throttle rather than a curve we did not get. Where a measurement has not been run, the article says so instead of estimating, and every figure names the Mac, the macOS build, and the Searoom version that produced it.
Questions, answered from measurement
Short answers to the questions this site’s field notes already measured, each with the run or source behind it. The long versions are in the questions reference.
Searoom is one quiet sampler. Measured with powermetrics on an otherwise idle MacBook Pro, M5 Pro, 48 GB, macOS 27.0, Searoom 0.7.0 with the popover closed: about 4.2 timer wake-ups per second and 0.36% of one core at the default two-second cadence, roughly 110 MB resident, and zero wake-ups in the sub-5 ms deadline buckets; at a ten-second cadence it backs off to 0.8 wake-ups per second and 0.08% of one core. The full method and per-cadence tables are in the wake-ups field note.
Free and open-source under the MIT licence, and free forever — no account, no paid tier, nothing locked. The download page carries the checksums and the one-command Homebrew install.
No. There is no account, analytics, crash uploader, or remote configuration, and preferences and bounded trend history stay on the Mac. The one network request Searoom can make is a version check you start from Check for Updates, and it installs nothing. The full claims: what stays on the Mac.
Budget what a model occupies while generating, not its file size. Measured across five models under one identical workload at a 4096-token context on a 48 GB Mac (Searoom 0.3.0), resident cost ran from 88% to 195% of file size — worst at the small end, where a 2.78 GB file cost 5.43 GB. The run and the sizing method: how much RAM a local model really needs.
Read the thermal state macOS itself publishes — pmset -g therm in Terminal, or the thermal state in Searoom — rather than a thermometer. Degradation starts at fair, not serious: measured under sustained inference, the two heaviest workloads of a five-model run lost 26.3% and 32.9% of throughput inside fair without ever reaching serious, and a control model that never left nominal stayed flat. What the states cost: the thermal throttling reference.