A VibeOnChip product · Open source · MIT

VibePulse

Your AI agents, at a glance. Usage, reset times and a heads-up when they need you. Open-source firmware and companion software, available to build today.

DIY project · hardware purchased separately
macOS & Windows host · local by default

211 GitHub stars · 36 forks · MIT open source Checked 15 Oct 2026
Recorded on the workbench

VibePulse / built in public

Open source.
Yours to make.

MITOpen-source licenceRead, modify and share the codeExplore the repository
Repository traffic & sources

Repository traffic

Last 14 days
Repository views
141
Unique visitors
81
Clones
277
Unique cloners
100
About these numbers

Reported dates: 1 Oct 2026 – 14 Oct 2026 · UTC

Snapshot saved

GitHub activity, not product users or installs. Unique counts apply to this period only.

Source: GitHub’s repository traffic API. This is its rolling 14-day snapshot; the latest day may be incomplete. Stars and forks refresh separately.

Archive started 10 Oct 2026. Earlier launch traffic outside the first saved window is unavailable.

View this snapshot · Saved daily history

Your agents, at a glance

A glance. Then back to work.

Know where you stand.

Know where you stand.

Claude and Codex quotas, reset countdowns and today’s usage.

Catch the pause.

Catch the pause.

A visible alert when an agent is waiting for your input.

See the pace.

See the pace.

A forecast of whether your current usage will last until reset.

Original 2.16 simulator output. Available screens and touch features vary by board.

More on the original 2.16

Your plan, over time.

Max Tracker shows daily peaks and coding streaks. The value screen compares logged token usage at list API prices with your plan cost; it is an estimate, not a bill.

Codex Max Tracker photographed on the original 2.16

Questions you can answer.

On the original 2.16, supported agent questions can be answered from the glass. This is a separate opt-in per provider. Anything the panel cannot safely display stays on the computer.

A supported Codex question in the 2.16 simulator

What crosses your network

A little celebration.

An optional GitHub screen shows a public repository’s stars and forks. New stars can trigger a celebration. The tile, sound and celebration are separate opt-ins.

GitHub screen in the 2.16 simulator, with example star and fork counts

Find your fit

Your first VibePulse.

Start with the original 2.16 for the broadest verified feature set. Explore the other shapes once you know their limits.

Recommended first build

Original 2.16

Usage, reset times, alerts, optional answers from the glass and Wi-Fi updates after the first USB install.

See the original & its setup guide

What you bring

The exact Waveshare display, a USB-C data cable, a separate USB power supply, 2.4 GHz Wi-Fi and a Mac or Windows PC.

Install the open-source software yourself, with your coding agent’s help. Keep the computer service running for fresh readings. Claude Code or Codex sign-in is needed for its agent pages; OpenRouter-only setup is a separate preview.

No soldering for the standard setup. This is a DIY software project; the hardware is purchased separately.

Original VibePulse 2.16 photographed with a Claude usage viewRecommended first buildOriginal square2.16-inch AMOLEDSupported · originalSupport & setup
Real VibePulse 2.16 · square display
Photographed on the physical panel.

ESP32-S3-Touch-AMOLED-2.16

480 × 480 AMOLED with touch. The original VibePulse model, with verified usage, WiFi and answers from the glass.

KEY3 opens SETTINGS. Firmware updates over WiFi are available after the first USB installation.

Identify the Waveshare display
Official Waveshare Original 2.16 family photograph showing a manufacturer demo
Photo: Waveshare. Manufacturer demo for identifying the display family; check the exact model, touch variant and revision before buying.
VibePulse 2.41 V2 photographed showing Codex usageLandscape2.41-inch AMOLED · V2Supported · V2 onlySupport & setup
Real VibePulse 2.41 V2 · landscape display
Photographed on the physical panel.

ESP32-S3-Touch-AMOLED-2.41 · V2 / Rev2.0

600 × 450 AMOLED with touch. Display bring-up, touch, WiFi and visible Codex/Claude usage checked on a real unit.

Check the V2 marking; V1 is not supported. BOOT opens SETTINGS. USB updates, fixed landscape; physical answer replies and OTA are not yet verified. Select its v1.2.0 board profile.

Identify the Waveshare display
Official Waveshare Landscape 2.41 V2 family photograph showing a manufacturer demo
Photo: Waveshare. Manufacturer demo for identifying the display family; check the exact model, touch variant and revision before buying.
Real compact VibePulse 1.91 Touch showing Codex usageCompact1.91-inch AMOLED · TouchDevelopment port · real unitSupport & setup
Real VibePulse 1.91 Touch · compact display
Photographed on the physical panel.

ESP32-S3-Touch-AMOLED-1.91 · touch variant

