Getting Started
Prerequisites
- Node.js 20 or later
- A Gemini API key from Google AI Studio
- A browser with microphone and WebGL support if you want the full chat + avatar flow
- A Google OAuth web client ID if you want to use the optional YouTube Live relay
Install Dependencies
bash
npm installRun The App
bash
npm run dev -- --hostname 127.0.0.1 --port 3100Open http://127.0.0.1:3100, paste your Gemini API key, and press Start.
GeminiVRM is currently tuned for gemini-3.1-flash-live-preview. Keep NEXT_PUBLIC_GEMINI_LIVE_MODEL on that value unless you are intentionally testing another Live model. Automatic fallback to older preview models is disabled.
Run The App And Docs Together
bash
npm run dev:allThis starts:
- the app at
http://127.0.0.1:3100 - the VitePress docs at
http://127.0.0.1:4173
First Successful Session Checklist
- Confirm the default
Kiyoka.vrmmodel loads. - Enter a Gemini API key.
- Send a short prompt from the message box.
- Wait for the assistant transcript and streamed audio playback.
- Open
Settingsto tune the model, voice, system prompt, and motion preset.
Optional Podcast Mode Quick Start
If you want to verify the new dual-host flow right away:
- Open
Settingsand switchConversation modetoPodcast mode. - Wait for both
KiyokaandYukitoviewers to finish loading. - Open
Podcast settingsif you want to change the max loop count or assign different prebuilt voices per host. - Type a short topic and send it.
- Confirm the stage alternates speakers and stops automatically when the configured turn count is reached.
Optional YouTube Relay Setup
If you want live chat comments to flow into Gemini:
- Create a Google OAuth web client ID that allows the exact origin you use for the app.
- Set
NEXT_PUBLIC_GOOGLE_CLIENT_IDor paste the client ID intoSettings->Streaming->YouTube relay. - Sign in with Google, refresh the broadcast list, and pick the active or upcoming stream you want to monitor.
- Enable relay mode, then optionally enable auto-reply once the stream is ready.
- The browser restores the saved client ID and short-lived access token from local storage until you sign out or the token expires.
For the full setup, relay behavior, and troubleshooting flow, see the YouTube Relay Guide.
Useful Environment Variables
NEXT_PUBLIC_GEMINI_API_KEYNEXT_PUBLIC_GOOGLE_CLIENT_IDNEXT_PUBLIC_GEMINI_LIVE_MODELNEXT_PUBLIC_GEMINI_LIVE_VOICEBASE_PATHNEXT_PUBLIC_DOCS_URL