Anthropic’s open-source Claude Desktop Buddy turns ESP32-S3 devices into interactive AI desk companions

Anthropic has opened its Claude Hardware Interface (Bluetooth API) to developers, enabling an ESP32-S3-based desk companion to connect directly to the Claude desktop app over Bluetooth Low Energy (BLE).

To demonstrate this new feature, the company released an open-source reference project called Claude Desktop Buddy. It currently runs on the M5StickC Plus (an ESP32-based board from M5Stack, about $30 on AliExpress and Amazon) and works as a small interactive hardware companion for Claude. Also, during the recent “Build with Claude” event, the company recommended the ESP32-S3-based M5Stack Cardputer as one of the best hardware options for developers who want to build physical devices that interact with AI agents.

Claude ESP32-S3 desk companion Desktop Buddy on M5StickC Plus

Designed as a physical companion device for Claude Cowork and Claude Code on macOS and Windows, it stays on your desk and provides real-time updates on the AI agent’s activity. It also lets you respond to permission requests directly using its buttons, so you can approve or deny actions without going back to the desktop app, making interaction with the AI faster and more convenient.

The “Buddy” feature started as a hidden Easter egg and April Fools’ joke inside the Claude Code CLI. It was planned for April 1st, 2026, but it got leaked a day early through an accidental npm source map. Developers could summon it with a simple command to display a reactive ASCII character whose energy and mood changed based on their coding activity. The goal was to make long terminal coding sessions more fun and less boring. But over time, as it got popular, Anthropic decided to expand the concept beyond software. By late April 2026, the company open-sourced the Claude Desktop Buddy project and released a local Bluetooth Low Energy (BLE) API for its desktop apps. You’ll find the code and documentation on GitHub.

This hardware interface solves a key problem of frequent user approvals that similar AI systems like StackChan, Loona Deskmate, and Espressif’s EchoEar voice chatbot do not address. Instead of constantly switching back to your computer screen, you can now receive prompts and approve or deny actions directly on the ESP32 device using physical buttons over BLE. The interaction stays local, fast, and private, and no API keys or internet connection are needed. The firmware also keeps the fun “desk pet” personality with animated visual feedback, while the open BLE standard makes it easy for makers to build their own custom versions.

Sleep mode with ZZZs (left), busycelebrate animation (middle), and Attentionalert mode when waiting for approval (right)
Sleep mode with ZZZs (left), Celebrate animation (middle), and Attention alert mode when waiting for approval (right)

The firmware turns the device into a cute Tamagotchi-style desk pet that reacts to your interactions with Claude. It sleeps when nothing is happening, wakes up as soon as a Claude session starts, and gets visibly impatient when an approval prompt is waiting.

The built-in states include:

  • Sleep – Bridge not connected (eyes closed, slow breathing)
  • Idle – Connected, nothing urgent (blinking, looking around)
  • Busy – Sessions actively running (sweating, working)
  • Attention – Approval pending (alert, LED blinks)
  • Celebrate – Level up—triggers every 50K tokens processed (confetti, bouncing)
  • Dizzy – Triggered by shaking the stick via IMU (spiral eyes, wobbling)
  • Heart – Approved a prompt in under 5 seconds (floating hearts)

If you want a custom animated character instead of the built-in ASCII pets, it’s very easy, and Anthropic provides an official example called Bufo, where you can find custom GIFs. You can also create your own custom GIF character using the included prep_character.py tool. Simply prepare 96-pixel-wide GIFs for each of the seven animation states, create a simple manifest.json file, and put everything in one folder. Then just drag the whole folder into the Hardware Buddy window on your computer. The files are streamed over BLE, and your new character appears on the device instantly. Note: the entire character pack folder (manifest + GIFs) must fit under 1.8MB to be successfully streamed and stored in the ESP32’s flash memory.

The project is built for ESP32  and ESP32-S3 boards using the Arduino framework and is compiled and flashed with PlatformIO. It currently depends on the M5StickC Plus library for the display, buttons, and motion sensor. If you want to use it on other ESP32 or ESP32-S3 boards, you will need to fork the code and change the drivers to match your board’s pin layout.

Claude Desktop Buddy showing pet stats and mood (left) and a real time approval prompt with physical button controls (right).
Claude Desktop Buddy showing pet stats and mood (left) and a real-time approval prompt with physical button controls (right).

On the M5StickC Plus, the front button (A) approves prompts or opens the menu, while the right button (B) scrolls or denies prompts. The power button toggles the screen or turns the device off. Shaking the device triggers a “dizzy” animation, and placing it face down puts the pet to sleep. To pair it with Claude, enable Developer Mode in the desktop app, open the Hardware Buddy window, and connect over Bluetooth. It will auto-reconnect afterward. Espressif also provides support through its ESP-IDF SDK and ESP Desktop Buddy library for developers who prefer not to use Arduino.

Claude desktop app showing the Hardware Buddy window in the Developer menu (left) and the pairing interface for connecting an ESP32 device and adding custom character packs (right).
Claude desktop app showing the Hardware Buddy window in the Developer menu (left) and the pairing interface for connecting an ESP32 device and adding custom character packs (right).

As a side note, we just wrote about the Clawdmeter project, an ESP32-S3-powered Claude Code token usage monitor, which may seem similar at first. However, while both are BLE-based desk companions for Claude, Clawdmeter is a community project for monitoring stats and alerts, and the Claude Desktop Buddy is Anthropic’s official open-source interactive companion with physical button approvals and Tamagotchi-style pet feedback.

I Trapped Claude in a €20 Device! 📦🤖 (Desktop Buddy StickS3 & Cardputer Tutorial)

Share this:
FacebookTwitterHacker NewsSlashdotRedditLinkedInPinterestFlipboardMeWeLineEmailShare

Support CNX Software! Donate via cryptocurrencies, become a Patron on Patreon, or purchase goods on Amazon or Aliexpress. We also use affiliate links in articles to earn commissions if you make a purchase after clicking on those links.

Radxa Orion O6 Armv9 mini-ITX motherboard

2 Replies to “Anthropic’s open-source Claude Desktop Buddy turns ESP32-S3 devices into interactive AI desk companions”

  1. xiao zhi can make similar but with audio and sound reply ;(

    antropic please make better protocol for audio

Leave a Reply

Your email address will not be published. Required fields are marked *

Boardcon MINI1126B-P AI vision system-on-module wit Rockchip RV1126B-P SoC
Boardcon MINI1126B-P AI vision system-on-module wit Rockchip RV1126B-P SoC