536 × 240 AMOLED with touch. Phone Wi-Fi setup, reconnect, visible Codex usage and page swipes were checked on one real unit.

USB-installed development port. Touch can intermittently stop responding; final recovery-build touch checks, longer stability and full UI review remain. Needs You decisions stay on the computer; OTA is not verified.

Identify the Waveshare display
Official Waveshare Compact 1.91 Touch family photograph showing a manufacturer demo
Photo: Waveshare. Manufacturer demo for identifying the display family; check the exact model, touch variant and revision before buying.
Round VibePulse 1.75 photographed with quota and reset viewsRound1.75-inch AMOLEDQuota profile · physical checkpointSupport & setup
Real VibePulse 1.75 · circular display
Photographed on the physical panel.

ESP32-S3-Touch-AMOLED-1.75 · marking only

466 × 466 AMOLED. The owner photographed Codex usage, today's contribution and the reset view on one unit. This is a physical checkpoint, not full-board qualification.

OpenRouter spend now also runs on this round unit as an optional Labs preview. See the photo and setup.

Included in v1.2.0; install and update over USB. Needs You decisions stay on the computer. Fixed USB-down orientation, touch, live value accuracy and two-scan Wi-Fi setup await final physical review; automatic rotation remains unverified.

Identify the Waveshare display
Official Waveshare Round 1.75 family photograph showing a manufacturer demo
Photo: Waveshare. Manufacturer demo for identifying the display family; check the exact model, touch variant and revision before buying.

The four display photos show VibePulse on Niclas’s actual hardware. Readings are photographed moments, not live data. Official Waveshare family photos remain in each model’s identification details.

Affiliate links may earn me a commission, at no extra cost to you. Waveshare supplied hardware for development and testing.

Compare before you choose.

Features and support belong to the exact model. Swipe the table to see all columns.

VibePulse hardware · reviewed
DisplayStatus & useUpdatesKnow the limits
Original 2.16Supported · originalUsage, reset times, alerts and opt-in answers from the glass.First install over USB; Wi-Fi updates available.The broadest verified feature set. Each optional integration has its own requirements.
Landscape 2.41 V2Supported · V2 onlyClaude/Codex usage, touch and Wi-Fi checked on a real unit.USB. OTA not yet verified.V2 / Rev2.0 required; V1 excluded. Fixed landscape; answer replies on the glass unverified.
Compact 1.91 TouchDevelopment port · real unitCodex usage, Wi-Fi setup, reconnect and page swipes checked on one unit.USB. OTA not yet verified.Touch recovery and longer stability checks remain. Needs You decisions stay on the computer.
Round 1.75Quota profile · physical checkpointUsage and reset views photographed on one unit; optional OpenRouter Labs preview.USB. OTA disabled.Full touch, USB-down orientation and live value accuracy checks remain. Decisions stay on the computer.
Portrait 1.8 V2Development profile · not fully supportedOwner reports display, touch, settings and network working on one V2 unit.Source build and USB. OTA disabled.V2 only; V1 excluded. Four-corner touch and extended memory/network-load checks remain. Decisions stay on the computer.

Based on the reviewed source documentation. Setup guides follow current source. Status data & evidence links. This table covers VibePulse; the Codex USB plugin has separate status.

What about the 1.8 V2?

The 1.8 V2 has a USB-only development firmware profile. The owner reports display, touch, settings and network working on one unit. It is not yet a fully supported first-build recommendation.

Check the V2 marking: V1 is excluded. Four-corner touch acceptance and extended memory/network-load checks remain. OTA is disabled and Needs You decisions stay on the computer.

Read the 1.8 V2 development guide · Evidence reviewed 11 October 2026

Other display concepts have no release date.

RGB matrix hardware belongs to the separate VibeMatrix experiment; it is not a supported VibePulse installation.

How a display earns support

Already have your display?

Get it running

Make it yours

Get one running.

You bring the board. Your coding agent helps with the setup.

Compare displays & find your guide
  1. Check your kit.

    Your exact display, a USB-C data cable, its own power supply, 2.4 GHz Wi-Fi and a Mac or Windows PC. For the standard agent pages, have Claude Code or Codex installed and signed in.

  2. Open the project.

    Clone the repository on your computer, open your coding agent and use the setup prompt below. The selected display’s guide covers its exact installation steps.

  3. Put it on the desk.

    Install over USB, connect the panel to Wi-Fi and keep the computer service running. Check that fresh usage reaches the display.

Open the setup commands
On your computer
git clone https://github.com/niclasvestlund-YT/vibepulse.git
Then ask your coding agent

