Introducing Voice Control for MQTT Devices and Local Hermes Agents

Talk to your devices and your own agent Two new guides are live on OpenHome. One lets you control smart devices over MQTT by voice. The other lets you run an...

Author: P.J. Leimgruber

Talk to your devices and your own agent

Two new guides are live on OpenHome. One lets you control smart devices over MQTT by voice. The other lets you run an AI agent on your own machine and speak to it through OpenHome. Both keep the work local and in your hands.

MQTT device control

You can now command MQTT devices by voice through the DevKit. Lights, plugs, sensors, appliances. If it speaks MQTT, an Ability can control it.

The core pieces:

  • Send commands from an Ability with send_devkit_mqtt_action. Turn a device on or off, or pass custom actions like brightness, color, and temperature.

  • Configure the DevKit's MQTT broker from the dashboard, then connect your devices to it.

  • Read the devices a user has already set up through self.worker.mqtt_devices, so an Ability can check what is available before it acts.

The guide covers the full path. How MQTT runs on the DevKit, how to set up the broker, how to add devices, and a template Ability that controls them by voice.

Hermes agent integration

You can now run the Hermes Agent from Nous Research locally and talk to it through OpenHome. A small bridge on your PC forwards each spoken request to Hermes and speaks the reply back.

What you get:

  • Voice access to a model running on your own hardware. No cloud round trip for the model itself.

  • A bridge that adapts to your setup. It detects a live Hermes API endpoint and uses it, and falls back to the command line when it has to.

  • A full setup path. Install Hermes, download the bridge, set your API key, and add the Ability from the Marketplace.

Because Hermes runs with your shell, files, tools, and memory, an Ability can act on the real state of your machine. It is your computer, answering out loud.

What it looks like in practice

Picture yourself at your desk with a build running and your hands busy. You just ask.

You: "Hermes, did the build finish?"
Hermes: "It finished two minutes ago. All tests passed."

You: "What changed on main since my last pull?"
Hermes: "Four new commits. Two touch the auth service, one updates CI, one fixes the README."

You: "My disk is getting tight. Clear some space."
Hermes: "I can drop the Docker build cache, about nine gigabytes. Run it?"
You: "Go ahead."
Hermes: "Done. Twenty-three gigabytes free now."

You: "That's all, thanks."
Hermes: "Exiting now."

Follow-up questions skip the wake word. The loop stays open until you say an exit word like stop or done. In that exchange Hermes read live state off the machine, carried context across questions, and asked before it cleared anything. That last point matters. When a request looks destructive, the Ability confirms with you before it sends.

The same pattern works away from the keyboard. Get a status check while the coffee brews. Kick off a long script from across the room. Ask why the server is throwing errors without opening a terminal.

One caution. Local Link runs Hermes with your permissions, so only ask for things you would run yourself. Keep your API key private and rotate it if it leaks.

Try it

Templates for both live on the Marketplace and in GitHub.

Build something and tell us what you made.