brainstate

kwami-labs/kwami

Kwami is a browser TypeScript library for creating 3D interactive AI companions with visual, audio, and speech capabilities.

Kwami solves the problem of creating engaging, interactive AI companions by providing a library that combines visual avatars, voice pipelines, and AI capabilities for developers building web-based conversational agents. Kwami is a browser TypeScript library that renders a WebGL avatar on a canvas and connects it to a LiveKit-backed voice pipeline for real-time interaction.

TypeScript★ 50Apache-2.0GitHub ↗

Similar

  1. JustVugg/colibri

    colibri is a C inference engine that runs very large open mixture-of-experts models on the machine you already have.

    C★ 47.5kApache-2.0GitHub ↗

  2. deepseek-ai/dsh-superagent-prototype

    dsh-superagent is a research prototype for a proactive coding agent that works on a single GitHub repository using DeepSeek Harness.

    TypeScript★ 17.9kMITGitHub ↗

  3. anthropics/FlashProve

    FlashProve is a research prototype for zero-knowledge proofs of AI inference that allows providers to prove model identity without revealing weights.

    Lean★ 462Apache-2.0GitHub ↗

  4. KKKKhazix/agent-autoloop

    Agent Autoloop lets a command-line agent pick up work in the background and follow it through, asking for a decision only when something is uncertain.

    TypeScript★ 801MITGitHub ↗

  5. pgEdge/ai-dba-workbench

    A PostgreSQL monitoring system that combines traditional and AI-based monitoring for instances v14+ including Supabase and Amazon RDS.

    Go★ 50PostgreSQLGitHub ↗

  6. Anionex/treeAI

    TreeAI is a local-first visual workspace for exploring, comparing, and exporting LLM conversation trees across OpenAI-compatible models.

    TypeScript★ 50MITGitHub ↗

  7. moesaif/dna-studio

    DNA Studio is a self-hosted, open-source AI marketing platform that generates on-brand social media content from a website URL.

    TypeScript★ 50MITGitHub ↗

  8. NVIDIA/auto-ontology

    An open context layer that turns database metadata into an ontology, so AI agents answer questions about enterprise data with fewer wrong answers.

    Python★ 3.1kApache-2.0GitHub ↗

sources

Claims below include README evidence. A matching quote or worker agreement does not establish that a claim is correct. Category majority among 2 workers. Version 1.

Kwami is a browser TypeScript library for creating 3D interactive AI companions with visual, audio, and speech capabilities.

Kwami is a browser TypeScript library for 3D AI companions.

Quote matched the README or GitHub description at extraction. Same claim and quote from 1 worker(s). Interpretation not reviewed by a maintainer.

Kwami solves the problem of creating engaging, interactive AI companions by providing a library that combines visual avatars, voice pipelines, and AI capabilities for developers building web-based conversational agents.

Kwami is a browser TypeScript library for 3D AI companions. Drop a canvas on the page, give the companion a soul, and it can speak, listen, remember, and use tools — with a WebGL avatar that reacts in real time.

Quote matched the README or GitHub description at extraction. Same claim and quote from 1 worker(s). Interpretation not reviewed by a maintainer.

Kwami is a browser TypeScript library that renders a WebGL avatar on a canvas and connects it to a LiveKit-backed voice pipeline for real-time interaction.

Kwami is a browser TypeScript library for 3D AI companions. Drop a canvas on the page, give the companion a soul, and it can speak, listen, remember, and use tools — with a WebGL avatar that reacts in real time.

Quote matched the README or GitHub description at extraction. Same claim and quote from 1 worker(s). Interpretation not reviewed by a maintainer.

Provides 3D avatars including blob-xyz, black-hole, particles-face, and eye-iris with audio-reactive motion.

3D avatars — blob-xyz, black-hole, particles-face, and eye-iris, with skins, presets, and audio-reactive motion

Quote matched the README or GitHub description at extraction. Same claim and quote from 1 worker(s). Interpretation not reviewed by a maintainer.