Set up VibePulse for my board: first check its model and revision, follow its setup guide, back it up before flashing with my permission, and start or reuse the tokenserver on this computer.

No soldering. Physical buttons and installation steps still need you.

New in Labs · source preview

Your API spend.
On your desk.

Today, this week and this month: your OpenRouter API key’s spend, in dollars.

Owner’s round VibePulse display in a pink enclosure showing the OpenPulse monthly API spend page
Real round 1.75, photographed on 29 September 2026. The reading belongs to that moment; the $50 display budget is not an account balance.

Set a monthly display budget with colour warnings. Tap the panel for your key’s remaining allowance. Account credits are a separate, optional view.

Mac · source build required · round 1.75 physically checked. Square 2.16 has bench checks; other displays await layout validation. This preview is not included in v1.3.0.

Only want OpenRouter? You do not need Claude or Codex accounts. Follow the OpenRouter-only installation guide.

The Mac fetches your readings; the display receives them over local Wi-Fi. Keep the Mac awake and its OpenPulse service running. Signing in to OpenRouter in your browser is not required. USB supplies power, not the readings.

Try the demo on your Mac

No API key needed. Get the preview source, open that folder in your terminal and use Python 3.11 or newer:

Start the demo
python3 -m tools.openpulse.service --demo

Open http://127.0.0.1:8738 on that Mac to see labelled example data. Stop it with Ctrl-C. The browser demo does not install firmware on your panel.

Connect your OpenRouter key

From the same preview source, use Python 3.11 or newer and start the local setup page on your Mac:

Start local setup
python3 -m tools.openpulse.service --connect \
  --config .openpulse/config.json --port 8739

Open http://127.0.0.1:8739/connect on that Mac. Save the existing key whose usage you want to see and choose a display budget. Keys stay in macOS Keychain. Account credits require an optional management key.

After saving, stop the setup process with Ctrl-C. Find the Mac’s private LAN IPv4 address in System Settings → Wi-Fi → Details → TCP/IP. Replace YOUR_MAC_LAN_IP below with it and start the separate service for the panel:

Start the display service
python3 -m tools.openpulse.service \
  --config .openpulse/config.json --host YOUR_MAC_LAN_IP \
  --port 8740

Keep this terminal running. Open http://YOUR_MAC_LAN_IP:8740/ on the Mac and on a phone using the display’s Wi-Fi. Check for fresh data before installing hardware. Setup on port 8739 is local to the Mac; it is not the panel endpoint.

The round firmware installation guide sets the same address and port in the display. After installing compatible preview firmware, hold BOOT about three seconds → LABS → MORE → MORE: OPENROUTER ON, CLAUDE CODE/CODEX OFF for an OpenRouter-only carousel, then RESTART NOW. Keep the other optional pages off. Agent monitoring has its own settings.

Labs does not install the service or firmware. Automatic OpenPulse startup is not available yet: start the display-service command again after stopping it or rebooting the Mac. Restart it after changing the saved key/budget. Use a trusted private network; reserve the Mac’s address in the router if possible. This preview has no OpenRouter relay.

Seeing dashes or NO DATA?

First check that you are on OPENPULSE, not a Claude/Codex page. Does http://YOUR_MAC_LAN_IP:8740/ open on the Mac? If not, start the display service again. If it shows a source error, check the saved API key and Keychain access using the local connection page.

Fresh on the Mac but no reading on the panel? Check the panel’s Wi-Fi and exact service address/port. Test from a phone on that Wi-Fi too: guest networks can block access to the Mac. A Wi-Fi icon or fresh Mac reading alone does not prove the panel received and rendered the data.

UPDATED with 0 USD can be correct for that key; a new key does not inherit another key’s spend. STALE marks old data. Account credits need the optional management key, independently of key spend. Full troubleshooting guide.

Budgets, privacy and verification

The local service fetches readings and sends only summaries to the panel over your private network. The display budget is your own visual guide: it does not change the API key’s spending limit. Account credits need a separate management key. BYOK is shown separately, and missing or old readings are labelled.

Upright output and the bottom page switch have been confirmed on one round unit. Full swipe/menu checks, other physical displays and Windows setup remain to be validated.

See the round display
Lovable credits · experimental preview

A new VibePulse page shows Lovable credits, plan and reading freshness. A real reading has reached the round 1.75 display on macOS.

This experimental page is included in v1.3.0 and needs an optional local Chrome integration. Automatic refresh and the Windows browser integration still need end-to-end verification. It is not an official Lovable integration.

Read the preview setup guideRelease & verification notes

On my desk

See it in action.

A little more hands-on.

Switching views on the original VibePulse.

Open video

When your agent needs you.

The panel calls for attention when an agent is waiting.

Open video

Part of the setup.

