GitHub - christensen143/claude-trofeo-hud: Live Claude usage HUD for a $38 Thermalright Trofeo Vision LCD — session/weekly limits, token burn, and hypothetical API cost streamed from macOS over USB.
Pangram verdict · v3.3
We believe that this entire text is AI.
AI likelihood · overall
AIArticle text · 364 words · 1 segments analyzed
A desk HUD that shows live Claude usage on a Thermalright Trofeo Vision 6.86" LCD (1280×480, USB-C, ~$38), driven from macOS. Inspired by the r/ClaudeAI "$38 Claude LCD Table Display" post. What it shows: Pro/Max session + weekly limit bars with reset countdowns (from Anthropic's usage endpoint), today's tokens and hypothetical API cost (via ccusage), the live session (project, model, burn rate), a clock, and an hourly token sparkline. Requirements macOS, Python 3.12+, uv, Node (for npx ccusage) brew install hidapi (C library behind the hidapi Python package) Claude Code installed and logged in (the HUD reads its local logs and its OAuth token from the Keychain — read-only, nothing leaves your machine except the usage query to api.anthropic.com) Setup uv sync uv run python -m claude_trofeo_hud preview # render mock layout to out/preview.png uv run python -m claude_trofeo_hud run # live HUD on the LCD (Ctrl-C stops) uv run python -m claude_trofeo_hud install-agent # start at login via launchd On the first run, macOS asks for Keychain access to "Claude Code-credentials" — choose Always Allow so the daemon can run unattended. uninstall-agent stops and removes the launchd agent. Config lives in config.toml (fps, JPEG quality, night dim/off hours). Logs go to ~/Library/Logs/claude-trofeo-hud/. How it drives the display The panel is not a monitor — it's a USB HID device (VID:PID 0416:5302) that accepts JPEG frames over a reverse-engineered protocol. We use the device classes from thermalright-trcc-linux with its HidApiTransport (IOHIDManager), bypassing its CLI — trcc's default transport routes through libusb, which macOS blocks for HID devices. The firmware blanks when idle, so the HUD streams continuously (default 2 fps). See PLANNING.md for the full protocol notes. Troubleshooting "Access denied (insufficient permissions)" — something is opening the device via libusb instead of hidapi; make sure you're running our CLI, not trcc directly. Panel shows boot logo / blanks — no frames arriving; check ~/Library/Logs/claude-trofeo-hud/hud.log. Unplug/replug is handled automatically with backoff. Empty cost/tokens — npx ccusage must work in a terminal first; the launchd agent bakes the node path into its plist at install time, so re-run install-agent after Node upgrades. Limits stale — Keychain access not granted, or you're logged out of Claude Code.