๐ค ClawFace
Give your OpenClaw a face!
Got a dedicated machine running OpenClaw with a monitor? Tired of staring at logs all day?
Give your agent a personality!
- 9 emotions โ from happy to angry, thinking to proud
- 9 actions โ coding, searching, reading, speaking...
- 15 visual effects โ matrix rain, fire, confetti, radar scan...
That's 1,215 unique combinations + custom messages from your agent!
Perfect for:
- ๐ป Laptop setups where you want to SEE your agent working
- ๐ฅ๏ธ Dedicated OpenClaw machines with a monitor
- ๐ฎ Making your AI assistant feel alive
- ๐บ Impressing your friends/coworkers
โ ๏ธ Note: Only tested on macOS. Should work on Windows/Linux but YMMV.
๐ Quick Test (try it now!)
# 1. Check if you have Python + tkinter:
python3 -c "import tkinter; print('Ready!')"
Terminal 1 โ Run ClawFace:
python3 SKILL_PATH/scripts/avatar.py --mode robot
Terminal 2 โ Run Demo:
python3 SKILL_PATH/scripts/avatar.py --demo
Watch the avatar cycle through all emotions, actions, and effects automatically! ๐
Manual control:
echo '{"emotion":"excited","action":"success","effect":"confetti","message":"It works!"}' > ~/.clawface/avatar_state.json
โ ๏ธ Requirements
Python 3.10+ with tkinter:
# Check:
python3 -c "import tkinter; print('OK')"
# Install if missing:
# macOS: brew install python-tk@3.14
# Ubuntu: sudo apt install python3-tk
# Windows: reinstall Python, check "tcl/tk and IDLE" during install
๐ฆ Full Installation
1. Install the auto-thinking hook (recommended):
cp -r SKILL_PATH/hooks/clawface-thinking ~/.openclaw/hooks/
openclaw hooks enable clawface-thinking
This makes the avatar show "thinking" automatically when a turn starts โ no delay!
2. Launch the avatar:
nohup python3 SKILL_PATH/scripts/avatar.py --mode robot > /dev/null 2>&1 &
Note: Replace SKILL_PATH with actual path, e.g., /usr/local/lib/node_modules/openclaw/skills/clawface
๐ฏ Core Principle: BE DYNAMIC!
Don't set one state and forget it. Update the avatar continuously as you work:
User asks question
โ thinking/reading (reading their message)
โ thinking/thinking (analyzing)
โ happy/speaking (formulating response)
โ neutral/idle (sent, waiting)
Every action you take should be reflected. The avatar is your LIVE status indicator.
๐ญ State Reference
Emotions
| Emotion | Use when... |
|---|---|
neutral |
Default, waiting |
thinking |
Processing, analyzing |
happy |
Things going well |
excited |
Big win, celebration |
proud |
Personal achievement |
confused |
Uncertain, unexpected |
tired |
Long task |
sad |
Failed despite trying |
angry |
Error, frustration |
Actions
| Action | Use when... |
|---|---|
idle |
Waiting for user |
reading |
Reading files/docs |
thinking |
Analyzing, planning |
searching |
Web search, grep |
coding |
Writing code |
loading |
Running commands |
speaking |
Sending response |
success |
Completed task |
error |
Something failed |
Effects
| Effect | Vibe |
|---|---|
none |
Clean, minimal |
matrix |
Techy, data flow |
radar |
Scanning, searching |
brainwave |
Deep thinking |
typing |
Writing |
soundwave |
Speaking |
gear |
Mechanical work |
fire |
Intense, productive |
lightning |
Fast, powerful |
confetti |
Celebration! |
heart |
Affection |
glitch |
Error, broken |
sparkles |
Magic |
pulse |
Active but calm |
progressbar:XX |
Progress (0-100) |
โก Best Practices
๐ด MINIMUM FLOW FOR EVERY RESPONSE:
thinking โ processing user input
speaking โ sending your reply
idle โ done, waiting
This is mandatory. Every single reply should show this progression.
Tips:
- Update BEFORE each action โ set
readingbefore you read - Update AFTER completion โ show
success/error, thenidle - Match intensity โ small task = subtle, big task = expressive
- Always return to idle โ when waiting for user
๐ง Technical Reference
State File
Write JSON to ~/.clawface/avatar_state.json:
{
"emotion": "happy",
"action": "coding",
"effect": "fire",
"message": "Building something awesome!"
}
Display Modes
๐ค Robot Mode (--mode robot) โ default
- LED-style pixel eyes with animations
- Mechanical arms with claws
- Retro-futuristic cyberpunk vibe
- Best for: tech aesthetic, dedicated screens
๐ Face Mode (--mode face)
- Simplified cartoon face
- Expressive eyes and mouth
- Friendly, approachable look
- Best for: casual use, smaller windows
Switch modes with buttons in the UI or restart with different --mode.
Window Controls
- Drag to move
- Drag edges to resize
Ffor fullscreenQto quit