The original panel in its everyday workspace.

Open video
Watch the YouTube edits
Watch on YouTube
Earlier clips from the original panel
Questions & detailsCompatibility, privacy and updates

Before you begin

A few useful answers.

Will it work with my computer?

macOS and Windows are supported for the companion service. Linux is not yet supported as the companion host. This does not mean every board’s build and flash flow has been verified on both systems; follow the exact model guide. Claude Code and Codex work together or individually.

Host support and verification
What data leaves my computer?

Local by default. Credentials stay on the computer.

  • Out of the box the screen only ever receives percentages, counts and coarse status — a project name, a model, an effort level. No prompts, no code, no commands, no file contents.
  • Switch on questions from the glass and one more thing crosses your own network, because the panel has to draw it: the question line, the label of the option the agent recommends, and — for the narrow safe-command tier — the command it is asking about. Never raw hook bodies, session transcripts, full option lists, file contents or environment variables.
  • Your OAuth token stays on the computer. The service uses it to ask for your own rate-limit numbers, and sends it nowhere else.
  • A lost screen leaks your WiFi credentials and the LAN name of your host — nothing you can't rotate in your router.
  • In the default local mode, the screen talks to your own machine over your own network. Optional cloud relays are separate opt-ins. The host advertisement it looks for carries a port and a protocol version — no numbers, no prompts, no account.
How do updates work?
AFTER THE FIRST FLASH

Updates follow your board.

2.16: on current firmware, hold KEY3 for three seconds to open SETTINGS, then tap UPDATE to allow a firmware upload over WiFi. A short button press closes the window. USB remains the recovery path. 2.16 update guide

2.41 V2: use the USB update steps in the V2 guide. OTA is not yet verified on this model. Each board needs its own firmware.

1.91 Touch: use the board-specific USB steps. OTA is not yet verified.

Round 1.75: use the board-specific USB steps. OTA is disabled in current source; Needs You decisions stay on the computer.

Can I build my own app for it?

Want your own app on it? Ask for one.

Describe an app, get an app

The panel runs Torget — its home screen, where every app is one tile. It's deliberately tiny, which means agents one-shot new apps for it. "Make me a tile that shows my server's ping" is a valid workflow here.

See the pixels before they ship

A desktop simulator renders the exact same pixels as the glass. You look at the mockup, say "yes", and only then does anything get flashed. No surprises on the shelf.

House rules

true black · IBM Plex · dashes instead of invented zeros

The Torget launcher on the panel
the launcher — yours would sit here
Can I try it without hardware?

Yes. The desktop simulator runs the same UI code as the original panel. Follow the repository’s simulator instructions for your development environment.

Simulator instructions on GitHub
What’s inside the original 2.16?

More computer than it lets on

This inventory describes the original 2.16, not the 2.41 V2. Available electronics and verified VibePulse features are different things. The hardware registry keeps the evidence →

● AWAKE — DRIVEN BY THE FIRMWARE
ESP32-S3
dual-core at 240 MHz, 8 MB PSRAM, 16 MB flash
AMOLED panel
480 × 480 true black, redrawn fast enough to animate — verified on the unit
Capacitive touch
tap to dismiss, tap to launch
WiFi 2.4 GHz
talks to the Mac or PC over LAN — verified on the unit
Motion sensor
turns the picture when you turn the panel
USB-C port
power, the first flash and logs all go down it
Updates over WiFi
new builds land in a spare slot, SHA-256 checked, and roll back by themselves if the board doesn't come up healthy — delivered over the air on the unit
○ STILL ASLEEP — WIRED, WAITING
Dual mics
on the board; capture is not physically verified
Speaker output · ES8311
codec and amplifier wired; fitted speaker and sound output unverified
Bluetooth 5 LE
the radio is there; nothing speaks it yet
Battery + AXP2101
3.7 V lithium header and charge path — it could run cordless
Real-time clock
wired on the I2C bus — whether it survives a power cut is untested
microSD slot
room for local storage
○ MAYBE — THE CHIP CAN, THE BOARD IS UNPROVEN
USB host
it could be the computer, not the peripheral — this board's power path has never been checked

Where the project is heading

Now. Next. Exploring.

Current availability and intended focus. Future work is not a release-date commitment.

Now
Public source, releases and board-specific setup guides.
Next
Make the first build easier and qualify more display features.
Exploring
New useful tiles and optional integrations.

Built in public

Your desk. Your code.

Start with the setup guide, inspect the source or follow the next release.

From the workbench

New: OpenRouter spend on the round display
Older entriesRelease v1.3.0 · LovableDesk videoRelease v1.2.0Round quota checkpointRound display development1.91 Touch development2.41 V2 development