Mini-app
Companion Face
AppsAn always-on face beside your camera that reacts to your assistant
- Android — supported
- iPhone — not available
- Mac — supported
Capabilities
What it does
Far more than a mascot — an ambient OS docked at the camera edge.
- Always-on at the camera edgeMac notch or Android punch-hole — a living face that blinks, glances, and never steals focus.
- Speak with lip-synccompanion_speak uses your voice path — on-device TTS or ElevenLabs — while the mouth follows the audio.
- Powers that run the pillFocus timer, wellness nudges, now-playing show, system pulse, and Slap — each drives the face through the same arbiter.
- Sensors, not a cameraVolume, battery, headphones, lid lift, thermal, unlock, network — OS moments as short face readouts. Deliberately no camera.
- Claude Code · Codex · hooksDev agent hooks: permission peeks, celebrate on done, muted errors — loopback-only, token-gated, Benign-capped.
- Studio + agent authoringIdle cycles, custom expressions, AI-badged invents from your agents — inspect or delete them in Studio.
Powers
What the companion performs
Powers run in the companion module and drive the face through the same arbiter the Studio uses — never generic in-app utilities wearing a face sticker.
- Work · short break · long break
Focus timer
A real Pomodoro that takes over the pill — your focus label, a live countdown, and a celebrate burst when the session ends. The face peeks back in so you know it's still with you.
- Quiet hours respected
Wellness nudges
Per-nudge rows with bespoke face animations, intervals, and quiet hours — stretch, water, look away — without another notification stack.
- Live media session
Now playing
Hooks the system media session (macOS MediaRemote / Android MediaSession). While a track plays, the face runs a rotating show and reacts on every track change.
- Volume · power · audio · more
System pulse
OS moments as face readouts: volume HUD, charging, headphones, unlock wave, dark mode, thermal, network, low power — short-lived, then it yields the pill back.
- Optional power hook
Slap (hook)
Wire the face to Slap — accelerometer-detected desk slaps, meme soundbites, and a leaderboard. Configure it from the Slap app; the companion just reacts.
- Gestures · moods · AI authoring
Idle cycles & Studio
Combos and playlists keep the face alive when nothing is happening. Agents can invent expressions (AI-badged in Studio); you can inspect, reuse, or delete them.
Sensors & system
It reacts to the machine — not a camera
No camera grant, ever. The face is driven by OS and device signals; raw samples and typed text never enter the engine.
Volume & mute
Live percent HUD while you crank the keys; mute/unmute get their own line; 100% earns a celebrate.
Power & battery
Plug-in thumbs-up, unplug notice, low/critical crossings, full-charge celebrate — without opening Settings.
Audio devices
AirPods or headphones connect → device name on the pill and the face puts its own headphones on.
Lid angle & lift (Mac)
MacBook lid sensor: live tilt readout, curious peek on a fast swing. Lift the machine and it is (comically) afraid of heights — then a relieved phew when you set it down.
Thermal · network · unlock
Running hot, offline/online, welcome-back wave on unlock, lights-out / rise-and-shine on appearance change.
Android sensor moments
Shake, posture, pocket, ambient light — plus privacy-minimised accessibility moments (foreground app, touch, scroll, typing). Raw samples and typed text never enter the engine.
Agent hooks
Claude Code, Codex, and anything that can POST
A loopback, token-gated hook pipeline turns coding-agent lifecycle into face reactions, optional notify/TTS, and local summaries — Benign-capped forever.
- Session · tools · permission · stop
Claude Code
Hooks in ~/.claude/settings.json stream session, tool, permission, and stop events into OpenAlly. Permission prompts PECK the notch so you know Claude needs you.
- agent-turn-complete
Codex CLI
Codex notify posts turn-complete (and more) into the same pipeline — the face celebrates when a turn lands, without you watching the terminal.
- Any DevEvent shape
Generic webhooks
POST a versioned DevEvent from CI, long builds, cron, Gemini CLI, OpenCode, Aider — one adapter each. Same face reactions, same activity feed.
- Face · notify · TTS · summary
Reaction pipeline
task:running → thinking · task:done → celebrate · attention → peek · error → muted error. Optional system notify, TTS one-liner, local LiteRT summary, and automation triggers. Loopback-only, token-gated, Benign-capped.
Voice
On-device TTS or ElevenLabs
Prefer companion_speak so the face lip-syncs. Stay fully local, or bring your own ElevenLabs key for studio-grade voices.
companion_speak + lip-sync
The skill's preferred path: speak in your configured voice while the face lip-syncs. Short, conversational lines — not monologues.
On-device TTS
Platform TTS with a detailed lane (utterance IDs, range offsets) so the face starts, articulates, and stops in lockstep — nothing leaves the device for speech when you stay local.
ElevenLabs
Bring your own ElevenLabs key for lifelike voices, Scribe, sound effects, music, and voice design. Generated audio is saved for playback; the companion can still lip-sync what you play.
Film
See it in action
A real recording of Companion Face — not a mock-up.
Prompts
Try asking
Quick actions Companion Face puts in front of you — tap one in the app, or type your own.
- Wave helloWave at me from your companion face and say hello out loud.
- Invent an expressionInvent a brand-new facial expression for yourself — something playful — and add it to your face.
- Calm morning cycleCreate a calm morning idle cycle for your face and switch to it.
Where it lives
Mac: notch panel. Android: in-app and optional camera-edge overlay. Agents control it with companion_* tools.
What it needs
Nothing invasive — no camera. Optional overlay permission on Android for over-other-apps. TTS and ElevenLabs are opt-in voice paths.
The skill that drives it
Grant Companion Face to an agent and it gets companion_status, express, speak, and the expression/cycle authoring tools.
Get Companion Face
It ships inside OpenAlly — one install, the whole catalogue.
More like this
SMS Analyser
Analyse spending, detect spam & track promotions from SMS
- Android — supported
- iPhone — supported
- Mac — supported
Flare
AI-powered notification automations
- Android — supported
- iPhone — supported
- Mac — supported
Voice Notes
Record, transcribe & summarize voice memos with AI
- Android — supported
- iPhone — supported
- Mac — supported