Video Messages from your openclaw
Generate and send video messages with a lip-syncing VRM avatar. Use when user asks for video message, avatar video, video reply, or when TTS should be delivered as video instead of audio.
Generate and send video messages with a lip-syncing VRM avatar. Use when user asks for video message, avatar video, video reply, or when TTS should be delivered as video instead of audio.
Real data. Real impact.
Emerging
Developers
Per week
Open source
Skills give you superpowers. Install in 30 seconds.
Generate avatar video messages from text or audio. Outputs as Telegram video notes (circular format).
npm install -g openclaw-avatarcam
Configure in
TOOLS.md:
### Video Message (avatarcam) - avatar: default.vrm - background: #00FF00
| Setting | Default | Description |
|---|---|---|
| | VRM avatar file path |
| | Color (hex) or image path |
| Platform | Command |
|---|---|
| macOS | |
| Linux | |
| Windows | Install ffmpeg and add to PATH |
| Docker | See Docker section below |
Note: macOS and Windows don't need xvfb — they have native display support.
Add to
OPENCLAW_DOCKER_APT_PACKAGES:
build-essential procps curl file git ca-certificates xvfb xauth libgbm1 libxss1 libatk1.0-0 libatk-bridge2.0-0 libgdk-pixbuf2.0-0 libgtk-3-0 libasound2 libnss3 ffmpeg
# With color background avatarcam --audio voice.mp3 --output video.mp4 --background "#00FF00"With image background
avatarcam --audio voice.mp3 --output video.mp4 --background "./bg.png"
With custom avatar
avatarcam --audio voice.mp3 --output video.mp4 --avatar "./custom.vrm"
Use OpenClaw's
message tool with asVideoNote:
message action=send filePath=/tmp/video.mp4 asVideoNote=true
tts text="..." → audio pathmessage action=send filePath=... asVideoNote=trueUser: "Send me a video message saying hello"
# 1. TTS tts text="Hello! How are you today?" → /tmp/voice.mp32. Generate video
avatarcam --audio /tmp/voice.mp3 --output /tmp/video.mp4 --background "#00FF00"
3. Send as video note
message action=send filePath=/tmp/video.mp4 asVideoNote=true
4. Reply
NO_REPLY
| Setting | Value |
|---|---|
| Resolution | 384x384 (square) |
| Frame rate | 30fps constant |
| Max duration | 60 seconds |
| Video codec | H.264 (libx264) |
| Audio codec | AAC |
| Quality | CRF 18 (high quality) |
| Container | MP4 |
canvas.captureStream(30)sendVideoNote API| Platform | Display | Notes |
|---|---|---|
| macOS | Native Quartz | No extra deps |
| Linux | xvfb (headless) | |
| Windows | Native | No extra deps |
Avatarcam auto-detects headless environments:
xvfb-run when $DISPLAY is not set (Linux only)rm /tmp/video*.mp4asVideoNote=trueNo automatic installation available. Please visit the source repository for installation instructions.
View Installation Instructions1,500+ AI skills, agents & workflows. Install in 30 seconds. Part of the Torly.ai family.
© 2026 Torly.ai. All rights reserved.