Adolanium/hermes-gadget-sdk
Build small ESP32 voice gadgets for your own Hermes Agent: push-to-talk firmware, a desktop simulator and a Hermes platform plugin.
About Adolanium/hermes-gadget-sdk
Adolanium/hermes-gadget-sdk is an open-source project on GitHub, mainly written in C++. Build small ESP32 voice gadgets for your own Hermes Agent: push-to-talk firmware, a desktop simulator and a Hermes platform plugin. It currently holds 136 stars and 14 forks with 0 open issues, and was last pushed on an unknown date (repository created unknown).
Project Overview
AI Homed tracks it on the Today's Trending board, currently at rank #70 with 0 new stars today.
GitHub Repository Details
README
Hermes Gadget
Hold a button. Ask Hermes. Hear the answer.
A small device for your own Hermes Agent, with its tools, memory, and skills.
Set up a board · Try the simulator · Read the docs
The desktop simulator runs the same device core. No board needed to try it.
Choose your starting point
| I have a board | I want to try it first | I want to build with it | |---|---|---| | Open the browser installer | Start the desktop simulator | Explore the SDK | | Install over USB, connect Wi-Fi, and pair with your Hermes. | Try a scripted demo, then connect your own Hermes. | Add a board, device actions, sensors, or your own face. | | Chrome or Edge, a USB data cable, 2.4 GHz Wi-Fi, and Hermes. No firmware toolchain. | Python 3.10+, CMake 3.16+, and a C++17 compiler. | Start with the development guide and tests. |
What you can do
- Talk and listen. Hold TALK to speak, release to send, and hear your Hermes reply.
- See what is happening. Read replies, answer confirmation questions, and receive cards from your agent.
- Let Hermes act. Expose the gadget's LEDs, sensors, and other controls as agent tools.
Supported hardware
| Board | How you talk | Audio | |---|---|---| | Waveshare ESP32-S3-LCD-1.54 | Hold BOOT | Onboard microphones and speaker | | Waveshare ESP32-S3-Touch-AMOLED-1.75 | Hold the screen | Onboard microphones; speaker output | | ESP32-S3 breadboard build | Hold TALK | Wire the microphone and optional speaker |
Check the exact model and connections in the hardware guide. Other boards need a port.
These ports build in CI. Physical verification reports are not yet recorded; treat them as experimental until the hardware verification table links a report for your revision.
Try the demo from a checkout
Already have Python, CMake, and a compiler? Start here.
In your activated environment at the repository root:
python -m pip install -e ".[dev]"
hermes-gadget build-sim --test
hermes-gadget devserver --pairing
In a second terminal with the same environment activated:
hermes-gadget sim --url ws://127.0.0.1:8765/gadget --board sim-466x466-round
Type approve in the first terminal, using the code on the device. Type a message in the simulator to receive a streamed echo. The desktop guide covers platform-specific prerequisites and live audio.
On the screen
| Ready | Listening | Thinking | Speaking |
|:---:|:---:|:---:|:---:|
|
|
|
|
|
These images show the simulator's device display. The simulator guide covers its desktop controls, board profiles, and scripted runs.
Find the right guide
| Use a gadget | Build with the SDK | |---|---| | Choose a starting point | Development and tests | | Set up a board | Add a board, actions, or sensors | | Try the simulator | Customize the face | | Connect Hermes | Architecture | | Talk, type, and interrupt | Protocol | | Change Wi-Fi or update firmware | Hermes integration reference | | Troubleshooting | Hardware and wiring |
Project status
Releases include prebuilt firmware for the three boards above. After the first USB flash, hermes gadget update installs new firmware over the air. A build that cannot reach Hermes rolls itself back.
The simulator and firmware share a portable C++17 core. CI tests the core, Python tools, installer, and plugin against a real Hermes gateway, and builds every supported board. The development guide describes the test suites and pinned Hermes version.
Wake-word activation and Wi-Fi setup without USB are not included.
Contributing
Bug reports from real boards, new boards, fixes, and docs are welcome. Read CONTRIBUTING.md. Report security problems privately through SECURITY.md.
Affiliation and trademarks
Hermes Gadget is an independent, community-made project. It is not affiliated with, endorsed by, sponsored by or supported by Nous Research.
"Hermes", "Hermes Agent", "Nous Research" and the Hermes Agent mascot (the girl with the headphones, sometimes called "Nous Girl") are trademarks or brand assets of Nous Research. They appear here only to describe compatibility with Hermes Agent.
License
The MIT license (LICENSE) covers only the code and documentation written for this project. It grants no rights to Nous Research's names or marks.
Everything else keeps its own license. None of it is copied into this repository; it is downloaded when you build or install:
| Third-party code | Used for | License |
|---|---|---|
| ESP-IDF | The ESP32 framework and drivers | Apache 2.0 |
| esp_codec_dev | ES8311 / ES7210 audio codecs | Apache 2.0 |
| esp_websocket_client | The device's WebSocket connection | Apache 2.0 |
| esptool-js | Flashing from the browser installer, added to the site when it's built | Apache 2.0 |
| Python packages (websockets, and optionally Pillow, sounddevice, pyserial) | Plugin, simulator and tools | Their own licenses; see each project |
The mascot artwork, and the logo and device bitmaps drawn from it, come from Hermes Agent (MIT, © 2025 Nous Research); see assets/mascot and NOTICE.
The AMOLED panel's start-up register values in firmware/esp32/main/port_amoled.cpp follow Waveshare's board support package for the ESP32-S3-Touch-AMOLED-1.75 (Apache 2.0, text in LICENSES/Apache-2.0.txt); see NOTICE.