{"id":40300,"date":"2026-05-15T17:29:34","date_gmt":"2026-05-15T17:29:34","guid":{"rendered":"https:\/\/www.europesays.com\/ai\/40300\/"},"modified":"2026-05-15T17:29:34","modified_gmt":"2026-05-15T17:29:34","slug":"anthropics-open-source-claude-desktop-buddy-turns-esp32-s3-devices-into-interactive-ai-desk-companions","status":"publish","type":"post","link":"https:\/\/www.europesays.com\/ai\/40300\/","title":{"rendered":"Anthropic\u2019s open-source Claude Desktop Buddy turns ESP32-S3 devices into interactive AI desk companions"},"content":{"rendered":"<p>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).<\/p>\n<p>To demonstrate this new feature, the company released an open-source reference project called Claude Desktop Buddy. It currently runs on the <a href=\"https:\/\/www.cnx-software.com\/2020\/09\/05\/m5stickc-plus-esp32-pico-devkit-comes-with-1-14-inch-lcd-120-mah-battery-and-buzzer\/\" rel=\"nofollow noopener\" target=\"_blank\">M5StickC Plus<\/a> (an ESP32-based board from M5Stack) and works as a small interactive hardware companion for Claude. Also, during the recent \u201cBuild with Claude\u201d event, the company recommended the ESP32-S3-based <a href=\"https:\/\/www.cnx-software.com\/2023\/10\/14\/m5stack-cardputer-a-30-card-sized-esp32-s3-computer-with-display-and-keyboard\/\" rel=\"nofollow noopener\" target=\"_blank\">M5Stack Cardputer<\/a> as one of the best hardware options for developers who want to build physical devices that interact with AI agents.<\/p>\n<p><a href=\"https:\/\/www.cnx-software.com\/wp-content\/uploads\/2026\/05\/Claude-Desktop-Buddy-on-M5StickC-Plus.jpg\" rel=\"nofollow noopener\" target=\"_blank\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-170546 size-medium\" title=\"Claude Desktop Buddy on M5StickC Plus\" src=\"https:\/\/www.europesays.com\/ai\/wp-content\/uploads\/2026\/05\/Claude-Desktop-Buddy-on-M5StickC-Plus-720x480.jpg\" alt=\"Claude ESP32-S3 desk companion Desktop Buddy on M5StickC Plus\" width=\"720\" height=\"480\"   data-eio=\"p\"\/><\/a><\/p>\n<p>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\u2019s activity. It\u00a0also 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.<\/p>\n<p>The \u201cBuddy\u201d feature started as a hidden Easter egg and April Fools\u2019 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\u2019ll find the code and documentation <a href=\"https:\/\/github.com\/anthropics\/claude-desktop-buddy\" rel=\"nofollow noopener\" target=\"_blank\">on GitHub<\/a>.<\/p>\n<p>This hardware interface solves a key problem of frequent user approvals that similar AI systems like <a href=\"https:\/\/www.cnx-software.com\/2026\/01\/13\/m5stack-stackchan-is-a-cute-open-source-ai-desktop-robot\/\" rel=\"nofollow noopener\" target=\"_blank\">StackChan<\/a>, <a href=\"https:\/\/www.cnx-software.com\/2026\/04\/20\/loona-deskmate-an-iphone-powered-ai-desk-companion-that-doubles-as-a-165w-gan-charging-station\/\" rel=\"nofollow noopener\" target=\"_blank\">Loona Deskmate<\/a>, and <a href=\"https:\/\/www.cnx-software.com\/2025\/09\/26\/espressif-echoear-esp32-s3-voice-controlled-ai-chatbot-with-circular-touchscreen-and-mic-array\/\" rel=\"nofollow noopener\" target=\"_blank\">Espressif\u2019s EchoEar<\/a> 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 \u201cdesk pet\u201d personality with animated visual feedback, while the open BLE standard makes it easy for makers to build their own custom versions.<\/p>\n<p><a href=\"https:\/\/www.cnx-software.com\/wp-content\/uploads\/2026\/05\/Sleep-mode-with-ZZZs-left-busycelebrate-animation-middle-and-Attentionalert-mode-when-waiting-for-approval-right.jpg\" rel=\"nofollow noopener\" target=\"_blank\"><img loading=\"lazy\" decoding=\"async\" class=\"size-medium wp-image-170549 lazyload\" title=\"Sleep mode with ZZZs (left), busycelebrate animation (middle), and Attentionalert mode when waiting for approval (right)\" alt=\"Sleep mode with ZZZs (left), busycelebrate animation (middle), and Attentionalert mode when waiting for approval (right)\" width=\"720\" height=\"325\" data-eio=\"p\" src=\"https:\/\/www.europesays.com\/ai\/wp-content\/uploads\/2026\/05\/Sleep-mode-with-ZZZs-left-busycelebrate-animation-middle-and-Attentionalert-mode-when-waiting-for-ap.jpeg\"  data- data-eio-rwidth=\"720\" data-eio-rheight=\"325\"\/><\/a>Sleep mode with ZZZs (left), Celebrate animation (middle), and Attention alert mode when waiting for approval (right)<\/p>\n<p>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.<\/p>\n<p>The built-in states include:<\/p>\n<p>Sleep \u2013 Bridge not connected (eyes closed, slow breathing)<br \/>\nIdle \u2013 Connected, nothing urgent (blinking, looking around)<br \/>\nBusy \u2013 Sessions actively running (sweating, working)<br \/>\nAttention \u2013 Approval pending (alert, LED blinks)<br \/>\nCelebrate \u2013 Level up\u2014triggers every 50K tokens processed (confetti, bouncing)<br \/>\nDizzy \u2013 Triggered by shaking the stick via IMU (spiral eyes, wobbling)<br \/>\nHeart \u2013 Approved a prompt in under 5 seconds (floating hearts)<\/p>\n<p>If you want a custom animated character instead of the built-in ASCII pets, it\u2019s 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\u2019s flash memory.<\/p>\n<p>The project is built for ESP32\u00a0 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\u2019s pin layout.<\/p>\n<p><a href=\"https:\/\/www.cnx-software.com\/wp-content\/uploads\/2026\/05\/Claude-Desktop-Buddy-showing-pet-stats-and-mood-left-and-a-real-time-approval-prompt-with-physical-button-controls-right.jpg\" rel=\"nofollow noopener\" target=\"_blank\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-170548 size-medium lazyload\" title=\"Claude Desktop Buddy showing pet stats and mood (left) and a real time approval prompt with physical button controls (right).\" alt=\"Claude Desktop Buddy showing pet stats and mood (left) and a real time approval prompt with physical button controls (right).\" width=\"720\" height=\"465\" data-eio=\"p\" src=\"https:\/\/www.europesays.com\/ai\/wp-content\/uploads\/2026\/05\/Claude-Desktop-Buddy-showing-pet-stats-and-mood-left-and-a-real-time-approval-prompt-with-physical-b.jpeg\"  data- data-eio-rwidth=\"720\" data-eio-rheight=\"465\"\/><\/a>Claude Desktop Buddy showing pet stats and mood (left) and a real-time approval prompt with physical button controls (right).<\/p>\n<p>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 \u201cdizzy\u201d 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 <a href=\"https:\/\/github.com\/espressif\/esp-desktop-buddy\" rel=\"nofollow noopener\" target=\"_blank\">ESP Desktop Buddy library<\/a> for developers who prefer not to use Arduino.<\/p>\n<p><a href=\"https:\/\/www.cnx-software.com\/wp-content\/uploads\/2026\/05\/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.jpg\" rel=\"nofollow noopener\" target=\"_blank\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-170547 size-medium lazyload\" title=\"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).\" alt=\"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).\" width=\"720\" height=\"276\" data-eio=\"p\" src=\"https:\/\/www.europesays.com\/ai\/wp-content\/uploads\/2026\/05\/Claude-desktop-app-showing-the-Hardware-Buddy-window-in-the-Developer-menu-left-and-the-pairing-inte.jpeg\"  data- data-eio-rwidth=\"720\" data-eio-rheight=\"276\"\/><\/a>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).<\/p>\n<p>As a side note, we just wrote about the <a href=\"https:\/\/www.cnx-software.com\/2026\/05\/14\/clawdmeter-a-diy-esp32-s3-desk-dashboard-for-claude-code-token-usage-monitoring\/\" rel=\"nofollow noopener\" target=\"_blank\">Clawdmeter<\/a> 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\u2019s official open-source interactive companion with physical button approvals and Tamagotchi-style pet feedback.<\/p>\n<p>\ufeff<\/p>\n<p><img loading=\"lazy\" alt=\"Debashis Das\" class=\"avatar avatar-100 photo lazyload\" height=\"100\" width=\"100\" itemprop=\"image\" src=\"https:\/\/www.europesays.com\/ai\/wp-content\/uploads\/2026\/05\/3746a4b12bb7f9d6ad70fdf2c1886c0ee5dece45404f2945e5efceb71716ca73.png\" decoding=\"async\"  data-eio-rwidth=\"100\" data-eio-rheight=\"100\"\/><\/p>\n<p>Debashis Das is a technical content writer and embedded engineer with over five years of experience in the industry. With expertise in Embedded C, PCB Design, and SEO optimization, he effectively blends difficult technical topics with clear communication<\/p>\n<p>Support CNX Software! Donate via <a href=\"https:\/\/www.cnx-software.com\/donate-cryptocurrencies\/\" rel=\"nofollow noopener\" target=\"_blank\">cryptocurrencies<\/a>, <a href=\"https:\/\/www.patreon.com\/cnxsoft\" target=\"_blank\" rel=\"nofollow noopener\">become a Patron<\/a> on Patreon, or purchase goods on <a href=\"https:\/\/amzn.to\/3SXubZ0\" rel=\"nofollow noopener\" target=\"_blank\">Amazon<\/a> or <a href=\"https:\/\/s.click.aliexpress.com\/e\/_DmGIIRT\" rel=\"nofollow noopener\" target=\"_blank\">Aliexpress<\/a>. We also use affiliate links in articles to earn commissions if you make a purchase after clicking on those links.<\/p>\n","protected":false},"excerpt":{"rendered":"Anthropic has opened its Claude Hardware Interface (Bluetooth API) to developers, enabling an ESP32-S3-based desk companion to connect&hellip;\n","protected":false},"author":2,"featured_media":40301,"comment_status":"","ping_status":"","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[8],"tags":[53,3154,23915,111,18107,182,23919,24646,24647,335,1757],"class_list":["post-40300","post","type-post","status-publish","format-standard","has-post-thumbnail","category-anthropic","tag-anthropic","tag-anthropic-claude","tag-arduino","tag-artificial-intelligence-ai","tag-bluetooth","tag-claude","tag-esp32","tag-espressif","tag-m5stack","tag-open-source","tag-tools"],"_links":{"self":[{"href":"https:\/\/www.europesays.com\/ai\/wp-json\/wp\/v2\/posts\/40300","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.europesays.com\/ai\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.europesays.com\/ai\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.europesays.com\/ai\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.europesays.com\/ai\/wp-json\/wp\/v2\/comments?post=40300"}],"version-history":[{"count":0,"href":"https:\/\/www.europesays.com\/ai\/wp-json\/wp\/v2\/posts\/40300\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.europesays.com\/ai\/wp-json\/wp\/v2\/media\/40301"}],"wp:attachment":[{"href":"https:\/\/www.europesays.com\/ai\/wp-json\/wp\/v2\/media?parent=40300"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.europesays.com\/ai\/wp-json\/wp\/v2\/categories?post=40300"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.europesays.com\/ai\/wp-json\/wp\/v2\/tags?post=40300"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}