Voice
Vauxr Openclaw
An OpenClaw plugin that gives your agents the ability to speak through and control Vauxr voice assistant devices.
Install
openclaw plugins install path:/path/to/vauxr-openclaw
Configuration Example
{
"channels": {
"vauxr": {
"url": "http://vauxr:8765",
"token": "your-channel-token",
"voiceSystemPrompt": "You are responding to a voice device. Use plain speech only β no emojis, no markdown, no code blocks. Keep replies concise."
}
},
"plugins": {
"entries": {
"vauxr": {
"enabled": true,
"hooks": {
"allowPromptInjection": true
}
}
}
}
}
README
# vauxr-openclaw
An OpenClaw channel plugin that bridges Vauxr voice devices into the OpenClaw agent loop. It connects to [Vauxr](https://github.com/vauxr-ai/vauxr) over WebSocket, dispatches inbound transcripts to the agent, and streams response deltas back for TTS playback.
It also registers three agent tools for direct device control from any session.
[](https://opensource.org/licenses/MIT)
---
## How it works
### Channel Plugin Bridge (recommended)
```
Vauxr <ββWS (Vauxr protocol)ββ> vauxr-openclaw plugin <ββ> OpenClaw agent loop
```
- The plugin opens an outbound WS connection to Vauxr on startup
- Inbound transcripts from devices are dispatched into the agent loop as `vauxr:{device_id}` sessions
- Agent response deltas stream back to Vauxr in real time for TTS playback
- A `before_prompt_build` hook injects a voice-optimized system prompt for all vauxr sessions
### Fallback: Direct Operator WS
```
Vauxr <ββWS (OpenClaw protocol)ββ> OpenClaw gateway
```
If installing the plugin is undesirable, Vauxr can connect directly to the OpenClaw gateway as an operator. This still works but is limited:
- No voice system prompt injection
- No session detection for vauxr-specific behavior
- No plugin-side control over prompt or session routing
To use fallback mode, configure Vauxr with `OPENCLAW_URL` and `OPENCLAW_TOKEN` environment variables and do not install this plugin.
---
## Tools
| Tool | What it does |
|---|---|
| `vauxr_devices` | Lists all Vauxr devices connected to Vauxr, with their IDs, names, and connection state |
| `vauxr_announce` | Synthesizes text via Piper TTS and plays it through a device's speaker |
| `vauxr_control` | Sends a control command to a device (`set_volume`, `mute`, `unmute`, `reboot`) |
These tools use the Vauxr REST API and work in any session, not just vauxr voice sessions.
---
## Requirements
- OpenClaw gateway
- [Vauxr](https://github.com/vauxr-ai/vauxr) running and reachable
- At least one paired Vauxr device connected to Vauxr
---
## Installation
Install from the repo directly:
```bash
openclaw plugins install path:/path/to/vauxr-openclaw
```
Then configure in your OpenClaw config:
```json
{
"channels": {
"vauxr": {
"url": "http://vauxr:8765",
"token": "your-channel-token",
"voiceSystemPrompt": "You are responding to a voice device. Use plain speech only β no emojis, no markdown, no code blocks. Keep replies concise."
}
},
"plugins": {
"entries": {
"vauxr": {
"enabled": true,
"hooks": {
"allowPromptInjection": true
}
}
}
}
}
```
- `url` β Vauxr base URL (HTTP)
- `token` β channel token generated in the Vauxr portal
- `voiceSystemPrompt` β optional, appended to the system prompt for all vauxr sessions
The `allowPromptInjection` hook permission is required for the voice system prompt to take effect.
---
## Usage
Once installed, the plugin connects to Vauxr automatically. Voice turns from any device are routed through the plugin into the agent loop, and responses stream back for TTS playback.
The agent tools are available in all sessions:
**Announce something:**
> "Announce through the living room speaker that dinner is ready."
**Device control:**
> "Mute the bedroom speaker."
> "Turn the volume up on the kitchen device."
---
## Architecture
```
Vauxr device (mic)
β
β voice.start / audio / voice.end
βΌ
Vauxr (STT: Whisper)
β
β channel.transcript (WS)
βΌ
vauxr-openclaw plugin
β
β subagent.run(sessionKey: "vauxr:{device_id}")
βΌ
OpenClaw agent loop
β
β agent event deltas
βΌ
vauxr-openclaw plugin
β
β channel.response.delta (WS)
βΌ
Vauxr (TTS: Piper)
β
β 0x02 audio frames
βΌ
Vauxr device (speaker)
```
---
## License
Vauxr OpenClaw is licensed under the [MIT License](LICENSE).
voice
Comments
Sign in to leave a comment