OpenAI Realtime embed · Vanilla HTML
This is the hello-world integration. Fork it, run locally, and drop the same embed into your product shell.
From the repo root, ./start runs all examples (or ./start sveltekit / ./start nextjs / ./start react-vite for those frameworks). To run only this one:
cd examples/openai-realtime-embed/vanilla
npx serve . -l tcp://localhost:4007
# http://localhost:4007 Local URL: http://localhost:4007
The demo uses a single public experience id
(exp_01EXAMPLES_COFFEE_BARISTA) written directly in the page.
Load the CDN script and mount the web component with one experience id:
<script src="https://cdn.liforma.ai/sdk/v2/client.js"><\/script>
<liforma-experience experience-id="exp_01EXAMPLES_COFFEE_BARISTA"></liforma-experience> helloByo.js — copy the npm pattern from docs —
vanilla wraps bridge.jsapp.js — demo scaffolding onlybridge.js — CDN port of the SDK helperserver.mjs — demo mint / proxyUse the Liforma OpenAI Realtime embed example as source material to build a vanilla HTML app. Source repo folder: examples/openai-realtime-embed/vanilla Copy `helloByo.js` (`startByoSpeech`) — thin wrapper over `bridge.js` / `connectOpenAiRealtime`. `app.js` is demo scaffolding only. Prefer `@liforma/client/openai` in bundled apps. Preserve: - CDN script: https://cdn.liforma.ai/sdk/v2/client.js - `Experience.startSession` in presenter mode with `speechInputMode: 'off'` - OpenAI Realtime → Liforma bridge (pipe PCM + transcript into createUtterance) - local ephemeral client-secret mint pattern (never ship OPENAI_API_KEY to production browsers) Adapt: - branding - experience id - Realtime model / voice / instructions - production ephemeral-secret backend