You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Let external agents switch AVATAR’s audio capture to pick app window or audio file through the local agent bus, not only via the Voice gear menu.
Problem / motivation
#6 lets the bus drive stage motion and environment, but lip sync still requires manual Voice panel changes for “capture this window” or “play this file.” Agent workflows (TTS from another app, scripted demos, MCP-driven sessions) need programmatic source selection to stay hands-off.
Existing implementation to align with: Voice panel, useAudioSource, and docs/voice/audio-sources.md.
Proposed solution
Add bus commands (HTTP + WebSocket parity) such as:
One-line summary
Let external agents switch AVATAR’s audio capture to pick app window or audio file through the local agent bus, not only via the Voice gear menu.
Problem / motivation
#6 lets the bus drive stage motion and environment, but lip sync still requires manual Voice panel changes for “capture this window” or “play this file.” Agent workflows (TTS from another app, scripted demos, MCP-driven sessions) need programmatic source selection to stay hands-off.
Existing implementation to align with: Voice panel,
useAudioSource, anddocs/voice/audio-sources.md.Proposed solution
Add bus commands (HTTP + WebSocket parity) such as:
audio.source.setwith{ mode: "device" | "window" | "file" | "mic" | "off", ... }window: accept optional target hints (process name, last-focused) with clear failure when user must pick via OS picker.file: path or user-library-relative path with validation; respect existing Electron file permissions.Update
docs/agents/local-bus.mdand Settings → Agents help text. Security: loopback + token only; no remote file URLs without explicit opt-in.Alternatives considered
Primary surface
Voice / lip sync
Constraints you accept
Mock / sketch / reference (optional)
Mirror fields already persisted in user settings / voice hooks; reuse
runCommand/ IPC paths where the Voice panel does today.