Features a voice pipeline that mixes STT, LLM, and TTS or uses a realtime provider via LiveKit.

Voice pipeline — mix-and-match STT / LLM / TTS, or a realtime provider, dispatched through LiveKit

Quote matched the README or GitHub description at extraction. Same claim and quote from 1 worker(s). Interpretation not reviewed by a maintainer.

Supports a provider catalog including Deepgram, OpenAI, Anthropic, Gemini, ElevenLabs, Groq, Cartesia, and AssemblyAI.

Provider catalog — Deepgram, OpenAI, Anthropic, Gemini, ElevenLabs, Groq, Cartesia, AssemblyAI, and more

Quote matched the README or GitHub description at extraction. Same claim and quote from 1 worker(s). Interpretation not reviewed by a maintainer.

Includes soul presets for ready-made personalities like Kaya, Nexus, Phoenix, and Haven with live trait updates.

Soul presets — ready-made personalities (Kaya, Nexus, Phoenix, Haven, …) plus live trait updates

Quote matched the README or GitHub description at extraction. Same claim and quote from 1 worker(s). Interpretation not reviewed by a maintainer.

Offers optional long-term memory so the companion remembers the user across sessions.

Memory — optional long-term context so the companion remembers the user across sessions

Quote matched the README or GitHub description at extraction. Same claim and quote from 1 worker(s). Interpretation not reviewed by a maintainer.

Allows connecting Model Context Protocol (MCP) servers to expose external tools to the agent.

MCP tools — connect Model Context Protocol servers and expose their tools to the agent

Quote matched the README or GitHub description at extraction. Same claim and quote from 1 worker(s). Interpretation not reviewed by a maintainer.

Supports registering native skills that execute behaviors directly in the browser page.

Skills — register native behaviors that run in the page

Quote matched the README or GitHub description at extraction. Same claim and quote from 1 worker(s). Interpretation not reviewed by a maintainer.

Ships as typed ESM with generated .d.ts files and requires three.js as a peer dependency.

Typed ESM — kwami ships as ESM with generated .d.ts; three is a peer dependency

Quote matched the README or GitHub description at extraction. Same claim and quote from 1 worker(s). Interpretation not reviewed by a maintainer.

Provides multiple 3D avatar renderers including blob, black hole, particles, and iris with audio-reactive motion.

3D avatars — blob-xyz, black-hole, particles-face, and eye-iris, with skins, presets, and audio-reactive motion

Quote matched the README or GitHub description at extraction. Same claim and quote from 1 worker(s). Interpretation not reviewed by a maintainer.

Offers a voice pipeline supporting STT, LLM, and TTS mix-and-match via LiveKit for real-time interaction.

Voice pipeline — mix-and-match STT / LLM / TTS, or a realtime provider, dispatched through LiveKit

Quote matched the README or GitHub description at extraction. Same claim and quote from 1 worker(s). Interpretation not reviewed by a maintainer.

Supports a wide catalog of providers including Deepgram, OpenAI, Anthropic, Gemini, ElevenLabs, and Groq.

Provider catalog — Deepgram, OpenAI, Anthropic, Gemini, ElevenLabs, Groq, Cartesia, AssemblyAI, and more

Quote matched the README or GitHub description at extraction. Same claim and quote from 1 worker(s). Interpretation not reviewed by a maintainer.

Includes ready-made personality presets like Kaya and Nexus with the ability to update traits live.

Soul presets — ready-made personalities (Kaya, Nexus, Phoenix, Haven, …) plus live trait updates

Quote matched the README or GitHub description at extraction. Same claim and quote from 1 worker(s). Interpretation not reviewed by a maintainer.

Provides optional long-term memory using a Zep adapter to recall user context across sessions.

Memory — optional long-term context so the companion remembers the user across sessions

Quote matched the README or GitHub description at extraction. Same claim and quote from 1 worker(s). Interpretation not reviewed by a maintainer.

Enables connection to Model Context Protocol servers to expose external tools to the AI agent.

