ElevenLabs embed · SvelteKit

ElevenLabs embed — SvelteKit

Runnable in repo

This is the hello-world integration. Fork it, run locally, and drop the same embed into your product shell.

Run locally

From the repo root, ./start runs all examples (or ./start sveltekit / ./start nextjs / ./start react-vite for those frameworks). To run only this one:

terminal
cd examples/elevenlabs-embed/sveltekit
npm install
npm run dev
# http://localhost:4006

Local URL: http://localhost:4006

Experience id

The demo uses a single public experience id (exp_01EXAMPLES_COFFEE_BARISTA) written directly in the page.

Liforma integration

Import the Svelte component and pass one experience id:

embed
<script>
  import { Experience } from '@liforma/client/svelte';
</script>

<Experience experienceId="exp_01EXAMPLES_COFFEE_BARISTA" />

Key files

  • src/lib/helloByo.tscopy into your productstartByoSpeech (thin SDK call)
  • src/routes/+page.svelte — demo scaffolding only (Connect / Start UI)
  • src/routes/api/…/+server.ts — demo credential mint

Related docs

AI agent prompt

Use the Liforma ElevenLabs embed SvelteKit example as source material.

Source repo folder: examples/elevenlabs-embed/sveltekit

Copy `src/lib/helloByo.ts` (`startByoSpeech` → `connectElevenLabsAgent`) into your product — that is the integration.
`src/routes/+page.svelte` is demo scaffolding only; `src/lib/config.ts` is suggested agent prompt text.

Preserve:
- `<Experience />` from `@liforma/client/svelte` in presenter mode with `speechInputMode="off"`
- `startByoSpeech(experience, { signedUrl })` after audio unlock (thin wrapper over `connectElevenLabsAgent`)
- signed-URL mint on a server route (never ship ElevenLabs API keys to production browsers)
- TypeScript and normal CSS (no Tailwind)

Adapt:
- branding
- experience id
- your ElevenLabs agent
- production signed-URL backend