Stream Kit Docs
Plugins

TTS

Text-to-speech with local Piper voices, StreamElements, and ElevenLabs.

TTS

The TTS plugin speaks text through local Piper voices, StreamElements, or ElevenLabs.

Setup

Open Plugins → TTS → Configure and set up one or more providers:

ProviderRequirements
Local TTSDownload Piper voices in the app
StreamElementsStreamElements overlay token
ElevenLabsElevenLabs API key

ElevenLabs voices

After a valid API key:

  1. Open Voices on the configure page.
  2. Search and copy a voice ID from the table.
  3. In TTS → ElevenLabs → Speak Text, choose Variable for voice and use {voiceId} from context.

Choose a default model on the configure page; override per handler or use Use default model.

Handlers

HandlerDescription
TTS → SkipStop the currently playing TTS message (and discard in-flight synthesis); the next queued clip still plays
TTS → Local → Speak TextOffline Piper voice
TTS → StreamElements → Speak TextCloud via StreamElements
TTS → ElevenLabs → Speak TextCloud via ElevenLabs

Each handler supports a fixed voice or a Variable voice ID.

Speak handlers finish after their audio has finished playing, or after a playback timeout (about two minutes) if the audio device hangs. A stalled ElevenLabs request is aborted after 30 seconds. In both cases the handler fails softly and the next clip or action can run — the TTS queue will not stay blocked. Use an action queue with blocking enabled when later actions must wait for that speech to end.

Reference: TTS handlers.

On this page