Kiosk Mode
Kiosk mode turns a Crow display into a full-screen AI Companion — an animated avatar you can talk to. It's how a tablet on the counter, a screen in the studio, or a wall display becomes a hands-free Crow surface.
Launching
Open the companion at its own address — port 12393 on the Crow host — in a full-screen browser on the display. The browser asks for the microphone (and the camera, if face tracking is on) the first time.
The Crow's Nest header no longer has a Companion button. Its one button, the bird, opens the tray on a tap and Talk to Crow on a long press; Talk to Crow is the Kiosk display page (your Ramble bird, tap to talk), not the avatar companion.
Music or radio you start from Talk to Crow plays in the dashboard's player bar at the bottom of the page, not inside the overlay. It keeps playing after you close the overlay and while you move between panels; the bar's buttons pause, skip and stop it, and a reload of the page brings the bar back (tap ⏯ if the browser held the sound back). It ends when you stop it or log out.
Per-device customization
A kiosk is a device bound to a Bot Builder agent — the same binding model as Meta Glasses. Different displays can run different bots:
kitchen-tablet → "Chef" (avatar A · voice A · social off)
studio-display → "Aide" (avatar B · voice B · social on)Bind a device on the bot's Basics tab → channel AI Companion (kiosk):
- Paired device — pick the kiosk device, or simply type a name in the "…or pair a new kiosk" field and press Save: Crow creates and connects the device for you in one step (no Meta Glasses bundle required). Devices paired in the Meta Glasses panel also appear here; kiosks reuse that store, tagged
device_kind:"companion". - Avatar — the Live2D model that renders for this kiosk.
- Kiosk features — toggle avatar animation/lip-sync, pet/idle mode, social (chatroom & DM) features, and automatic memory integration.
Saving sets the device's bound_bot_id and stores the toggles as companion_features. Persona and avatar take effect on the next kiosk session. The feature toggles apply at different layers: device-config features (social_chat, face_tracking) are fetched and applied on each kiosk page load; an older editor's hearing style and voice idle timeout are kept on the device but were never applied, so the editor no longer shows them; config-gen features (avatar_model, memory_integration) are baked into the generated companion config and only take effect after a config regeneration + container restart. See the companion_features semantics table for the full breakdown.
What is and isn't per device
| Per device | Shared across the container |
|---|---|
| Persona, avatar, voice | The fast→escalate model pair |
companion_features (avatar animation, pet mode, social/chat, memory) | The base MCP bridges (crow-wm, crow-storage) |
The crow memory bridge (per-bot memory_integration opt-in) | |
| Bound bot |
The model pair is shared because one companion container has a single LLM base_url (the gateway's /llm/v1 router). The MCP tool set is mostly shared — every character gets crow-wm and crow-storage — but the crow memory bridge is added per bot when its memory_integration feature is enabled (a config-gen setting; see MCP bridges). A kiosk that genuinely needs a different model pair needs its own companion container (own port + conf.yaml).
Social / chat features
The companion's chatroom and DM features are gated by the per-device social_chat toggle, so a public-facing kiosk can run avatar-only (no social UI) while a personal display keeps full chat. Toggle it on the bot's Basics tab.
Related
- AI Companion architecture — the engine, model router, and escalation
- Bot Builder — defining the agent a kiosk runs
- Meta Glasses — the sibling voice channel and device-pairing flow