← all repositories
HermannBjorgvin/Clawdmeter

A desk gadget that guilt-trips you for overusing Claude

An ESP32 dashboard with pixel-art animations that get twitchier the more you lean on Claude Code.

Clawdmeter
Velocity · 7d
+55
★ / day
Trend
steady
star history

What it does

Clawdmeter is a small ESP32 device that sits on your desk and displays your Claude Code API usage in real time. It pairs over Bluetooth with a host daemon (Linux or macOS) that polls Anthropic’s rate-limit headers every 60 seconds, then pushes session and weekly utilization percentages to the AMOLED screen. The firmware also doubles as a BLE HID keyboard: two side buttons send Space and Shift+Tab for Claude’s voice mode and mode toggle.

The interesting bit

The splash screen runs pixel-art Clawd animations sourced from claudepix, and the firmware tracks your usage rate of change over a five-minute window to pick animations from matching “mood groups” — the harder you’re hammering the API, the more agitated your desk mascot becomes. It’s a rare piece of hardware that makes rate-limit anxiety genuinely charming.

Key highlights

  • Supports three Waveshare ESP32 boards with AMOLED touchscreens out of the box; porting to new hardware is a thin-HAL exercise with documented contracts
  • Host daemon reads your OAuth token from macOS Keychain or ~/.claude/.credentials.json, then scrapes usage from response headers via a one-token Haiku call (essentially free)
  • Auto-rotates splash animations every 20 seconds within the current usage group so the loop never feels stale
  • Full build toolchain documented: custom LVGL font compilation with manual v8→v9 patches, CJK support (~20k glyphs), Lucide icon conversion, and animation scraping from the claudepix JS bundle
  • Middle power button cycles screens or animations; hold 3 seconds to force pairing mode and clear the Bluetooth bond

Caveats

  • README contains minor inconsistencies between versions (e.g., device advertises as “Clawdmeter” in one place, “Claude Controller” in another; tap behavior described differently in truncated vs. full version)
  • CJK headlines render as empty boxes unless you generate and flash an additional ~1MB 28pt font file
  • Font compilation requires manual patching of lv_font_conv output; without the four documented edits, text renders invisible

Verdict

Grab this if you’re a Claude Code power user who already owns a supported Waveshare board and enjoys the absurdity of a desk pet that judges your API consumption. Skip it if you don’t have an active Anthropic subscription or if “flash firmware, pair Bluetooth, install a systemd/LaunchAgent daemon” sounds like too much ceremony for a usage meter.

heatdrop uses Google Analytics to see which pages get read — nothing else. Your call. How we handle data.