---
name: avatar
description: Interactive AI avatar with Simli video rendering and ElevenLabs TTS. Give your agent a face that speaks!
emoji: "🧑💻"
homepage: https://github.com/Johannes-Berggren/openclaw-avatar
metadata:
openclaw:
skillKey: avatar
os: [macos, linux, windows]
requires:
bins: [node, npm]
env: [SIMLI_API_KEY, ELEVENLABS_API_KEY]
install:
- npm install -g openclaw-avatar
config:
requiredEnv:
- SIMLI_API_KEY
- ELEVENLABS_API_KEY
optionalEnv:
- ELEVENLABS_VOICE_ID
- SLACK_BOT_TOKEN
- OPENCLAW_TOKEN
example: |
SIMLI_API_KEY=your-simli-api-key
ELEVENLABS_API_KEY=your-elevenlabs-api-key
cliHelp: |
openclaw-avatar - Interactive AI avatar frontend
Usage: openclaw-avatar [options]
Starts the avatar server at http://localhost:5173
Requires SIMLI_API_KEY and ELEVENLABS_API_KEY environment variables.
---
# Avatar Skill
Give your OpenClaw agent a face! Real-time lip-synced video avatar with text-to-speech.
## What It Does
- **Speaks your responses** — Agent replies are converted to speech via ElevenLabs
- **Animated avatar** — Realistic lip-synced video via Simli
- **Detail panel** — Shows formatted text alongside spoken audio
- **Multi-language** — Supports different languages for speech and TTS
## Quick Setup
### 1. Get API Keys (5 minutes)
| Service | Get Key | Free Tier |
|---------|---------|-----------|
| [Simli](https://simli.com) | Dashboard → API Keys | ✅ Limited minutes |
| [ElevenLabs](https://elevenlabs.io) | Profile → API Keys | ✅ 10k chars/month |
### 2. Get a Simli Face ID
1. Go to [Simli Dashboard](https://simli.com/dashboard) → **Faces**
2. Click any stock face (or create your own)
3. Copy the **Face ID** (looks like: `5514e24d-6086-46a3-ace4-6a7264e5cb7c`)
### 3. Set Environment Variables
```bash
export SIMLI_API_KEY="your-simli-api-key"
export ELEVENLABS_API_KEY="your-elevenlabs-api-key"
```
### 4. Create Config File
Create `avatar.config.json` in your working directory:
```json
{
"avatars": [
{
"id": "default",
"name": "Assistant",
"faceId": "YOUR-SIMLI-FACE-ID",
"voiceId": "21m00Tcm4TlvDq8ikWAM",
"default": true
}
]
}
```
### 5. Start
```bash
openclaw-avatar
# Open http://localhost:5173
```
## Response Format
When responding via avatar, structure your replies like this:
```
Brief conversational summary. This is read aloud.
No markdown, no formatting — just natural speech.
## Full Details Here
- Bullet points work great
- **Bold** and *italic* supported
- Code blocks, tables, etc.
```
### Guidelines
| Section | Purpose | Style |
|---------|---------|-------|
| `` | Read aloud by avatar | Conversational, 1-3 sentences, NO markdown |
| `` | Displayed in side panel | Full markdown formatting |
### Example
**User asks**: "What's on my calendar today?"
```
You have three meetings today. A team standup at 9, product review at 2, and a one-on-one with Sarah at 4.
## Today's Schedule
### 9:00 AM — Team Standup
- **Duration**: 15 min
- Engineering team sync
### 2:00 PM — Product Review
- **Duration**: 1 hour
- Q1 roadmap discussion
### 4:00 PM — 1:1 with Sarah
- **Duration**: 30 min
- Project timeline follow-up
```
## Session Key
Avatar sessions use: `agent:main:avatar`
## Voice Options
The default voice is ElevenLabs' "Rachel" (`21m00Tcm4TlvDq8ikWAM`).
Find more voices at [elevenlabs.io/voices](https://elevenlabs.io/voices):
- Copy the Voice ID from any voice's page
- Update `voiceId` in your config
## Troubleshooting
| Issue | Fix |
|-------|-----|
| No video | Check `SIMLI_API_KEY` and `faceId` are correct |
| No audio | Check `ELEVENLABS_API_KEY` is correct |
| Can't connect to OpenClaw | Verify gateway is running (`openclaw status`) |
## More Info
See full documentation: [github.com/Johannes-Berggren/openclaw-avatar](https://github.com/Johannes-Berggren/openclaw-avatar)