MCP tools — connect Model Context Protocol servers and expose their tools to the agent

Quote matched the README or GitHub description at extraction. Same claim and quote from 1 worker(s). Interpretation not reviewed by a maintainer.

Allows developers to register native skills and behaviors that execute directly within the page.

Skills — register native behaviors that run in the page

Quote matched the README or GitHub description at extraction. Same claim and quote from 1 worker(s). Interpretation not reviewed by a maintainer.

Distributes as typed ESM with generated type definitions and requires three as a peer dependency.

Typed ESM — kwami ships as ESM with generated .d.ts; three is a peer dependency

Quote matched the README or GitHub description at extraction. Same claim and quote from 1 worker(s). Interpretation not reviewed by a maintainer.

Limitation: Requires a WebGL2-capable browser to render the avatar.

A WebGL2-capable browser is required.

Quote matched the README or GitHub description at extraction. Same claim and quote from 1 worker(s). Interpretation not reviewed by a maintainer.

Limitation: Voice, memory, and tool dispatch require a LiveKit-backed agent and a user-controlled token endpoint; the library does not host these services.

Voice, memory, and tool dispatch need a LiveKit-backed agent and a token endpoint you control — the library does not host those for you.

Quote matched the README or GitHub description at extraction. Same claim and quote from 1 worker(s). Interpretation not reviewed by a maintainer.

Limitation: LLM, TTS, and STT API keys must not be placed in the browser.

Do not put LLM / TTS / STT API keys in the browser.

Quote matched the README or GitHub description at extraction. Same claim and quote from 1 worker(s). Interpretation not reviewed by a maintainer.

Limitation: Instances must be explicitly disposed to prevent leaking WebGL contexts and LiveKit rooms.

Always dispose() when the canvas leaves the page. Instances stay in a process-wide registry until you do; an unmounted component leaks the WebGL context and the LiveKit room.

Quote matched the README or GitHub description at extraction. Same claim and quote from 1 worker(s). Interpretation not reviewed by a maintainer.

Limitation: The library does not host voice, memory, or tool dispatch services; users must provide a LiveKit-backed agent and token endpoint.

The avatar is local: new Kwami(canvas) draws immediately. Voice, memory, and tool dispatch need a LiveKit-backed agent and a token endpoint you control — the library does not host those for you.

Quote matched the README or GitHub description at extraction. Same claim and quote from 1 worker(s). Interpretation not reviewed by a maintainer.

Limitation: Requires a WebGL2-capable browser to function.

A WebGL2-capable browser is required.

Quote matched the README or GitHub description at extraction. Same claim and quote from 1 worker(s). Interpretation not reviewed by a maintainer.

Limitation: Users must not store LLM, TTS, or STT API keys in the browser; these must be managed on the server.

Do not put LLM / TTS / STT API keys in the browser.

Quote matched the README or GitHub description at extraction. Same claim and quote from 1 worker(s). Interpretation not reviewed by a maintainer.

Limitation: Avatar displacement runs in a Web Worker but falls back to the main thread if a worker cannot start due to CSP restrictions.

The blob re-shapes its surface in a Web Worker that ships inside the package, so your page's main thread stays free. It falls back to the main thread by itself where a worker cannot start

Quote matched the README or GitHub description at extraction. Same claim and quote from 1 worker(s). Interpretation not reviewed by a maintainer.

Limitation: Failing to call dispose() on unmounted components will leak the WebGL context and the LiveKit room.

Instances stay in a process-wide registry until you do; an unmounted component leaks the WebGL context and the LiveKit room.

Quote matched the README or GitHub description at extraction. Same claim and quote from 1 worker(s). Interpretation not reviewed by a maintainer.

Limitation: Requires three to be installed as a peer dependency; relying on a transitive copy is not supported.

three is a peer dependency. Install it beside kwami; do not rely on a transitive copy.

Quote matched the README or GitHub description at extraction. Same claim and quote from 1 worker(s). Interpretation not reviewed by a maintainer.

ai-ml · web-ui