Agent Faces v0.1.0 β first release π£οΈπ
Give your AI agent a talking, lip-syncing face.
Highlights
- The face β ~4,700-particle WebGL face with 12 emotions (
neutralβglitch), self-steered by the model via[[face:happy]]-style directives mid-reply - Real lip-sync β mouth driven by the actual audio (
wawa-lipsync); FFT-grade with OpenAIgpt-4o-mini-tts, or fully local with Kokoro on WebGPU - Voice in β in-browser Whisper (WebGPU/WASM β private, offline, $0) with hosted Groq/OpenAI fallback; push-to-talk or hands-free (VAD, half-duplex)
- Two brains, one seam β Mode A: a hosted key (Anthropic / OpenRouter / Groq). Mode B: the agent you already run β Claude Code (local Agent SDK bridge), Hermes
api_server, openclaw, Ollama β with its memory, tools, and persona - One command β
node skill/agent-face/scripts/start.mjsinstalls deps, wires env, starts bridge + app, opens the face. Port freeing is identity-scoped: it only kills its own stale processes, never your neighbor project's server (--take-portto override) - Portable Agent Skill β
skill/agent-face/is plain-node, harness-agnostic. Claude Code:cp -r skill/agent-face ~/.claude/skills/β type/agent-face - Deploy β Vercel button or self-host Docker, next to your agent
- Zero keys still works β browser Whisper + Web Speech give you a functioning face with no accounts at all
Built by agents
Most of this repo was written autonomously, overnight, by a loop of stateless coding-agent runs. The receipts ship with the release: prd.json (the 70-task ledger) and progress.txt (the agents' append-only journal).
Six CI gates (lint, typecheck, unit tests + coverage, build, skill smoke tests, app-template parity) plus a Playwright browser e2e suite guard main. MIT.
