Own projectSystem and AI usage monitor for Mac

OpenMetrics

CPU, memory, network and Claude and Codex quotas in a native panel in the Mac menu bar, with no external dependencies.

OpenMetrics: the macOS menu bar with the Claude, Codex, CPU and RAM items and the Overview and AI panels open below OpenMetrics: the macOS menu bar with the Claude, Codex, CPU and RAM items and the Overview and AI panels open below

The context

System metrics and AI quotas, scattered across places.

Anyone who works all day with Claude Code and Codex has two limits to keep an eye on besides CPU, memory and battery: the session quota and the weekly one. That information is scattered across Activity Monitor, web pages and the terminal, and no tool shows it all together while you work.

The challenge

A native, lightweight, local utility.

I wanted a utility that behaves like a native macOS app: in the menu bar, lightweight, refreshed every second, with no external dependencies and no data sent to third-party services. The token history had to be rebuilt from the logs the two tools already write to disk, even when they exceed a hundred megabytes.

The solution

Swift, system APIs and the logs already on disk.

I wrote OpenMetrics in Swift with SwiftUI, IOKit and the system APIs, with no third-party libraries. System metrics come from the native macOS APIs; Claude and Codex quotas are read from the same services the two clients use, with the credentials already stored on the Mac; the history indexes the JSONL logs locally, re-reads only the new lines and estimates cost at API rates to compare periods.

The outcome

One panel, a history and open code.

The code is public on GitHub under the MIT license, with tests for formatters, aggregations and the cache and a pipeline ready to sign and notarize the release. In the menu bar, each item is a glyph with a fixed-width value; the panel brings together rings, sparklines and details; the AI Usage window filters tokens and costs by period, provider, model and project and exports to CSV.

The next projectStart with a conversation

Tell me about
your project.

Have an idea or something you would like to improve? Get in touch and we can work out together how I can help.

Prefer a call?
Open full size ↗