Unofficial, independent project — not affiliated with or endorsed by Anthropic.
A local companion that shows your Claude Code session state — background sessions, context usage, 5-hour / 7-day quota, and when a session needs permission or input — on a small hardware dashboard: a Waveshare ESP32-S3-Touch-LCD-7B (7" 1024×600 LCD).
Running on real hardware. The mac collector runs as a background service (launchd) and drives a Waveshare ESP32-S3-Touch-LCD-7B over BLE — the display, touch, transport, and companion UI are validated on the board. A mock/simulator path is still used for fast development. There is no packaged end-user release yet; you build and install it yourself.
┌────────────────┐ DashboardPayload ┌───────────────┐
│ mac collector │ ───────────────────▶ │ firmware │
│ (Python) │ BLE / USB / mock │ (ESP32-S3, │
│ │ │ LVGL UI) │
└────────────────┘ └───────────────┘
- mac collector reads Claude Code's local statusLine/hooks output and
claude agents, builds aDashboardPayload, and can render it in your terminal or send it to the board. - transport is local-only: mock, USB Serial, or BLE (no network).
- firmware renders a splash, the dashboard, and an original companion
mascot with LVGL. A desktop simulator (
env:sim, SDL2) renders the real UI without hardware.
It reads a minimal slice of local state and never touches your Keychain, OAuth tokens, or credentials, and never stores prompt/transcript/diff bodies. See SECURITY.md.
Terminal preview of the dashboard (no hardware needed):
make setup-dev
make run-mock # mock data
make preview # real Claude Code data
Desktop firmware simulator (needs SDL2 + PlatformIO):
make firmware-sim
mac/— Python collector, transport, CLI. See mac/README.md.firmware/— ESP32-S3 LVGL UI + simulator. See firmware/README.md.tools/— asset/font/fixture generators.
MIT — see LICENSE. Third-party attributions in NOTICE. "Claude" is a trademark of Anthropic, PBC; this project is not affiliated with Anthropic.