skills$openclaw/clawface
mkoslacz6.6k

by mkoslacz

clawface – OpenClaw Skill

clawface is an OpenClaw Skills integration for coding workflows. 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".

6.6k stars3.9k forksSecurity L1
Updated Feb 7, 2026Created Feb 7, 2026coding

Skill Snapshot

nameclawface
descriptionFloating 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". OpenClaw Skills integration.
ownermkoslacz
repositorymkoslacz/claw-face
languageMarkdown
licenseMIT
topics
securityL1
installopenclaw add @mkoslacz/claw-face
last updatedFeb 7, 2026

Maintainer

mkoslacz

mkoslacz

Maintains clawface in the OpenClaw Skills directory.

View GitHub profile
File Explorer
10 files
.
hooks
clawface-thinking
handler.ts
797 B
HOOK.md
601 B
scripts
api.py
18.1 KB
avatar.py
71.9 KB
_meta.json
271 B
README.md
5.5 KB
SKILL.md
5.3 KB
SKILL.md

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

# 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

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

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:

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:

{
  "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
README.md

🤖 ClawFace

Give your AI agent a face!

A floating avatar widget for OpenClaw agents showing real-time emotions, actions, and visual effects.

ClawFace Demo Platform Python


✨ Features

  • 9 emotions — neutral, happy, excited, thinking, confused, tired, angry, sad, proud
  • 9 actions — idle, coding, searching, reading, loading, speaking, success, error, thinking
  • 15+ visual effects — matrix rain, fire, confetti, radar scan, brainwave, and more

= 1,215 unique combinations + custom text messages!

Two Display Modes

🤖 Robot Mode😊 Face Mode
LED-style pixel eyesSimplified cartoon face
Mechanical arms with clawsExpressive eyes and mouth
Retro-futuristic cyberpunkFriendly, approachable

🚀 Quick Start

# 1. Check requirements
python3 -c "import tkinter; print('Ready!')"

# 2. Clone the repo
git clone https://github.com/mkoslacz/clawface.git
cd clawface

Terminal 1 — Run ClawFace:

python3 scripts/avatar.py --mode robot

Terminal 2 — Run Demo:

python3 scripts/avatar.py --demo

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

Manual control (without demo):

mkdir -p ~/.clawface
echo '{"emotion":"excited","action":"success","effect":"confetti","message":"Hello!"}' > ~/.clawface/avatar_state.json

# Copy to skills directory
cp -r clawface /path/to/openclaw/skills/

# Install the auto-thinking hook (optional but recommended)
cp -r clawface/hooks/clawface-thinking ~/.openclaw/hooks/
openclaw hooks enable clawface-thinking

The hook makes ClawFace show "thinking" automatically when a turn starts — no more delay between "typing" indicator and avatar update!


🎮 Usage

Control via State File

Write JSON to ~/.clawface/avatar_state.json:

{
  "emotion": "happy",
  "action": "coding",
  "effect": "fire",
  "message": "Building something awesome!"
}

From Shell

# Happy coding with fire effect
echo '{"emotion":"happy","action":"coding","effect":"fire","message":"On fire!"}' > ~/.clawface/avatar_state.json

# Thinking with brainwave
echo '{"emotion":"thinking","action":"thinking","effect":"brainwave","message":"Hmm..."}' > ~/.clawface/avatar_state.json

# Success with confetti!
echo '{"emotion":"excited","action":"success","effect":"confetti","message":"Done!"}' > ~/.clawface/avatar_state.json

From Python

import json
from pathlib import Path

def set_clawface(emotion="neutral", action="idle", effect="none", message=""):
    state = {"emotion": emotion, "action": action, "effect": effect, "message": message}
    state_file = Path.home() / ".clawface" / "avatar_state.json"
    state_file.parent.mkdir(exist_ok=True)
    state_file.write_text(json.dumps(state))

# Examples
set_clawface("thinking", "reading", "matrix", "Reading files...")
set_clawface("happy", "coding", "fire", "Writing code!")
set_clawface("excited", "success", "confetti", "Done!")

🎭 State Reference

Emotions

EmotionColorUse when...
neutralGrayDefault, waiting
thinkingCyanProcessing, analyzing
happyGreenThings going well
excitedYellowBig win, celebration
proudOrangePersonal achievement
confusedPinkUncertain, unexpected
tiredDark blueLong task
sadBlueFailed despite trying
angryRedError, frustration

Actions

ActionLabelUse when...
idleSTANDBYWaiting for user
readingREADINGReading files/docs
thinkingTHINKINGAnalyzing, planning
searchingSEARCHINGWeb search, grep
codingCODINGWriting code
loadingLOADINGRunning commands
speakingOUTPUTSending response
successSUCCESS!Completed task
errorERROR!Something failed

Effects

EffectDescription
noneClean, minimal
matrixFalling code characters
radarScanning sweep
brainwavePulsing brain activity
typingTyping animation
soundwaveAudio waveform
gearSpinning gears
fireFlames
lightningElectric bolts
confettiCelebration particles
heartFloating hearts
glitchGlitch effect
sparklesMagic sparkles
pulsePulsing outline
progressbar:XXProgress bar (0-100)

⚙️ Requirements

  • Python 3.10+
  • tkinter
# Check if tkinter is available
python3 -c "import tkinter; print('OK')"

# Install if missing:
# macOS
brew install python-tk@3.14

# Ubuntu/Debian
sudo apt install python3-tk

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

🖥️ Window Controls

  • Move: Drag the window
  • Resize: Drag edges/corners
  • Fullscreen: Press F or double-click
  • Exit fullscreen: Press Escape
  • Quit: Press Q
  • Switch mode: Click Robot/Face buttons

🔗 Links


📄 License

MIT


Made with 🦞 for the OpenClaw community

Permissions & Security

Security level L1: Low-risk skills with minimal permissions. Review inputs and outputs before running in production.

Requirements

**Python 3.10+ with tkinter:** ```bash

FAQ

How do I install clawface?

Run openclaw add @mkoslacz/claw-face in your terminal. This installs clawface into your OpenClaw Skills catalog.

Does this skill run locally or in the cloud?

OpenClaw Skills execute locally by default. Review the SKILL.md and permissions before running any skill.

Where can I verify the source code?

The source repository is available at https://github.com/openclaw/skills/tree/main/skills/mkoslacz/claw-face. Review commits and README documentation before installing.