OpenClaw Pets Widget is a desktop companion for OpenClaw agents. It runs as a small floating pet, opens into a control panel, and connects to an OpenClaw Gateway either on the same machine or through SSH to a remote machine.
The desktop pet uses Rive animations, supports multiple agent personas, and keeps the panel and pet window in sync through Electron IPC.
openclawshuai.mp4
Pre-built binaries for macOS and Windows are available on the Releases page.
- Floating desktop pet with a separate chat and settings panel
- Built-in Rive-based pet animations
- Per-agent character selection from built-in pets
- Local gateway mode and remote gateway mode over SSH
- Electron desktop app with macOS and Windows packaging targets
- macOS
- Windows
Linux is not packaged or documented yet.
The app is not code-signed yet. Your OS will show a security warning when you first open it.
macOS
- Open the
.dmgand drag the app to Applications - When macOS blocks the app ("Apple cannot check it for malicious software"), go to System Settings → Privacy & Security
- Scroll down to find the blocked app message, click Open Anyway
- Or: right-click the app → Open → click Open in the dialog
Windows
- Run the
.exeinstaller - Windows SmartScreen may show "Windows protected your PC"
- Click More info → Run anyway
- Node.js 20+
- pnpm 10+
- A reachable OpenClaw Gateway
For remote connections you also need:
- SSH access to the target machine
- A valid Gateway token
From the repository root:
pnpm install
pnpm dev:desktopCommon workspace commands:
pnpm dev
pnpm build
pnpm test
pnpm lintThe app supports two connection modes:
- Local gateway Use this when the OpenClaw Gateway is running on the same machine.
- Remote gateway over SSH Use this when the Gateway is running on another machine and the desktop app should open the tunnel for you.
Remote setup checklist:
- The remote machine already runs an OpenClaw Gateway
- Your machine can SSH into that host with your normal SSH configuration
- You have the Gateway token for that Gateway instance
If your Gateway is running on a home network and you are away from home, a direct SSH connection usually will not work unless that machine is reachable from outside your local network. In that case, first use a secure remote network solution such as Tailscale so the home machine becomes reachable over SSH, then connect the app to the machine by its Tailscale IP or hostname.
In the app:
- Start the desktop app with
pnpm dev:desktop - Open the panel from the pet
- Go to
Settings - Add a local or SSH gateway profile
- Connect and wait for the agent list to appear
The desktop app automatically generates an Ed25519 device identity on first launch
(stored in {userData}/device-identity.json) and signs each gateway challenge with it.
This satisfies the gateway's device-identity requirement without any manual configuration.
If you need the Gateway token, check one of these locations:
~/.openclaw/openclaw.jsonLook forgateway.auth.token. OpenClaw Gateway auth usesgateway.auth.tokenor theOPENCLAW_GATEWAY_TOKENenvironment variable.~/.openclaw/.envLook forOPENCLAW_GATEWAY_TOKEN, for example:
cat ~/.openclaw/.env | grep OPENCLAW_GATEWAY_TOKENThe active desktop app lives in apps/macos-shell.
Useful commands from that directory:
pnpm dev:desktop
pnpm start:desktop
pnpm dist:mac
pnpm dist:winapps/macos-shell/ Electron shell, renderer, pet UI, packaging
packages/bridge/ Bridge client and OpenClaw gateway integration
packages/domain/ Shared domain types and logic
From the repository root:
pnpm testFocused app checks:
pnpm --filter @openclaw-habitat/macos-shell test
pnpm --filter @openclaw-habitat/macos-shell lint
pnpm --filter @openclaw-habitat/macos-shell buildThis project is still evolving. The core desktop flow is functional, but the UI, packaging, and animation workflow are still being refined.