--- name: clawface description: Floating avatar widget for AI agents showing emotions, actions, and visual effects. Give your OpenClaw a face! Use when the user wants visual feedback, a floating status window, or to see agent emotions while it works. Triggers on "show avatar", "uruchom avatara", "pokaż avatara", "agent face", "visual feedback". --- # 🤖 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 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): ```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: ``` 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: 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`: ```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