Skip to main content
The Finesse plugin for LiveKit Agents is the text-to-speech for your voice agent: a voice from the catalog or one you cloned, speaking any of 60 languages.
  • Realtime: the agent’s reply streams to Finesse as the LLM writes it, so speech starts before the reply is finished.
  • Interruptions: when the user talks over the agent, the reply is cancelled on the Finesse server straight away.
  • Telephony: 8 kHz audio for phone calls, or up to 48 kHz for everything else.

npm

@flamai/livekit-plugin-finesse, for Node 20+ and @livekit/agents 1.9+.

Source on GitHub

homingos/livekit-finesse, Apache-2.0.
The plugin is for Node.js. Python support for LiveKit Agents is coming soon.

Install

Create an API key in the dashboard under Developers → API Keys, and put it in your agent’s environment, where the plugin reads it:
Keep the key on your server. See Authentication.

Add it to your agent

Set tts on your AgentSession to a Finesse TTS with the id of a ready voice:
agent.ts
Run it with tsx agent.ts dev and talk to it in the Agents Playground. Already have an agent? The only change is the tts line. To find a voice id, copy one from Voices in the dashboard, or call List voices. Cloned voices work like any other. See Voices.

Options

updateOptions() changes the voice, language or synthesis settings from the agent’s next reply:

Phone calls

For SIP and telephony agents, ask for 8 kHz so the audio goes to the call without resampling:

Connections and limits

Replies share a pool of WebSocket connections, so only the first reply pays to connect. Call tts.prewarm() when the agent starts to open one early. Each open connection holds one of your plan’s concurrent streams: see Rate limits.

Errors

Errors are LiveKit’s APIStatusError, APIConnectionError and APITimeoutError, so they work with AgentSession error events and LiveKit’s fallback adapter. Errors that can’t succeed on a retry are marked retryable: false. See Errors for every code. The plugin streams over the Realtime WebSocket, so everything there applies.