One-line summary
Add a small local event API (IPC / named pipe / localhost websocket) so agents and scripts can trigger animations, swap avatars, and nudge lip-sync-related state without scraping the UI.
Problem / motivation
Roadmap item and core product narrative (“give agents a face”). Today the companion only reacts to audio and manual gear menus. Agent frameworks cannot say “play Peace Sign” or “switch to Avatar 2” reliably.
Proposed solution
Design a local-only bus (default off / opt-in in Settings):
- Transport: loopback WebSocket or Electron IPC bridge + tiny CLI/
curl examples.
- Events (v1):
animation.play, animation.default, avatar.set, environment.set, audio.source (optional).
- Auth: bind localhost only; optional shared token in
config.yaml.
- Docs: architecture + “Agent integration” page; SECURITY note that remote bind is out of scope.
Alternatives considered
- OSC / MIDI — niche.
- Only keyword→animation from mic STT — complementary (see related issue), not a full bus.
- Cloud webhook — out of scope.
Primary surface
Agent / external triggers (roadmap)
Constraints you accept
Mock / sketch / reference (optional)
Settings → Developer / Agents → Enable local bus (port 17342) + “Copy example curl”.
One-line summary
Add a small local event API (IPC / named pipe / localhost websocket) so agents and scripts can trigger animations, swap avatars, and nudge lip-sync-related state without scraping the UI.
Problem / motivation
Roadmap item and core product narrative (“give agents a face”). Today the companion only reacts to audio and manual gear menus. Agent frameworks cannot say “play Peace Sign” or “switch to Avatar 2” reliably.
Proposed solution
Design a local-only bus (default off / opt-in in Settings):
curlexamples.animation.play,animation.default,avatar.set,environment.set,audio.source(optional).config.yaml.Alternatives considered
Primary surface
Agent / external triggers (roadmap)
Constraints you accept
Mock / sketch / reference (optional)
Settings → Developer / Agents → Enable local bus (port 17342) + “Copy example curl”.