vibepulse logo

vibepulse

A shelf-top AMOLED screen showing your Claude Code & Codex usage, live agent activity, and a NEEDS YOU alert when an agent waits for your input. ESP32-S3 + a pure-stdlib Mac service. Nothing leaves your LAN.

Website GitHub

What is it?

What it is

A hardware-software system displaying real-time AI agent activity, quota tracking, and interactive alerts on an ESP32-S3 AMOLED panel, with optional encrypted cross-network communication.

Why it exists

To make AI coding agent status and resource usage visible at a glance, preventing missed agent prompts and quota exhaustion through persistent visual feedback and tap-based interaction.

Who should use it

Developers running AI coding agents (e.g., Claude Code, Codex) who want a physical display for quota and agent status and are comfortable flashing an ESP32‑S3 board and running a local Python tokenserver.\n"who_should_avoid":

Who should avoid it

Teams that need a fully managed SaaS with enterprise SLAs out of the box.

How it works

A quick walkthrough in plain English

How vibepulse works

Step 1 of 3

You interact with it

Open vibepulse, send a request, or connect it to your stack.

Features

Real‑time quota tracking for Claude Code and Codex (weekly, per model, per provider)
Live agent activity monitor showing currently working agents, model, and effort
Full‑screen "NEEDS YOU" alerts for yes/no questions with tappable answers
Max Tracker heatmap of daily quota peaks, streaks, and max counters
Burn‑rate forecast per provider with early‑out warnings
Value multiple page that calculates spent vs. plan cost (including cache tokens)
Optional GitHub project pulse (live star/fork count, new‑star popup)
Independent switches for each feature (Claude/Codex interactions, numbers relay, interaction relay, GitHub)
WiFi setup and network switching (up to six saved places, phone‑hotspot onboarding)
OTA updates with physical confirmation (3‑second KEY3 hold, token‑verified A/B slots)
Pure‑Python tokenserver (std‑lib) on Mac/Windows reading local logs
Physical tap to answer prompts (APPROVE/LEAVE IT) with signed verdicts
Support for both direct LAN and encrypted interaction relay for unrelated WiFi
Simulator for development/testing (same code, fonts, and pixels as hardware)
Low‑cost hardware (~$30 ESP32‑S3 AMOLED panel), no internet required for core functionality
Clear UI with dashes for missing data, never placeholder zeros
Real‑time countdowns for quota resets
Cache‑token counting for accurate cost calculation
Torget app platform for a single‑binary, focused experience

Advantages

  • Gives visibility into invisible quota usage, preventing surprise at the wall
  • Alerts you when an agent is waiting for input, reducing idle time and context switching
  • Physical tap interface lets you answer questions without switching windows
  • Low‑cost hardware (~$30) provides powerful insight into AI‑coding activity
  • Simple setup via coding agents (Claude Code, Codex) or manual steps
  • No internet needed for core functionality – all data stays on your LAN
  • OTA updates with physical confirmation keep firmware current safely
  • Independent switches give fine‑grained control; no feature is silently enabled
  • Simulator allows development and testing without the physical board
  • Real‑time data from local logs; no cloud dependency or OAuth token leakage
  • Always‑on screen is visible from across the room, no window to minimize
  • Supports both Claude and Codex equally with distinct accent colors
  • Accurate cost tracking includes cache tokens, avoiding under‑estimation
  • Portable network switching works with phone hotspots, follows you anywhere
  • Open‑source and extensible via the Torget app platform
  • Clear, honest UI – dashes instead of invented zeros, no misleading placeholders
  • Physical button interactions reduce cognitive load and keep you in flow

Disadvantages

  • Requires a specific Waveshare ESP32‑S3‑Touch‑AMOLED‑2.16 panel (~$30); not generic hardware
  • Claude quota reading is macOS‑only for now; Linux/Windows support is limited
  • Only 2.4 GHz WiFi is supported – cannot connect to 5 GHz networks
  • Setup involves multiple steps (flashing firmware, configuring secrets.h, starting tokenserver) that can be complex for non‑technical users
  • The board needs its own USB power; computer USB may not supply enough for the AMOLED panel
  • OTA updates require a physical 3‑second KEY3 hold, which can be inconvenient
  • Interaction relay and numbers relay are optional and add extra configuration if you need remote access
  • GitHub module reads the public API; rate limits or downtime could affect the pulse (though cached)
  • Simulator requires SDL2, CMake, and a build environment – not as lightweight as the hardware
  • Limited to Claude and Codex; other providers (Cursor, Gemini CLI, etc.) are not supported
  • Captive portals, guest networks with client isolation, and WPA2‑Enterprise are not supported
  • Panel can remember only up to six WiFi networks – more locations require manual re‑teaching
  • If the tokenserver stops, the screen shows stale data; no real‑time updates until it resumes
  • Flashing the board requires entering download mode (hold BOOT, tap RESET) – can be fiddly
  • UI is locked to 480×480; porting to other displays would need layout and font adjustments
  • The project is work‑in‑progress; frequent commits and rough edges are expected
  • A lost or stolen screen leaks WiFi credentials and the Mac’s hostname – you must rotate both manually

Installation

native

python3 tools/tokenserver/tokenserver.py --github-repo owner/repository

FAQ

What hardware do I need to build VibePulse?

You need a Waveshare ESP32-S3-Touch-AMOLED-2.16 panel (~$30) and a USB-C cable. No soldering required. The same board is used by Clawdmeter, so if you already own one you can reuse it.

Can I run the tokenserver on Windows or Linux?

Windows is fully supported for the tokenserver. Linux is not yet supported (see issue #2), but contributions are welcome. The tokenserver is pure Python stdlib with no external dependencies.

Does VibePulse require an internet connection?

No. By default, the panel only talks to the tokenserver on your local LAN. Internet is only needed if you opt in to the optional numbers relay or encrypted interaction relay for cross-WiFi access.

Can I use VibePulse with only Claude Code or only Codex?

Yes. If you run only one provider, the other half of the UI simply shows dashes instead of zeros. Both providers get equal treatment with their own accent colours and pages.

How do I update the firmware after the initial USB flash?

Over-the-air updates are built in. Hold KEY3 for 3 seconds to open a 10-minute maintenance window, then run `tools/ota-flash.sh <device-ip>` from your computer. The device verifies the image, writes to the inactive A/B slot, and rolls back automatically if the new firmware fails a 15-second boot-health check.

How does the WiFi setup work when I take the panel to a new location?

The panel remembers up to six networks. At a new location, hold KEY3 for 3 seconds (or wait 90 seconds without a network) to open a setup window. Run `tools/wifi-here.sh` on your Mac to securely transfer the current WiFi credentials via the panel's access point, or join the 'VibePulse-setup' network from your phone and enter credentials through the captive portal.

Loading documentation…
View on GitHub

Featured in Videos

YouTube tutorials and walkthroughs for vibepulse

Alternatives

Similar projects ranked by category, topics, and text overlap.

Compare