✓ Verified 💻 Development ✓ Enhanced Data

Claw Face

Floating avatar widget for AI agents showing emotions, actions.

Rating
3.9 (387 reviews)
Downloads
1,203 downloads
Version
1.0.0

Overview

Floating avatar widget for AI agents showing emotions, actions.

Complete Documentation

View Source →

🤖 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!)

bash
# 1. Check if you have Python + tkinter:
python3 -c "import tkinter; print('Ready!')"

Terminal 1 — Run ClawFace:

bash
python3 SKILL_PATH/scripts/avatar.py --mode robot

Terminal 2 — Run Demo:

bash
python3 SKILL_PATH/scripts/avatar.py --demo

Watch the avatar cycle through all emotions, actions, and effects automatically! 🎉

Manual control:

bash
echo '{"emotion":"excited","action":"success","effect":"confetti","message":"It works!"}' > ~/.clawface/avatar_state.json


⚠️ Requirements

Python 3.10+ with tkinter:

bash
# Check:
python3 -c "import tkinter; print('OK')"

# Install if missing:
# macOS:   brew install [email protected]
# 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):

bash
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:

bash
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:

text
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

EmotionUse when...
neutralDefault, waiting
thinkingProcessing, analyzing
happyThings going well
excitedBig win, celebration
proudPersonal achievement
confusedUncertain, unexpected
tiredLong task
sadFailed despite trying
angryError, frustration

Actions

ActionUse when...
idleWaiting for user
readingReading files/docs
thinkingAnalyzing, planning
searchingWeb search, grep
codingWriting code
loadingRunning commands
speakingSending response
successCompleted task
errorSomething failed

Effects

EffectVibe
noneClean, minimal
matrixTechy, data flow
radarScanning, searching
brainwaveDeep thinking
typingWriting
soundwaveSpeaking
gearMechanical work
fireIntense, productive
lightningFast, powerful
confettiCelebration!
heartAffection
glitchError, broken
sparklesMagic
pulseActive but calm
progressbar:XXProgress (0-100)

⚡ Best Practices

🔴 MINIMUM FLOW FOR EVERY RESPONSE:

text
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 reading before you read
  • Update AFTER completion — show success/error, then idle
  • 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:
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
  • F for fullscreen
  • Q to quit

Installation

Terminal bash

openclaw install claw-face
    
Copied!

💻Code Examples

python3 SKILL_PATH/scripts/avatar.py --demo

python3-skillpathscriptsavatarpy---demo.txt
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

echo-emotionexcitedactionsuccesseffectconfettimessageit-works--clawfaceavatarstatejson.txt
---

## ⚠️ Requirements

**Python 3.10+ with tkinter:**

# Windows: reinstall Python, check "tcl/tk and IDLE" during install

-windows-reinstall-python-check-tcltk-and-idle-during-install.txt
---

## 📦 Full Installation

### 1. Install the auto-thinking hook (recommended):

openclaw hooks enable clawface-thinking

openclaw-hooks-enable-clawface-thinking.txt
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 &

nohup-python3-skillpathscriptsavatarpy---mode-robot--devnull-21-.txt
**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:

→ neutral/idle (sent, waiting)

--neutralidle-sent-waiting.txt
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:

idle → done, waiting

idle--done-waiting.txt
**This is mandatory.** Every single reply should show this progression.

### Tips:
1. **Update BEFORE each action** — set `reading` before you read
2. **Update AFTER completion** — show `success`/`error`, then `idle`
3. **Match intensity** — small task = subtle, big task = expressive
4. **Always return to idle** — when waiting for user

---

## 🔧 Technical Reference

### State File
Write JSON to `~/.clawface/avatar_state.json`:
example.sh
# Check:
python3 -c "import tkinter; print('OK')"

# Install if missing:
# macOS:   brew install [email protected]
# Ubuntu:  sudo apt install python3-tk
# Windows: reinstall Python, check "tcl/tk and IDLE" during install
example.txt
User asks question
  → thinking/reading    (reading their message)
  → thinking/thinking   (analyzing)
  → happy/speaking      (formulating response)  
  → neutral/idle        (sent, waiting)
example.txt
thinking  →  processing user input
speaking  →  sending your reply  
idle      →  done, waiting

Tags

#clawdbot_tools

Quick Info

Category Development
Model Claude 3.5
Complexity Multi-Agent
Author mkoslacz
Last Updated 3/10/2026
🚀
Optimized for
Claude 3.5
🧠

Ready to Install?

Get started with this skill in seconds

openclaw install claw-face