← ClaudeAtlas

avatarlisted

Control the VTuber avatar system — speak through it with lip sync, change expressions, manage the avatar renderer and control server. Use when interacting with the avatar, making it speak, changing expressions, or troubleshooting avatar connection issues.
diegosouzapw/awesome-omni-skill · ★ 43 · API & Backend · score 58
Install: claude install-skill diegosouzapw/awesome-omni-skill
# Avatar — VTuber Control ## Quick Start - Start system: ~/openclaw/scripts/start-avatar.sh - Stop system: ~/openclaw/scripts/stop-avatar.sh - Check health: curl -s http://localhost:8766/health ## Speaking ~/openclaw/scripts/avatar-speak.sh "text" [emotion] [output] Output controls where audio plays: - speakers — default system sink, people in the room hear it - mic — AvatarMic sink, people in Meet/calls hear it - both — both simultaneously Default output is speakers. ## Emotions neutral (default, eyes open), happy, sad, angry, relaxed, surprised Use neutral by default. happy closes the eyes (anime smile) — only use for genuine excitement. ## Infrastructure When avatar system is started, these are always available: - Virtual mic: AvatarMic.monitor (set as default source for Meet) - Virtual camera: /dev/video10 (captures renderer via CDP) - Virtual speaker sink: AvatarSpeaker (available for routing) The bot chooses per-speak where audio goes. Virtual mic and camera are always-on pipes. ## Service Control systemctl --user {start|stop|status|restart} avatar-control-server Renderer: cd ~/openclaw/avatar/renderer && npm run dev ## WebSocket API (Advanced) Port 8765 — must send identify first: { type: "identify", role: "agent", name: "@agentName@" } Commands after identify: - speak: { type: "speak", text: "Hello", emotion: "neutral", output: "mic" } - setExpression: { type: "setExpression", name: "happy", intensity: 1 } - setIdle: { type: "setIdle", mode: "breathin