Local Realtime Voice
Local realtime voice and dictation for OpenClaw using Whisper STT, Kokoro TTS, and Ollama chat.
Install
$
openclaw plugins install clawhub:@snoutfirst/local-realtime-voiceLocal Realtime Voice
An installable ClawHub / npm plugin for OpenClaw that adds a fully local realtime voice assistant and dictation provider.
- STT: Whisper via a Whisper-compatible HTTP API (e.g. faster-whisper-server, whisper.cpp server, etc.).
- TTS: Kokoro via the
/v1/audio/speechendpoint. - Chat: Ollama for local LLM responses.
This plugin was originally proposed as an OpenClaw core extension in PR #96173. The maintainers recommended publishing it as a community plugin instead, so this package is the standalone ClawHub submission. The original PR is left intact and closed.
Install
openclaw plugins install clawhub:@snoutfirst/local-realtime-voice
# or from npm:
openclaw plugins install npm:@snoutfirst/local-realtime-voice
Restart the Gateway after install:
openclaw gateway restart
Configure
Enable the plugin and set the endpoints for your local services in ~/.openclaw/openclaw.json:
{
"plugins": {
"enabled": true,
"allow": ["local-realtime-voice"],
"entries": {
"local-realtime-voice": {
"enabled": true,
"config": {
"whisperBaseUrl": "http://127.0.0.1:8000",
"kokoroBaseUrl": "http://127.0.0.1:8880",
"ollamaBaseUrl": "http://127.0.0.1:11434",
"chatModel": "llama3.1",
"kokoroVoice": "af"
}
}
}
},
"voice": {
"realtimeProvider": "local"
}
}
Options
| Option | Default | Description |
|---|---|---|
whisperBaseUrl | http://127.0.0.1:8000 | Base URL of a Whisper-compatible STT server. |
whisperModel | "" | Optional model name passed to the STT endpoint. |
kokoroBaseUrl | http://127.0.0.1:8880 | Base URL of a Kokoro-compatible TTS server. |
kokoroVoice | af | Voice ID for Kokoro TTS. |
ollamaBaseUrl | http://127.0.0.1:11434 | Base URL of the local Ollama API. |
chatModel | (from config defaults) | Ollama model name for chat responses. |
vadThreshold | 100 | PCM16 energy threshold for voice activity detection. |
silenceMs | 1200 | Silence duration that ends a user turn. |
maxTurnMs | 15000 | Maximum duration of a single user turn. |
partialIntervalMs | 2000 | Interval for partial dictation transcripts. |
audioChunkMs | 50 | TTS audio chunk size for streaming playback. |
Requirements
- OpenClaw Gateway
>= 2026.6.9 - A running Whisper-compatible STT server
- A running Kokoro-compatible TTS server
- A running Ollama instance with the model you select
Development
cd local-realtime-voice-clawhub
openclaw plugins install --link .
openclaw gateway restart
License
MIT
