Give your Hermes Agent a body.
This turns a cheap AliExpress AI robot toy into a voice device for Hermes Agent — running entirely on your own machine, using your own model, with no vendor cloud in the loop.
Hold one button, talk, and Hermes answers out loud. The robot's screen becomes Hermes's face, and the whole thing runs on its own battery.
| The robot | ESP32-S3 1.28" AI Voice Chat Robot — round screen, microphone, speaker, battery, touch. About AU$36. |
| A USB-C cable | Any data cable. Some charge-only cables won't work. |
| A computer | To flash it once. Any OS. |
| Hermes Agent | Installed and working, on a machine on the same network. |
That's it. No soldering, no extra parts, no subscriptions.
Three things happen: flash the robot, tell it your Wi-Fi, connect it to Hermes.
Install esptool:
pip install esptoolDownload the firmware from firmware/ in this repo, then flash it:
esptool.py --chip esp32s3 --baud 460800 write_flash 0x0 hermes-gadget-spotpear-128-box-0.2.0.binPlug the robot into your computer with the USB-C cable when you run that. If it won't connect, unplug it, hold the boot button (the one to the right of the USB-C port), plug it back in while still holding, then release.
The robot has no keyboard, so it borrows your phone:
- Plug the robot in and wait for it to show a setup screen.
- On your phone, join the Wi-Fi network called
Hermes-XXXX— the password is shown on the robot's screen. - Open http://192.168.4.1 and enter your home Wi-Fi details.
Your password goes straight from your phone to the robot. It never passes through any server.
On the machine running Hermes:
hermes plugins install https://github.com/Adolanium/hermes-gadget-sdk/tree/main/plugin --enable
hermes config set platforms.gadget.enabled true
hermes gateway restart
hermes gadget infoThen allow the gadget port through your firewall — this is the step most people miss:
# Linux (ufw)
sudo ufw allow from 192.168.1.0/24 to any port 8765 proto tcpThe robot connects within a few seconds and shows Ready.
Hold the boot button, talk, release. Hermes answers out loud.
| Talk | Hold boot, speak, release. Hermes hears you. |
| Listen | Replies are shown on screen and spoken aloud. |
| Touch | Swipe down to cancel a reply. |
| Battery | Unplugged and portable. Charge level shown on screen. |
| Anything Hermes can do | It's a real Hermes client — tools, memory, skills, cron. Ask it to check your calendar. |
Speech recognition and text-to-speech use whatever you already have configured in Hermes.
- Port 8765 reachable from your LAN. Bluetooth isn't used.
- Speech configured. Speech-to-text and text-to-speech, either through
hermes setupor thestt:/tts:sections ofconfig.yaml. Without it the robot still works, but replies are text-only. ffmpegif your speech output isn't WAV.
| The device | What the robot is, what's inside it, where to buy |
| Flash Hermes | Putting the firmware on, start to finish |
| Connect to Hermes | Wi-Fi, the plugin, the firewall, pairing |
| Using it | Everyday use and settings |
| The skill | The agent skill used to port this board, reusable for others |
The board profile for this exact robot is in firmware/spotpear-128-box.patch — a patch against the Hermes Gadget SDK.
For a different robot, skills/hermes-gadget-hardware/ is an agent skill that walks through identifying unknown hardware and porting it — reading the vendor's schematic and config, choosing the right driver enums, and knowing which parts need new code versus configuration. Point your agent at it.
This builds on other people's work:
- Hermes Gadget SDK by Adolanium and contributors (MIT) — the firmware and the Hermes plugin. Independent community project, not affiliated with Nous Research.
- xiaozhi-esp32 — the open-source firmware the robot ships with. Its board definitions and SpotPear's published schematics are what made the port possible.
- SpotPear — the robot itself, with schematics and pin tables published.
- Hermes Agent by Nous Research.
The firmware in firmware/ is MIT, derived from the Hermes Gadget SDK. See LICENSE.
Built by Hermes.
Researched the hardware from a product listing, identified the board over the network, read the vendor's own schematic and firmware source, wrote the board port, fixed three bugs in the SDK to make it build, compiled and flashed the firmware, and wired the device into the gateway — start to finish, in one session.