Skip to content

[Feature]: Local agent/event bus so external tools can drive the avatar #6

Description

@rosspeili

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

  • Should stay usable offline / local-first
  • Browser-only mode may remain limited vs Electron

Mock / sketch / reference (optional)

Settings → Developer / Agents → Enable local bus (port 17342) + “Copy example curl”.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

featureNew feature or improvement requestfuture:agent-busExternal agent / event bus hooks (roadmap)needs designNeeds UX / visual decision before implementation

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions