ByteBulletin

[tooling] · · 1 min read

TRMNL e-ink dashboard tracks Claude Code and Codex usage locally

A new open-source plugin pushes local AI coding tool rate limits and cost estimates to a TRMNL device every 10 minutes without requiring a central server.

By ByteBulletin Editors · Editorial Team

[tooling]

Developers using AI coding assistants like Claude Code and Codex often face opaque usage limits and fluctuating costs. A new GitHub project, trmnl-x-claude-codex, offers a tangible solution by transforming these metrics into a physical dashboard on TRMNL e-ink devices.

The tool operates entirely locally, reading state from the user's machine to calculate rate limits, API-equivalent daily costs per agent, and top project usage. This serverless approach ensures that sensitive usage data never leaves the local environment, addressing privacy concerns common in enterprise or individual developer setups.

Setup and Configuration

The implementation relies on TRMNL's Private Plugin feature. Users must first create a plugin with a Webhook strategy on the TRMNL platform and copy the generated URL. The project provides a config.json.example file that needs to be copied to config.json and populated with this URL. Since the UUID in the URL allows anyone to push to the screen, the configuration file is gitignored by default to prevent accidental exposure.

The display logic is handled by a Liquid template (template.liquid) that users paste into the plugin's Markup editor. This template formats the data for the e-ink screen, including a warning strip that appears if data fetching fails.

Local Execution

The core logic is driven by a Python script, push_usage.py. Developers can test the integration using a dry-run mode to verify data retrieval before pushing to the device:

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

Once verified, running the command without the --dry-run flag pushes the data to the TRMNL device. To automate this, the project includes a macOS plist file for scheduling the script to run every 10 minutes. Logs are written to /tmp/trmnl-usage.log, and the script exits with a non-zero status on failure, allowing for easy monitoring of the pipeline.

This project highlights a growing trend of developers seeking physical, low-distraction interfaces for monitoring their development environment, particularly for tools that are increasingly central to the coding workflow.

SHARE

← All stories