Skip to content

Releases: viraatdas/battery

BatteryScope 1.0.0

Choose a tag to compare

@viraatdas viraatdas released this 18 Aug 01:27

Find out where your Mac's battery — and its responsiveness — actually goes.

BatteryScope records what your Mac is doing, continuously, and answers two
questions macOS won't: where the battery went, and why the machine froze.

What makes it different

It names the terminal tab. "Ghostty — 41%" is useless with eight tabs open.
BatteryScope finds the tab in the process tree and labels it with the folder it
is sitting in — the same thing your terminal puts in its title — so the row
reads battery — claude, which tells you exactly which tab to go close. No
accessibility permission, no screen recording.

It names the app you launched, not the helper. An Arc renderer is walked up
to Arc, because the process just below launchd is what a person actually
started.

It groups coding agents into sessions. An orchestrator running eight agents
is one row holding 11 GB, not eight identical claude rows.

It knows when your Mac stalled, and what was holding it. Memory pressure,
swap thrash, CPU saturation, thermal throttling, and disk saturation are sampled
every five seconds. If the sampler itself could not get scheduled — the hardest
evidence of a real freeze there is — that gap is recorded too, and told apart
from sleep by comparing the monotonic clock against the wall clock.

Install

Download the DMG below, drag BatteryScope to Applications, then:

open /Applications/BatteryScope.app

To keep it sampling in the background and start at login, clone the repo and run
./Scripts/install-agent.sh — no root, no password.

Per-app energy attribution (as opposed to CPU) additionally needs
powermetrics, which is root-only: sudo ./Scripts/install-daemon.sh.

Requirements

macOS 14 or later. Apple silicon or Intel.