Guide Index
Build Live2D AI characters that talk, react, and look at you.
Charivo is a modular TypeScript framework for voice, expression, motion, gaze, and real-time conversation — split into focused packages.
These guides are for integrators building an app on top of Charivo. Use them to choose the right packages, understand the layering, and get to a working setup quickly.
Default Stack
For most browser apps, the default stack looks like this:
browser app
-> @charivo/core
-> modality root package
-> remote browser runtime package
-> your API route
-> server provider package
That means:
@charivo/coreorchestrates the app- modality root packages such as
@charivo/llm,@charivo/tts, and@charivo/realtimeown feature state - remote browser packages talk to your server
- server provider packages such as
@charivo/server/openaikeep credentials on the server
Where To Start
New to the repo: read Getting Started, then Choosing Packages and Architecture, then the subsystem guides you need.
For the quickest route to a working browser app, follow Getting Started, Rendering, and Examples Web.
To read the shipped reference apps:
- Examples Web — LLM/TTS/STT client styles side by side (app README)
- Examples Companion — realtime-only, browser-local memory (app README)
Guide Map
- Getting Started: minimal production-oriented setup
- Architecture: package boundaries, layering, and event wiring
- Choosing Packages: remote vs browser-direct vs browser-native
- Rendering:
@charivo/renderand@charivo/render-live2d - LLM: conversation manager and client choices
- TTS: speech playback and lip-sync wiring
- STT: microphone recording and transcription paths
- Realtime: session-based voice interaction and tool wiring
- Avatar Control: optional model-driven expression, motion, and gaze
- Examples Web: Next.js reference app and API routes
- Examples Companion: realtime-only app with browser-local character memory
Guide Docs vs Package READMEs
Use the guides for integration decisions, recommended stacks, and copy-paste recipes.
Use package READMEs for package-local details such as exports, request contracts, and provider-specific config:
- core README
- realtime README
- other package docs under
packages/