High Risk:This skill has significant security concerns. Review the findings below before installing.

avatar

Caution·Scanned 2/18/2026

Dangerous skill: exposes SIMLI_API_KEY to the browser via /api/client-config and writes ./device-key.json to disk. It implements a local avatar server with ElevenLabs TTS (https://api.elevenlabs.io/v1/text-to-speech/${voiceId}?output_format=pcm_16000), Slack integration, Stream Deck support, and includes runnable install/start scripts (npm install, npm start).

from clawhub.ai·v29f1b8e·228.0 KB·0 installs
Scanned from 1.0.0 at 29f1b8e · Transparency log ↗
$ vett add clawhub.ai/johannes-berggren/avatarReview security findings before installing

OpenClaw Avatar

Interactive AI avatar frontend for OpenClaw Hub with Simli video rendering and ElevenLabs text-to-speech.

Quick Start

  1. Install dependencies

    npm install
    
  2. Configure environment

    cp .env.example .env
    # Edit .env and add your API keys
    
  3. Start the server

    npm run dev
    

Open http://localhost:5173 to see your avatar.

Configuration

Environment Variables (.env)

VariableRequiredDescription
SIMLI_API_KEYYesAPI key from Simli
ELEVENLABS_API_KEYYesAPI key from ElevenLabs
ELEVENLABS_VOICE_IDNoOverride default voice ID
SLACK_BOT_TOKENNoEnable Slack integration
OPENCLAW_TOKENNoOpenClaw gateway auth token

Configuration File (avatar.config.json)

Copy the example and customize:

cp avatar.config.example.json avatar.config.json
{
  "app": {
    "name": "My Avatar",
    "port": 5173
  },
  "avatars": [
    {
      "id": "default",
      "name": "Assistant",
      "faceId": "your-simli-face-id",
      "voiceId": "your-elevenlabs-voice-id",
      "default": true
    }
  ],
  "languages": [
    { "code": "en-US", "name": "English", "flag": "gb", "default": true }
  ]
}

Getting API Keys

Simli

  1. Sign up at simli.com
  2. Create a new face or use a stock face
  3. Copy your API key and face ID

ElevenLabs

  1. Sign up at elevenlabs.io
  2. Go to Profile Settings > API Keys
  3. Copy your API key
  4. (Optional) Create a custom voice and copy its ID

Features

  • Real-time avatar video with lip sync
  • Text-to-speech responses
  • Speech recognition input
  • Multi-language support
  • Markdown detail panel
  • Slack/email forwarding
  • Optional Stream Deck control

Stream Deck (Optional)

To enable Stream Deck hardware control:

  1. Install optional dependencies:

    npm install @elgato-stream-deck/node canvas
    
  2. Enable in config:

    {
      "integrations": {
        "streamDeck": { "enabled": true }
      }
    }
    
  3. Connect your Stream Deck and restart the server

Development

# Run in development mode
npm run dev

# Type check
npm run typecheck

# Build for production
npm run build

# Start production server
npm start

Project Structure

openclaw-avatar/
├── src/
│   ├── config/        # Configuration system
│   ├── client/        # Browser client (Vite)
│   ├── server.ts      # Express server
│   └── streamdeck.ts  # Stream Deck integration
├── skills/avatar/     # OpenClaw skill definition
├── public/            # Static assets
└── index.html         # Entry point

License

MIT