Agent-readable docs index: /docs/llms.txt. Full docs in one file: /docs/llms-full.txt. Download /docs/docs.zip to grep all markdown files locally.

Voice

Choose a voice when your server creates the session. The selected voice stays consistent across the agent's full responses, quick reactions, and conversational bridge speech.
ts
const response = await fetch( "https://inkibra-voice.inkibra.workers.dev/v1/sessions", { method: "POST", headers: { authorization: `Bearer ${process.env.INKIBRA_API_KEY}`, "content-type": "application/json", }, body: JSON.stringify({ voice: "ara" }), }, ); const { token } = await response.json();

Built-in voices

VoiceCharacter
eveEnergetic and upbeat
araWarm and friendly
rexConfident and clear
salSmooth and balanced
leoAuthoritative and strong
eve is the default when voice is omitted. Voice IDs are case-insensitive.

Where voice is configured

Voice belongs to session creation on your server—not LiveVoice.connect() in the browser. The browser receives a short-lived token that already contains the approved voice configuration, so it never receives provider credentials or changes provider routing.
To change voices, create a new session token. A voice cannot change midway through an active session.

Server media

When the server SDK creates the session for a telephone or other media adapter, pass the same provider-neutral voice ID:
ts
const session = await LiveVoice.connect({ apiKey: process.env.INKIBRA_API_KEY!, audio: providerAudioTransport, voice: "rex", prompt: "Help callers schedule an appointment.", });
Start with ara for a warm conversational agent or rex for a more direct operational assistant. Test the same script with several voices: delivery affects how interruptions and short acknowledgments feel, not only how the voice sounds.