
Every Claw deserves a body.
Turn your OpenClaw AI into a real-time digital avatar — with a face, a voice, and expressions. Talk to your Claw face-to-face, not just through cold text.
NEW: Presentation Mode 🎤 — Your Claw can now be a presenter! Load a PPT/PDF and let the avatar narrate your slides.

Free 5-minute trial included. Sign up at nuwaai.com to create your own custom avatar for free.
When user runs /claw-body:
Start the server: bash
node <skill-dir>/server.mjs
Tell the user:
🦞 Claw Body is live: http://localhost:3099
Two options:
- Free trial — chat with the demo Claw for 5 minutes
- Your own avatar — sign up at nuwaai.com (free), create your dream look, then enter your API Key + Avatar ID + User ID
text
You speak → ASR transcribes → OpenClaw agent replies → Avatar speaks with lip-sync
This skill uses NuwaAI's humanctrl mode with ASR:
Same agent, new interface. The avatar is just another channel — like iMessage or Telegram, but with a face.
If the user says anything like "讲PPT"、"讲解PDF"、"帮我讲解演示文件" while in Claw Body:
DO NOT open or operate any application (Keynote, PowerPoint, Preview) on the user's computer.
Instead, follow this flow:
Ask for the file path if not provided
Run the Claw Presenter parse script: bash
python3 <workspace>/skills/claw-presenter/scripts/parse-presentation.py "<file-path>"
Read the generated presentation.json
For slides without scripts ( script is empty), generate narration based on content
Update presentation.json with the generated scripts
Tell the user the presentation is ready and ask to start
When user confirms, reply with [PRESENTATION_START:<output-dir>] to enter presentation mode
Narrate slide by slide using [SLIDE:N] tags
Claw Body supports a presentation mode for narrating pre-prepared slide decks.
Use the Claw Presenter skill first to prepare a presentation folder:
text
<workspace>/presentations/<name>/
presentation.json
slides/001.png, 002.png, ...
Each slide in presentation.json has an image path and a script (narration text).
When user wants to present a prepared folder, include this tag in your reply:
text
[PRESENTATION_START:<output-dir>]
For each page, read the script field from presentation.json and reply with:
text
[SLIDE:1]各位好,今天我来介绍一下我们的产品方案。
The frontend automatically flips to the corresponding slide image.
[PRESENTATION_END]TagEffect[PRESENTATION_START:<dir>]Enter presentation mode[SLIDE:N]Switch to slide N (1-indexed)[PRESENTATION_END]Exit presentation mode
presentation.json script field — don't regenerate unless askedClaw Body talks to your OpenClaw agent via the Gateway's chat API. This endpoint is disabled by default and must be enabled once.
When user runs /claw-body:
Read ~/.openclaw/openclaw.json
If gateway.http.endpoints.chatCompletions.enabled is not true, tell the user to enable it manually:
⚠️ 首次使用需要启用 AI 对话接口,在
~/.openclaw/openclaw.json中添加以下配置,然后重启 Gateway:text
openclaw gateway restart重启后刷新页面即可。以后不需要再操作了。
Add this to ~/.openclaw/openclaw.json:
json
{
"gateway": {
"http": {
"endpoints": {
"chatCompletions": { "enabled": true }
}
}
}
}