<!-- AvatarFactory Docs · https://avatarfactory.in/docs/introduction · Full map: https://avatarfactory.in/llms.txt -->

# AvatarFactory

Add a talking AI avatar to your app. It listens, responds, and lip-syncs to speech in real time — on web and mobile.

AvatarFactory is an SDK for embedding a real-time talking avatar in your product. Drop in a component, point it at an avatar, and your users can hold a live voice conversation with an AI character — or have the avatar speak any text or audio you send it.

You bring the UI. The SDK handles the hard parts: the live connection, microphone capture, speech playback, and frame-accurate lip-sync.

> **The SDK is a private package.** `@avatarfactory/react` and
>   `@avatarfactory/react-native` are not publicly installable — an `npm install`
>   without credentials will fail. Your npm token comes with your plan: add it to a
>   `.npmrc` and install as normal. Nothing else changes — same commands, same
>   imports, same API, and every example in these docs works as written. See
>   **[Get access](/docs/access)** for the two-minute setup.

## What you can build

    🎙️
    Voice assistants
    Support agents, tutors, and companions your users can talk to out loud.

    📣
    Spoken content
    Onboarding, announcements, and narration delivered by a character that speaks your text.

    ✨
    Interactive demos
    Landing pages and product tours with a friendly face that reacts in real time.

## Choose your platform

The SDK works the same way on web and mobile — the same components, hooks, and config. If you build in Framer, there is a no-code plugin that needs none of it.

      ⚛️
      @avatarfactory/react

    React (web)
    For websites and web apps. Install one package, add a stylesheet, and you're ready.
    Get started with React →

      📱
      @avatarfactory/react-native

    React Native (iOS & Android)
    For mobile apps built with Expo. Built-in echo cancellation for clean voice calls.
    Get started with React Native →

      🖼️
      Framer plugin

    Framer (no code)
    Connect your account, drag an avatar onto the canvas, and configure it from Framer&apos;s Properties panel. No package, no keys, no backend.
    Set up the Framer plugin →

## The three building blocks

You'll work with three things. That's the whole API surface.

- **AvatarProvider**"
    description="Wrap your app once. It opens the connection and holds the session so any component can use it."
  />
- **Avatar**"
    description="The component that displays your character and animates its mouth as it speaks. Place it anywhere inside the provider."
  />
- **useAvatar** — A hook to control the session from your own UI — start, stop, send text or audio, and read live status.

## Four ways to make it speak

Set one `mode` in your config to match what you're building.

      call
      Default

    Live voice conversation
    The user speaks, the AI replies out loud. Two-way voice in real time.

    tts
    Text to speech
    You send text, the avatar speaks it with matching lip-sync. No microphone needed.

    audio
    Your own audio
    Already have audio from another voice provider? Send it and the avatar lip-syncs to it.

> Want to see it first? **[Try the live demo on our home page →](/home)**

## Next steps

    Quickstart — live in 5 minutes →

    Browse the SDK reference
