[Feature]: Use assistant avatar in macOS Talk Mode overlay
Summary
Allow macOS Talk Mode overlay to use the configured assistant avatar instead of always rendering the default orb.
Problem to solve
OpenClaw already supports assistant identity in config, including ui.assistant.avatar, and users naturally expect that identity to carry through into voice interactions.
Today, when Talk Mode is opened in the macOS app, the overlay always renders the default animated orb in TalkOverlayView.swift. This breaks visual continuity between chat UI and voice UI. If a user has already configured a named assistant with a custom avatar, the Talk Mode overlay still looks generic instead of reflecting that assistant.
For character-driven assistants, personal companions, branded assistants, or multi-agent setups, this makes Talk Mode feel visually disconnected from the rest of the product.
Proposed solution
In the macOS app, update TalkOverlayView / TalkOrbView so Talk Mode can render the configured assistant avatar when available.
Suggested behavior:
- If
ui.assistant.avataris configured and resolvable, show it as a circular cropped image in the Talk overlay. - Preserve the existing voice-state visuals by keeping the animated rings / pulse / thinking arcs around or above the avatar.
- If no avatar is configured, fall back to the current orb behavior.
- Optionally make this toggleable later, but the fallback behavior already keeps this backward-compatible.
Alternatives considered
Keep the generic orb only
- Simple, but loses assistant identity and visual continuity.
Replace the orb entirely with a static avatar and remove all motion
- Would preserve identity, but loses useful speaking/listening/thinking state cues.
Support this only in web UI
- Doesn't help the macOS Talk Mode overlay, which is where the visual mismatch is most obvious.
Impact
Affected users/systems/channels: macOS app users who use Talk Mode, especially users with custom assistant personas, custom branding, or multiple agents.
Severity: Minor to moderate UX issue. It does not block use, but it makes Talk Mode feel generic and inconsistent with the configured assistant identity.
Frequency: Every time Talk Mode is opened on macOS.
Consequence: Users see a mismatch between the assistant they configured and the assistant shown in voice mode. This is especially noticeable for personal assistant setups and brand/character-driven agent experiences.
Evidence/examples
Current implementation appears to always render the orb directly in apps/macos/Sources/OpenClaw/TalkOverlayView.swift, via TalkOrbView using Circle()-based rendering.
That makes this feel like a good targeted enhancement with a clear fallback path.
Additional information
Related issue:
- #22199 Per-agent UI identity overrides (name, emoji, avatar)
This request is narrower and specifically about carrying assistant avatar identity into the macOS Talk Mode overlay.
Source: openclaw/openclaw