✓ Verified 💻 Development ✓ Enhanced Data

Mu Pet

Animated pixel art desktop pet that roams the screen as an always-on-top Electron overlay.

Rating
4.7 (220 reviews)
Downloads
5,470 downloads
Version
1.0.0

Overview

Animated pixel art desktop pet that roams the screen as an always-on-top Electron overlay.

Key Features

1

Transparent overlay, always-on-top, click-through (except on the pet itself)

2

Roams full desktop: floor, walls, ceiling

3

Avoids cursor (250px radius) and frontmost window

4

Right-click context menu for manual state control

5

Speech bubbles with auto-sizing duration

6

Pixel art drawn via Canvas (no external images needed)

Complete Documentation

View Source →

Desktop Pet

A pixel art desktop pet (default: lobster 🦞) that roams the screen as a transparent Electron overlay.

Quick Start

bash
cd <skill-dir>/assets/app
npm install
npx electron .

The pet starts at the bottom center of the screen and begins roaming.

HTTP API

Local API on port 18891 (127.0.0.1 only):

  • GET /state - returns {"state":"idle","statusText":""}
  • POST /state - set state: {"state":"talking","bubble":"hello!"}

States

StateBehavior
idleGentle bob, occasional claw snap
walkingMoves along current surface
climbingTransitions between floor/walls/ceiling
fleeingRunning from cursor or active window
workingSits at tiny laptop with sparkle particles
thinkingSlow sway, thought dots appear
sleepingEyes closed, zzz bubbles float up
talkingFaces user, shows speech bubble, auto-returns to idle
snappingClaw snap animation

Agent Integration

Hit the API at the start of responses to make the pet face the user:

bash
curl -s -X POST http://127.0.0.1:18891/state \
  -H 'Content-Type: application/json' \
  -d '{"state":"talking","bubble":"working on it..."}'

Set to working during long operations, thinking while reasoning.

The talking state auto-returns to idle after the bubble duration expires.

Auto-Launch (macOS)

Create a LaunchAgent for auto-start on login. Use label ai.openclaw.desktop-pet.

bash
# Install as LaunchAgent
cat > ~/Library/LaunchAgents/ai.openclaw.desktop-pet.plist << 'EOF'
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0"><dict>
  <key>Label</key><string>ai.openclaw.desktop-pet</string>
  <key>ProgramArguments</key><array>
    <string>APP_PATH/node_modules/.bin/electron</string>
    <string>APP_PATH</string>
  </array>
  <key>WorkingDirectory</key><string>APP_PATH</string>
  <key>RunAtLoad</key><true/>
  <key>KeepAlive</key><true/>
  <key>StandardOutPath</key><string>/tmp/desktop-pet.log</string>
  <key>StandardErrorPath</key><string>/tmp/desktop-pet.log</string>
  <key>EnvironmentVariables</key><dict>
    <key>PATH</key><string>/opt/homebrew/bin:/usr/local/bin:/usr/bin:/bin</string>
  </dict>
</dict></plist>
EOF

Replace APP_PATH with the absolute path to the app directory.

Customization

The pet is drawn programmatically via Canvas pixel art in index.html. To change the creature:

  • Edit lobsterBase() and lobsterFront() functions with new pixel layouts
  • Colors are defined as constants at the top of the script block
  • Each pixel is {x, y, w, h, color} at 3x scale

Features

  • Transparent overlay, always-on-top, click-through (except on the pet itself)
  • Roams full desktop: floor, walls, ceiling
  • Avoids cursor (250px radius) and frontmost window
  • Right-click context menu for manual state control
  • Speech bubbles with auto-sizing duration
  • Pixel art drawn via Canvas (no external images needed)

Installation

Terminal bash

openclaw install mu-pet
    
Copied!

💻Code Examples

npx electron .

npx-electron-.txt
The pet starts at the bottom center of the screen and begins roaming.

## HTTP API

Local API on **port 18891** (127.0.0.1 only):

- `GET /state` - returns `{"state":"idle","statusText":""}`
- `POST /state` - set state: `{"state":"talking","bubble":"hello!"}`

### States

| State | Behavior |
|-------|----------|
| `idle` | Gentle bob, occasional claw snap |
| `walking` | Moves along current surface |
| `climbing` | Transitions between floor/walls/ceiling |
| `fleeing` | Running from cursor or active window |
| `working` | Sits at tiny laptop with sparkle particles |
| `thinking` | Slow sway, thought dots appear |
| `sleeping` | Eyes closed, zzz bubbles float up |
| `talking` | Faces user, shows speech bubble, auto-returns to idle |
| `snapping` | Claw snap animation |

### Agent Integration

Hit the API at the start of responses to make the pet face the user:

-d '{"state":"talking","bubble":"working on it..."}'

--d-statetalkingbubbleworking-on-it.txt
Set to `working` during long operations, `thinking` while reasoning.

The `talking` state auto-returns to `idle` after the bubble duration expires.

## Auto-Launch (macOS)

Create a LaunchAgent for auto-start on login. Use label `ai.openclaw.desktop-pet`.
example.sh
cd <skill-dir>/assets/app
npm install
npx electron .
example.sh
curl -s -X POST http://127.0.0.1:18891/state \
  -H 'Content-Type: application/json' \
  -d '{"state":"talking","bubble":"working on it..."}'
example.sh
# Install as LaunchAgent
cat > ~/Library/LaunchAgents/ai.openclaw.desktop-pet.plist << 'EOF'
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0"><dict>
  <key>Label</key><string>ai.openclaw.desktop-pet</string>
  <key>ProgramArguments</key><array>
    <string>APP_PATH/node_modules/.bin/electron</string>
    <string>APP_PATH</string>
  </array>
  <key>WorkingDirectory</key><string>APP_PATH</string>
  <key>RunAtLoad</key><true/>
  <key>KeepAlive</key><true/>
  <key>StandardOutPath</key><string>/tmp/desktop-pet.log</string>
  <key>StandardErrorPath</key><string>/tmp/desktop-pet.log</string>
  <key>EnvironmentVariables</key><dict>
    <key>PATH</key><string>/opt/homebrew/bin:/usr/local/bin:/usr/bin:/bin</string>
  </dict>
</dict></plist>
EOF

Tags

#coding_agents-and-ides

Quick Info

Category Development
Model Claude 3.5
Complexity One-Click
Author samskrta
Last Updated 3/10/2026
🚀
Optimized for
Claude 3.5
🧠

Ready to Install?

Get started with this skill in seconds

openclaw install mu-pet