A tiny macOS menu bar app that shows your laptop's health as thin lines drawn on the edge of your screen. Each line's length is the metric's level; its color tells you how healthy it is. Lines stack from the screen edge inward:
- Battery (outermost) — length = charge level
- CPU load — length = total CPU usage
- Memory used — length = fraction of RAM in use (active + wired + compressed)
- Network in / out — log-scaled throughput (each quarter of the line is one decade, 10 KB/s → 100 MB/s)
Automatic (default) shows only what matters right now — on a quiet machine that's a single memory line. Other lines appear when they have something to say and retract when the moment passes:
- Battery appears while charging, or when discharging below ~40%
- CPU appears when load crosses 60%, retracts once it calms below 45%
- Network lines appear above ~500 KB/s sustained, retract below 100 KB/s
Entry and exit thresholds differ (hysteresis) so lines don't flicker at the boundary.
Manual lets you pin exactly the lines you want, from the menu bar icon.
Move the cursor to the line strip and a small tooltip shows the exact values — and who's responsible:
Battery 83% — chargingCPU 63%, with the top consumers below (Chrome 34% · Xcode 21%)Memory 63% — 10.1 GB / 16 GB, with the top apps by RAMNet ↓ 8.4 MB/s · Net ↑ 120 KB/s
The overlay stays fully click-through; hovering is detected by watching the
cursor position, so no clicks are ever swallowed. Per-app stats are sampled
(via ps, and nettop for network) only while the tooltip is visible —
network attribution needs two samples 1s apart, so it appears a beat after
the others.
The real thing — actual screen pixels, manual mode, all lines pinned (blue battery = full on AC, green CPU = calm, yellow memory = getting warm):
Battery color = what the battery is doing:
| Color | Meaning |
|---|---|
| Green | Charging |
| Blue | On AC, not charging (full/held) |
| Yellow | Discharging |
| Red | Discharging, 20% or below |
CPU and memory color = how loaded they are: green below 60%, yellow below 85%, red above. Network lines have fixed identities: teal = inbound, purple = outbound.
The menu bar icon is a tiny set of activity-style rings — outer = battery, middle = CPU, inner = memory — using the same color language as the lines. Hover it for the exact numbers.
Click the rings for the full picture: a popover with big rings, every metric's exact value, a trend chart of the last hour per metric, and the apps responsible for CPU, memory, and network usage. "More details" expands the per-app lists from the top 3 to the top 8. Quit from the bottom of the popover.
The screen-edge lines are optional. Set where they live (or hide them) via:
defaults write dev.alileza.petze position top # or: bottom, perimeter, offtop/bottom grow left → right along that edge; perimeter travels
clockwise around the screen border from the top-left corner; off hides the
lines entirely — the menu bar rings carry the whole signal.
Mode, position, and line toggles are remembered across launches. The overlay is click-through and appears on every connected display and every Space.
Grab the latest petze.dmg, open it, and drag petze into Applications. The app is unsigned (no Apple Developer ID), so on first launch right-click → Open, or allow it under System Settings → Privacy & Security.
To start at login: System Settings → General → Login Items → add petze.
swift build -c release
.build/release/petze./make-dmg.sh builds a universal (Apple Silicon + Intel) drag-install DMG;
swift make-icon.swift && iconutil -c icns AppIcon.iconset regenerates the
app icon.
Releases follow semver and are fully automated: push a
vX.Y.Z tag and GitHub Actions builds the universal DMG, verifies the bundle
version matches the tag, and publishes the GitHub release with generated notes.
git tag v1.2.3 && git push origin v1.2.3CI builds the app and DMG on every push and pull request.
Or bundle it as an app (so you can put it in Applications / Login Items):
./make-app.sh
open petze.appQuit from the menu bar icon → "Quit petze".