cd /news/developer-tools/show-hn-claude-code-and-codex-usage-… · home topics developer-tools article
[ARTICLE · art-91772] src=github.com ↗ pub= topic=developer-tools verified=true sentiment=· neutral

Show HN: Claude Code and Codex usage screen for TRMNL X e-ink

Piotr Migdał released an e-ink dashboard plugin for TRMNL X that displays Claude Code and Codex usage, including rate limits, API-equivalent cost per day per agent, and top projects, pushed from a Mac every 10 minutes. The plugin reads local state via unofficial endpoints and ccusage, with no servers involved. It requires a TRMNL private plugin webhook, configuration, and a LaunchAgent schedule.

read1 min views1 publishedAug 11, 2026
Show HN: Claude Code and Codex usage screen for TRMNL X e-ink
Image: source

An e-ink dashboard for a TRMNL private plugin: rate limits for Claude Code and Codex, API-equivalent $ per day per agent, and your top projects — pushed from your Mac every 10 minutes.

Data sources (no servers, everything reads local state):

Claude limits + plan— undocumentedapi.anthropic.com/api/oauth/usage

endpoint, OAuth token from the macOS Keychain. Unofficial; rate-limited, so don't poll faster than ~10 min.Codex limitscodex app-server

JSON-RPC; the CLI handles auth.$ / day and top projectsccusageviapnpm dlx

, plus~/.claude/projects/

JSONLs for project names and per-day sparklines.

On trmnl.com create a

Private Plugin with strategyWebhook; copy its URL. - cp config.json.example config.json

, paste the URL (config.json

is gitignored — the UUID lets anyone push to your screen). - Paste

template.liquid

into the plugin's Markup editor. - Test:

uv run --no-project push_usage.py --dry-run

, then without the flag. - Install the schedule (edit paths in the plist to match your machine):

cp com.pmigdal.trmnl-usage.plist ~/Library/LaunchAgents/
launchctl bootstrap gui/$(id -u) ~/Library/LaunchAgents/com.pmigdal.trmnl-usage.plist

Logs: /tmp/trmnl-usage.log

. Fetch failures also render as a warning strip on the device and exit non-zero.

key default
webhook_url
required (or TRMNL_WEBHOOK_URL env var)
cost_days
7 days in the cost chart and sparklines
top_projects
6 project rows
chart_max_px
230 tallest chart bar, px
  • The template targets TRMNL X's logical viewport (~936×702 @ 2× density); tiles at ≥90% usage invert to black.
  • TRMNL webhook caps: 12 pushes/hour, 2 KB payload.
  • The screen goes stale while the Mac sleeps — see the "updated" stamp.

MIT © Piotr Migdał

── more in #developer-tools 4 stories · sorted by recency
── more on @piotr migdał 3 stories trending now
sponsored brought to you by zahid.host 4,200+ EU-deployed projects
reading about agents? ship yours in a single git push.

Run your AI side-project on zahid.host

EU-based hosting, git-push deploys, automatic HTTPS, no cold starts. Free tier with a custom domain — perfect for shipping the agent you just read about.

$git push zahid main
Live at https://your-agent.zahid.host
Get free account → Pricing
from €0/mo · no card required
LIVE [news/show-hn-claude-code-…] indexed:0 read:1min 2026-08-11 ·