npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

clawd-face

v1.0.0

Published

Real-time animated face for your AI assistant. Watch Claude think, talk, and code.

Readme


👀 Preview

The face automatically reflects what your AI is doing:

  • Coral → Idle, waiting
  • Blue → Thinking, reasoning
  • Green → Talking, responding
  • Dark Green → Working, running code
  • Dark → Sleeping (auto after 5min)

🚀 Quick Start

One Command (Recommended)

npx clawd-face

That's it! This will:

  • ✅ Auto-detect your Clawdbot installation
  • ✅ Start the face server
  • ✅ Create a public tunnel
  • ✅ Give you a URL to open
🤖 Clawd Face

✅ Found Clawdbot at ~/.clawdbot
📍 Starting watcher...
📍 Starting server...
📍 Creating public tunnel...

════════════════════════════════════════════════
  🎉 Clawd Face is live!
  
  Public URL:  https://abc123.loca.lt
  Local URL:   http://localhost:3333
════════════════════════════════════════════════

Alternative: Let Your Claude Do It

Just send this to your Claude:

Run npx clawd-face for me and give me the URL

Alternative: Manual Setup

# 1. Clone
git clone https://github.com/martinbon39/clawd-face-react.git
cd clawd-face-react

# 2. Install & build
npm install && npm run build

# 3. Start
npm start
# Or with pm2 for background:
pm2 start "npm start" --name clawd-face

🏗️ Architecture

Important: The watcher must run on the same server as Clawdbot because it reads local session files.


🌐 Expose to Internet

Cloudflare Tunnel (Recommended)

# 1. Create tunnel
cloudflared tunnel create clawd-face

# 2. Configure (~/.cloudflared/config.yml)
tunnel: <your-tunnel-id>
credentials-file: ~/.cloudflared/<id>.json
ingress:
  - hostname: face.yourdomain.com
    service: http://localhost:3333
  - service: http_status:404

# 3. Run
pm2 start "cloudflared tunnel run clawd-face" --name clawd-face-tunnel

🔐 Add Authentication (Recommended)

Protect your face with Cloudflare Access:

  1. AccessApplicationsAdd Application
  2. Enter your hostname: face.yourdomain.com
  3. Add PolicyAllowEmails → your email
  4. Save — now only you can see the face!

🎭 All States

| State | Color | When | |:------|:------|:-----| | 😐 idle | Coral | Nothing happening | | 🎧 listening | Light Green | User sent message | | 🤔 thinking | Blue | Reasoning | | 💬 talking | Green | Responding | | 💻 working | Dark Green | Running commands | | 🔍 curious | Purple | Reading/searching | | 🎯 focused | Navy | Browsing/editing | | ⚡ processing | Indigo | Awaiting results | | 😊 happy | Yellow | Success | | 🤨 confused | Orange | Unexpected | | 😴 sleeping | Dark | 5min inactive |


🥚 Easter Eggs

| Trigger | Effect | |:--------|:-------| | Type dance | 🎵 Dance animation | | Type love | ❤️ Floating hearts | | Type hello | 👋 Wave + smile | | Type matrix | 💚 Matrix mode | | Konami ↑↑↓↓←→←→BA | ⭐ Stars! | | Click face 3× | Dance | | Click face 10× | 🌈 Rainbow | | Ctrl+H | Help panel | | Ctrl+D | Debug panel |


⚙️ Configuration

Environment Variables

# Watcher
SESSIONS_FILE=~/.clawdbot/agents/main/sessions/sessions.json
STATE_FILE=./state.json

# Server
PORT=3333
REACT_DIR=../dist
STATE_FILE=./state.json

Customize Colors

Edit src/components/ClawdFace/ClawdFace.module.css:

.idle { background: #E8927C; }
.thinking { background: #7C9FE8; }
.talking { background: #7CE8A3; }

Adjust Timing

// watcher.js
const POLL_INTERVAL = 50;    // Check every 50ms
const IDLE_TIMEOUT = 3500;   // Go idle after 3.5s

// ClawdFace.jsx  
300000  // Sleep after 5 minutes

📁 Project Structure

clawd-face-react/
├── src/
│   ├── components/ClawdFace/   # Face component + CSS
│   ├── hooks/useEasterEggs.js  # Fun stuff
│   └── App.jsx
├── watcher/
│   ├── watcher.js              # Monitors Clawdbot
│   └── server.js               # Serves face + state
├── scripts/
│   └── install.sh              # Auto installer
└── dist/                       # Production build

🤝 Contributing

PRs welcome! Some ideas:

  • [ ] WebSocket instead of polling
  • [ ] Sound effects
  • [ ] Custom face editor
  • [ ] Mobile companion app
  • [ ] More easter eggs

📄 License

MIT © Martin Bonan