Features

System Stats

CPU, RAM, and Network throughput tray widgets with per-core and per-interface popovers.

The Stats tray group renders up to three live widgets:

  • CPU — total usage across all cores, with per-core breakdown in the popover
  • Memory Pressure — used memory (wired + active + compressed) as % of physical RAM
  • Network — aggregate up/down throughput across non-loopback interfaces

Each widget is 36×28: a faint sparkline behind a 9pt monospaced numeric readout, with smooth tweening between samples.

Toggling

Settings → Stats has independent toggles for CPU, RAM, and Network. Each enabled widget exposes its own update interval (0.5–10s).

Interval tradeoff: lower numbers feel more responsive but sample the kernel more often. CPU at 1s is fine; Network at 0.5s is fine; the sample is cheap. RAM is cheaper still.

Hover popovers

Each tray widget opens a 240–280pt popover with the full picture:

  • CPU — bigger sparkline, per-core LinearGauge grid
  • RAM — bigger sparkline, wired/active/compressed/free breakdown in GB
  • Network — separate up/down sparklines, top apps by bytes (when available)

The popover refreshes at 2 Hz while open (regardless of the tray cadence), so you can see a fast-changing process settle.

Notes

  • CPU and memory numbers come from the same kernel sources Activity Monitor uses. The "Memory Used" percentage matches Activity Monitor exactly.
  • Network throughput is summed across every active non-loopback interface. Per-interface breakdown is on the roadmap.
  • The sparkline drawing is shared with YAML widget sparklines, so a custom widget can match the look of the built-ins.

Building a custom stat widget

If you need something the built-in widgets don't show — disk I/O, fan speed, GPU usage — write a YAML widget. The CPU pulse recipe is a good starting point.

Hide the built-in cell first via Settings → Stats to avoid duplicates.