{"id":49653542,"url":"https://github.com/kaltura/conversational-avatar-embed-sdk","last_synced_at":"2026-05-12T14:05:53.429Z","repository":{"id":336446268,"uuid":"1149706020","full_name":"kaltura/conversational-avatar-embed-sdk","owner":"kaltura","description":"Embed AI avatar conversations in any website — two SDKs: Socket (full control, WebRTC, GenUI rendering) and Iframe (drop-in simple, zero deps). Real-time video, speech recognition, dynamic prompts, rich visuals.","archived":false,"fork":false,"pushed_at":"2026-05-11T04:55:31.000Z","size":6051,"stargazers_count":1,"open_issues_count":0,"forks_count":1,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-05-11T06:40:00.492Z","etag":null,"topics":["ai","ai-avatar","avatar","conversational-ai","embed","generative-ui","genui","javascript","kaltura","real-time","sdk","socket-io","speech-recognition","text-to-speech","typescript","video-chat","webrtc"],"latest_commit_sha":null,"homepage":"https://kaltura.github.io/conversational-avatar-embed-sdk/","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/kaltura.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":"AGENTS.md","dco":null,"cla":null}},"created_at":"2026-02-04T12:29:58.000Z","updated_at":"2026-05-11T04:55:21.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/kaltura/conversational-avatar-embed-sdk","commit_stats":null,"previous_names":["zoharbabin/kaltura-avatar-sdk","kaltura/conversational-avatar-embed-sdk"],"tags_count":36,"template":false,"template_full_name":null,"purl":"pkg:github/kaltura/conversational-avatar-embed-sdk","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kaltura%2Fconversational-avatar-embed-sdk","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kaltura%2Fconversational-avatar-embed-sdk/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kaltura%2Fconversational-avatar-embed-sdk/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kaltura%2Fconversational-avatar-embed-sdk/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kaltura","download_url":"https://codeload.github.com/kaltura/conversational-avatar-embed-sdk/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kaltura%2Fconversational-avatar-embed-sdk/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32942219,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-12T09:19:52.626Z","status":"ssl_error","status_checked_at":"2026-05-12T09:17:33.438Z","response_time":102,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ai","ai-avatar","avatar","conversational-ai","embed","generative-ui","genui","javascript","kaltura","real-time","sdk","socket-io","speech-recognition","text-to-speech","typescript","video-chat","webrtc"],"created_at":"2026-05-06T06:05:07.858Z","updated_at":"2026-05-12T14:05:53.424Z","avatar_url":"https://github.com/kaltura.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n  \u003cstrong\u003eKaltura Avatar SDK\u003c/strong\u003e\u003cbr\u003e\n  \u003cem\u003eEmbed AI-powered video avatar conversations in any website\u003c/em\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://github.com/kaltura/conversational-avatar-embed-sdk/actions\"\u003e\u003cimg src=\"https://github.com/kaltura/conversational-avatar-embed-sdk/actions/workflows/ci.yml/badge.svg\" alt=\"CI\"\u003e\u003c/a\u003e\n  \u003ca href=\"LICENSE\"\u003e\u003cimg src=\"https://img.shields.io/badge/license-MIT-blue.svg\" alt=\"MIT License\"\u003e\u003c/a\u003e\n  \u003ca href=\"sdk-socket/dist/kaltura-avatar-sdk.d.ts\"\u003e\u003cimg src=\"https://img.shields.io/badge/types-TypeScript-blue.svg\" alt=\"TypeScript\"\u003e\u003c/a\u003e\n  \u003ca href=\"https://github.com/kaltura/conversational-avatar-embed-sdk/stargazers\"\u003e\u003cimg src=\"https://img.shields.io/github/stars/kaltura/conversational-avatar-embed-sdk?style=social\" alt=\"GitHub Stars\"\u003e\u003c/a\u003e\n\u003c/p\u003e\n\n---\n\nAdd a real-time AI avatar to your app in under 5 minutes. Users talk to a lifelike video avatar that sees, hears, and responds — with built-in speech recognition, dynamic prompts, and rich visual content (charts, tables, code, diagrams).\n\n**Two integration options** — pick the one that fits your project:\n\n| | **Socket SDK** | **Iframe SDK** |\n|---|---|---|\n| **Best for** | Full-featured apps needing control over video, events, and visuals | Quick embeds, sandboxed environments, or minimal integration |\n| **How it works** | Direct Socket.IO + WebRTC | Iframe + postMessage |\n| **You get** | Own the `\u003cvideo\u003e` element, real-time events, GenUI rendering, plugin system | Zero-config embed, automatic UI, browser sandbox isolation |\n| **Size** | ~157KB (+ Socket.IO) | ~6KB, zero dependencies |\n| **GenUI** | Built-in renderers for charts, tables, code, diagrams, video, images | Event notifications only |\n| **Path** | [`sdk-socket/`](sdk-socket/) | [`sdk-iframe/`](sdk-iframe/) |\n\n\u003e Both SDKs connect to the same Kaltura AI Avatar backend — same avatars, same Knowledge Base, same server-side AI.\n\n---\n\n## Get Started in 60 Seconds\n\n### Socket SDK (full control)\n\n```html\n\u003cdiv id=\"avatar\" style=\"width: 800px; height: 600px; background: #000;\"\u003e\u003c/div\u003e\n\n\u003cscript src=\"https://cdn.socket.io/4.7.2/socket.io.min.js\"\u003e\u003c/script\u003e\n\u003cscript src=\"https://cdn.jsdelivr.net/gh/kaltura/conversational-avatar-embed-sdk@latest/sdk-socket/dist/kaltura-avatar-sdk.js\"\u003e\u003c/script\u003e\n\n\u003cscript\u003e\nconst sdk = new KalturaAvatarSDK({\n  clientId: 'YOUR_CLIENT_ID',\n  flowId: 'YOUR_FLOW_ID',\n  container: '#avatar'\n});\n\nsdk.on('avatar-speech', ({ text }) =\u003e console.log('Avatar:', text));\nsdk.on('user-speech', ({ text, isFinal }) =\u003e { if (isFinal) console.log('You:', text); });\n\nsdk.connect();\n\u003c/script\u003e\n```\n\n### Iframe SDK (drop-in simple)\n\n```html\n\u003cdiv id=\"avatar\" style=\"width: 800px; height: 600px;\"\u003e\u003c/div\u003e\n\n\u003cscript src=\"https://cdn.jsdelivr.net/gh/kaltura/conversational-avatar-embed-sdk@latest/sdk-iframe/kaltura-avatar-sdk.min.js\"\u003e\u003c/script\u003e\n\n\u003cscript\u003e\nconst sdk = new KalturaAvatarSDK({\n  clientId: 'YOUR_CLIENT_ID',\n  flowId: 'YOUR_FLOW_ID',\n  container: '#avatar'\n});\n\nsdk.on('showing-agent', () =\u003e {\n  setTimeout(() =\u003e sdk.injectPrompt(JSON.stringify({ greeting: \"Hello!\" })), 500);\n});\n\nsdk.on('agent-talked', (data) =\u003e console.log('Avatar:', data.agentContent || data));\nawait sdk.start();\n\u003c/script\u003e\n```\n\n---\n\n## Key Capabilities\n\n- **Real-time video avatar** — lifelike face, lip-sync, expressions\n- **Speech recognition** — built-in mic capture with live transcription\n- **Dynamic Prompt Injection (DPP)** — inject JSON context at runtime to control behavior\n- **GenUI rendering** (Socket) — charts, tables, code editors, diagrams, videos, images render automatically\n- **Avatar spoken commands** — trigger JS functions when the avatar says specific phrases\n- **Transcripts** — built-in recording with export to text, markdown, or JSON\n- **Auto-reconnect** (Socket) — exponential backoff handles network drops\n- **Graceful degradation** (Socket) — falls back to audio-only or text-only automatically\n- **Multiple avatars** — run independent instances on the same page\n- **TypeScript** — full type definitions for both SDKs\n\n---\n\n## Use with AI Coding Agents\n\nThis repo works as an **instant skill** for Claude, ChatGPT, Copilot, Cursor, and any AI coding agent. Point your agent at this repo and describe what you want:\n\n```\nBuild me a customer onboarding avatar. My client ID is 123456, flow ID is agent-7.\n```\n\nThe agent generates both the **app code** and the **Knowledge Base prompt** for Kaltura Studio.\n\nSee [`AGENTS.md`](AGENTS.md) for the complete AI agent reference including the RICECO prompt framework.\n\n---\n\n## Live Demos\n\n| Demo | SDK | Description |\n|------|-----|-------------|\n| [Socket SDK Demo](sdk-socket/examples/demo/) | Socket | GenUI rendering, events panel, transcript, full control |\n| [AT\u0026T Seller Hub](sdk-iframe/examples/att_lily/) | Iframe | Dual-avatar sales coaching with knowledge checks |\n| [HR Avatar](sdk-iframe/examples/hr_avatar/) | Iframe | Interview simulations with AI call analysis |\n| [Code Interview](sdk-iframe/examples/code_interview/) | Iframe | Pair programming with live code context |\n| [Basic Demo](sdk-iframe/examples/basic_demo/) | Iframe | Minimal starter example |\n\nRun any demo locally: `python3 -m http.server 8080`\n\n---\n\n## Getting Your Client ID and Flow ID\n\n1. Log into [Kaltura Studio](https://studio.kaltura.com) (or your org's instance)\n2. Create or select an **AI Avatar agent**\n3. Find your **Client ID** and **Flow ID** in Embed / Integration settings\n\n---\n\n## Project Structure\n\n```\nsdk-socket/             ← Socket SDK: Direct Socket.IO + WebRTC\n  ├── src/              ← Source code\n  ├── dist/             ← Production bundle + TypeScript declarations\n  ├── plugins/          ← Optional extensions (KAVA analytics)\n  ├── tests/            ← Playwright tests\n  └── examples/demo/    ← Interactive demo\n\nsdk-iframe/             ← Iframe SDK: Sandboxed iframe embed\n  ├── kaltura-avatar-sdk.min.js / .js / .d.ts\n  └── examples/         ← Demo applications\n      ├── att_lily/     ← AT\u0026T Seller Hub\n      ├── hr_avatar/    ← HR Avatar\n      ├── code_interview/ ← Code Interview\n      └── basic_demo/   ← Minimal starter\n```\n\n---\n\n## Running Tests\n\n```bash\nnpm test                   # All tests (Iframe E2E + Socket unit)\ncd sdk-socket \u0026\u0026 npm test  # Socket SDK tests (~25 seconds)\nnpm run test:iframe        # Iframe SDK E2E only\n```\n\n---\n\n## Documentation\n\n| Resource | Description |\n|----------|-------------|\n| [Socket SDK Guide](sdk-socket/README.md) | Configuration, events, methods, GenUI, error codes |\n| [Iframe SDK / AI Agent Guide](AGENTS.md) | Full API reference, DPP patterns, RICECO framework |\n| [TypeScript API (Socket)](sdk-socket/dist/kaltura-avatar-sdk.d.ts) | Complete type definitions |\n| [TypeScript API (Iframe)](sdk-iframe/kaltura-avatar-sdk.d.ts) | Type definitions |\n| [Contributing](CONTRIBUTING.md) | How to contribute and add demos |\n\n---\n\n## Browser Support\n\n| Feature | Chrome | Firefox | Safari | Edge |\n|---------|--------|---------|--------|------|\n| Socket SDK (WebRTC) | 72+ | 68+ | 14+ | 79+ |\n| Iframe SDK | 60+ | 55+ | 11+ | 79+ |\n\n---\n\n## Contributing\n\nContributions welcome! See [CONTRIBUTING.md](CONTRIBUTING.md) for guidelines.\n\n## License\n\n[MIT](LICENSE) — Kaltura Inc.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkaltura%2Fconversational-avatar-embed-sdk","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkaltura%2Fconversational-avatar-embed-sdk","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkaltura%2Fconversational-avatar-embed-sdk/lists"}