Oversee: why your Mac's system monitor is lying to you

I'm a heavy htop and btop++ user. They're excellent. But on my Apple Silicon Mac, both of them leave out the two things I most want to see: the GPU cores, and what's actually going on with memory.

So I built Oversee — a terminal system monitor written in Rust, focused specifically on getting Apple Silicon right.

The two things that were missing

The first was simple: I wanted to see CPU and GPU cores in one place. On Apple Silicon the GPU is doing a lot of work, and most cross-platform monitors either ignore it or report nothing.

The second was more subtle, and it's the part worth explaining: memory.

If you've come to macOS from Windows or Linux, you've probably opened a system monitor, seen your Mac using 70-80% of its RAM with barely anything open, and panicked. Don't. That number is almost meaningless on its own — and a monitor that only shows "used / swap" is actively misleading you.

Unused RAM is wasted RAM

macOS follows a simple principle: unused RAM is wasted RAM. When you close an app, the OS doesn't immediately purge it from memory — it marks those pages purgeable but keeps the data cached, so relaunching the app is instant. That's why Safari's second launch of the day feels instantaneous compared to the first.

Then there's memory compression. Where Windows and Linux traditionally swap inactive pages to disk — slow — macOS first compresses them in place, squeezing pages to roughly half their size while keeping them in RAM. Vacuum-packing your winter clothes instead of hauling them to the basement. You might see 12GB "used" of 16GB, but a good chunk of that can be compressed data the OS decompresses far faster than it could read from even the fastest SSD.

The upshot: percentage used is the wrong metric. The real signal is memory pressure. You can sit at 90% usage with green pressure and a perfectly responsive machine, because most of that memory is just discardable cache.

Measuring it correctly

So Oversee doesn't lead with "percent used." It reads macOS's native pressure level directly from kern.memorystatus_vm_pressure_level and surfaces the same green / yellow / red indicator you see in Activity Monitor — because it's the same kernel metric underneath. Green means the system has room. Yellow means it's compressing. Red means it's genuinely struggling. That's the number that tells you the truth.

GPU monitoring on Apple Silicon comes from powermetrics, which needs root — so run it with sudo for real GPU numbers (without it, GPU reads zero, honestly, rather than guessing).

The build

It's Rust, built on ratatui for the terminal UI and sysinfo for the cross-platform bits, with the macOS-specific pressure and GPU code written against the kernel metrics directly. The interface is vim-native — j/k to move, g/G for top and bottom, / to filter processes by name, port or user. Timeline graphs use braille characters to pack smooth activity history into a few terminal rows.

It ships through both cargo and Homebrew:

cargo install oversee
# or
brew install abosnjakovic/oversee

What I took from it

The interesting part of this project wasn't the Rust or the TUI — it was realising how much of what we treat as "obvious" system information is actually platform-specific and frequently wrong. A monitor that shows you a number isn't useful if the number doesn't mean what you think it means. Getting it right meant going past the cross-platform abstraction and reading what the kernel actually reports.

Source is on GitHub, MIT licensed.