sherpa-onnx-tts
steipete/clawdis
Offline text-to-speech using sherpa-onnx—no cloud, runs locally on macOS, Linux, and Windows.
What is sherpa-onnx-tts?
Local TTS via sherpa-onnx CLI that converts text to audio files without internet or external services. Use this when you need private, fast speech synthesis with no API dependencies.
- Generate WAV audio files from text using offline models
- Support multiple voice models (Piper en_US lessac included by default)
- Run on macOS, Linux, and Windows with platform-specific runtimes
- Configure custom model files and token/data directories
- Integrate into shell scripts or agent workflows via CLI wrapper
How to install sherpa-onnx-tts
npx skills add https://github.com/steipete/clawdis --skill sherpa-onnx-tts- Download and extract the sherpa-onnx runtime for your OS (macOS, Linux, or Windows x64)
- Download at least one voice model (Piper en_US lessac provided; others available from sherpa-onnx releases)
- Set environment variables SHERPA_ONNX_RUNTIME_DIR and SHERPA_ONNX_MODEL_DIR in OpenClaw config
- Node.js environment (for wrapper execution)
How to use sherpa-onnx-tts
- 1.Resolve your OpenClaw state directory (default ~/.openclaw)
- 2.Download the runtime for your OS and extract to tools/sherpa-onnx-tts/runtime
- 3.Download a voice model and extract to tools/sherpa-onnx-tts/models
- 4.Update ~/.openclaw/openclaw.json with SHERPA_ONNX_RUNTIME_DIR and SHERPA_ONNX_MODEL_DIR paths
- 5.Run the CLI: {baseDir}/bin/sherpa-onnx-tts -o output.wav "Your text here"
Use cases
- Generate spoken audio for accessibility or narration in local projects
- Create voice output for offline applications without cloud TTS costs
- Batch convert text documents to speech files locally
- Integrate speech synthesis into CI/CD or automation pipelines
- Use alternative voice models for different languages or speaker profiles
- Developers building offline-first applications
- Teams with privacy or data residency requirements
- Users seeking cost-effective TTS without API subscriptions
- Automation engineers integrating speech into local workflows
sherpa-onnx-tts FAQ
Download a different model from the sherpa-onnx tts-models release, extract it to the models directory, and update SHERPA_ONNX_MODEL_DIR in your config or pass --model-file to the CLI.
No. Once the runtime and models are downloaded, everything runs offline locally.
Set the SHERPA_ONNX_MODEL_FILE environment variable or pass --model-file to specify which one to use.
Run export PATH="{baseDir}/bin:$PATH" in your shell, or add that line to your shell profile.
Use node {baseDir}\bin\sherpa-onnx-tts -o tts.wav "Your text" on Windows.
Full instructions (SKILL.md)
Source of truth, from steipete/clawdis.
name: sherpa-onnx-tts description: "Local text-to-speech via sherpa-onnx (offline, no cloud)" metadata: { "openclaw": { "emoji": "🔉", "os": ["darwin", "linux", "win32"], "requires": { "env": ["SHERPA_ONNX_RUNTIME_DIR", "SHERPA_ONNX_MODEL_DIR"] }, "install": [ { "id": "download-runtime-macos", "kind": "download", "os": ["darwin"], "url": "https://github.com/k2-fsa/sherpa-onnx/releases/download/v1.13.2/sherpa-onnx-v1.13.2-osx-universal2-shared.tar.bz2", "archive": "tar.bz2", "extract": true, "stripComponents": 1, "targetDir": "runtime", "label": "Download sherpa-onnx runtime (macOS)", }, { "id": "download-runtime-linux-x64", "kind": "download", "os": ["linux"], "url": "https://github.com/k2-fsa/sherpa-onnx/releases/download/v1.13.2/sherpa-onnx-v1.13.2-linux-x64-shared.tar.bz2", "archive": "tar.bz2", "extract": true, "stripComponents": 1, "targetDir": "runtime", "label": "Download sherpa-onnx runtime (Linux x64)", }, { "id": "download-runtime-win-x64", "kind": "download", "os": ["win32"], "url": "https://github.com/k2-fsa/sherpa-onnx/releases/download/v1.13.2/sherpa-onnx-v1.13.2-win-x64-shared-MD-Release.tar.bz2", "archive": "tar.bz2", "extract": true, "stripComponents": 1, "targetDir": "runtime", "label": "Download sherpa-onnx runtime (Windows x64)", }, { "id": "download-model-lessac", "kind": "download", "url": "https://github.com/k2-fsa/sherpa-onnx/releases/download/tts-models/vits-piper-en_US-lessac-high.tar.bz2", "archive": "tar.bz2", "extract": true, "targetDir": "models", "label": "Download Piper en_US lessac (high)", }, ], }, }
sherpa-onnx-tts
Local TTS using the sherpa-onnx offline CLI.
Install
- Download the runtime for your OS (extracts into
$OPENCLAW_STATE_DIR/tools/sherpa-onnx-tts/runtime, default~/.openclaw/tools/sherpa-onnx-tts/runtime) - Download a voice model (extracts into
$OPENCLAW_STATE_DIR/tools/sherpa-onnx-tts/models, default~/.openclaw/tools/sherpa-onnx-tts/models)
Resolve the active state directory first:
STATE_DIR="${OPENCLAW_STATE_DIR:-$HOME/.openclaw}"
Then write those resolved paths into the active OpenClaw config file ($OPENCLAW_CONFIG_PATH, default ~/.openclaw/openclaw.json):
{
skills: {
entries: {
"sherpa-onnx-tts": {
env: {
SHERPA_ONNX_RUNTIME_DIR: "/path/to/your/state-dir/tools/sherpa-onnx-tts/runtime",
SHERPA_ONNX_MODEL_DIR: "/path/to/your/state-dir/tools/sherpa-onnx-tts/models/vits-piper-en_US-lessac-high",
},
},
},
},
}
The wrapper lives in this skill folder. Run it directly, or add the wrapper to PATH:
export PATH="{baseDir}/bin:$PATH"
Usage
{baseDir}/bin/sherpa-onnx-tts -o ./tts.wav "Hello from local TTS."
Notes:
- Pick a different model from the sherpa-onnx
tts-modelsrelease if you want another voice. - If the model dir has multiple
.onnxfiles, setSHERPA_ONNX_MODEL_FILEor pass--model-file. - You can also pass
--tokens-fileor--data-dirto override the defaults. - Windows: run
node {baseDir}\\bin\\sherpa-onnx-tts -o tts.wav "Hello from local TTS."
Related skills
More from steipete/clawdis and the wider catalog.

skill-creator
Create, edit, audit, tidy, validate, or restructure AgentSkills and SKILL.md files.

slack
Send, read, edit, delete, and react to Slack messages with full channel and member management.

songsee
Generate spectrograms and multi-panel audio visualizations from MP3, WAV, and other formats.

sonoscli
Control Sonos speakers on your local network—discover, play, pause, adjust volume, and group speakers.

spotify-player
Terminal Spotify playback and search via spogo or spotify_player.

summarize
Fast CLI to summarize or transcribe URLs, videos, podcasts, articles, PDFs, and local files.