A pixel desktop pet that watches Claude Code, Codex, Cursor & other AI coding agents — so you don't have to.
Repo: rullerzhou-afk/clawd-on-desk
What's inside
Clawd lives on your desktop and reacts to what your AI coding agent is doing — in real time. Start a long task, walk away, come back when the crab tells you it's done.
Thinking when you prompt, typing when tools run, grooving or juggling for subagents, reviewing permissions, celebrating when tasks complete, sleeping when you step away. Ships with three built-in themes: Clawd (pixel crab), Calico (三花猫), and Cloudling (云宝), with full support for custom themes and imported Codex Pet animation packs.
Supports Windows 11, macOS, and Ubuntu/Linux. Windows releases provide separate x64 and ARM64 installers. Source builds require Node.js. Works with Claude Code, Codex CLI, Copilot CLI, Gemini CLI, Antigravity CLI (agy), Cursor Agent, CodeBuddy, WorkBuddy, Kiro CLI, Kimi Code CLI (Kimi-CLI), Qwen Code, ZCode, CodeWhale, opencode, MiMo Code, Pi, OpenClaw, Hermes Agent, Qoder, QoderWork, and Reasonix CLI.
~/.codex/sessions/), auto-synced by default with real permission bubbles~/.copilot/hooks/hooks.json (install from Settings → Agents; see the Copilot guide for manual JSON fallback)~/.gemini/settings.json (install from Settings → Agents or run npm run install:gemini-hooks)~/.gemini/config/hooks.json (install from Settings → Agents or run npm run install:antigravity-hooks); state-only: Clawd never pops a permission bubble for agy. Every Allow / Deny / Always-allow choice happens in agy's own terminal menu~/.cursor/hooks.json (install from Settings → Agents or run npm run install:cursor-hooks)~/.codebuddy/settings.json (install from Settings → Agents or run node hooks/codebuddy-install.js)/state endpoint. Registration does not install hooks or make an arbitrary application report automatically; v1 is state-only and leaves permission decisions in the application's own UI. See the custom HTTP agent guide.~/.workbuddy-ai/settings.json (current) or ~/.workbuddy/settings.json (legacy; install from Settings → Agents or run node hooks/workbuddy-install.js). State + Notification only: the desktop app resolves permissions in its own native sandbox and GUI, so Clawd does not register a permission hook for it.~/.kiro/agents/, plus an auto-created clawd agent that is re-synced from Kiro's built-in kiro_default after you install the integration, so you can opt into hooks with minimal behavior drift via kiro-cli --agent clawd or /agent swap clawd. State hooks are verified on macOS and Windows.~/.kimi/config.toml ([[hooks]] entries) (install from Settings → Agents or run npm run install:kimi-hooks)~/.qwen/settings.json (install from Settings → Agents or run npm run install:qwen-hooks); state tracking and Qwen PermissionRequest desktop approval bubbles are supported~/.zcode/cli/config.json → hooks.events.* (install from Settings → Agents or run npm run install:zcode-hooks); Phase 1 drives session, prompt, tool, failure, and completion animations without intercepting ZCode permissions. Clawd preserves explicit global or per-hook enabled:false settings~/.codewhale/config.toml ([[hooks.hooks]] entries) (install from Settings → Agents or run npm run install:codewhale-hooks); Phase 1 drives idle, thinking, working, sleeping, error, attention, and sweeping animations only, without permission bubbles or subagent tracking<Reasonix home>/settings.json (~/.reasonix/settings.json on macOS/Linux, %APPDATA%\reasonix\settings.json on Windows; install from Settings → Agents or run npm run install:reasonix-hooks); Phase 1 drives lifecycle, tool, notification, compaction, and subagent-stop animations while leaving permission decisions in Reasonix's own terminal flow~/.config/opencode/opencode.json (install from Settings → Agents or run node hooks/opencode-install.js); zero-latency event streaming and permission bubbles with Allow/Always/Deny. Child sessions spawned by the task tool are headless and do not participate in the visible multi-session animation fanout~/.config/mimocode/mimocode.jsonc (install from Settings → Agents or run node hooks/mimocode-install.js); shares the same @mimo-ai/plugin SDK and permission behavior as opencode. Its task child sessions are likewise headless~/.pi/agent/extensions/clawd-on-desk (install from Settings → Agents or run npm run install:pi-extension); state-only interactive lifecycle and tool activity updates while preserving Pi's default YOLO behavior~/.openclaw/openclaw.json (install from Settings → Agents or run npm run install:openclaw-plugin; OpenClaw also needs an initialized config); local openclaw tui --local sessions drive Clawd animations, without permission bubbles or terminal focus in Phase 1npm run install:hermes-plugin); state, sessions, SessionEnd, and terminal focus are supported~/.qoder/settings.json (install from Settings → Agents or run npm run install:qoder-hooks); Phase 1 drives Clawd animations only — Qoder permission prompts are observed as notifications, and every Allow / Deny choice stays in Qoder's own flow~/.qoderwork/settings.json (install from Settings → Agents or run npm run install:qoderwork-hooks); Phase 1 drives Clawd animations and the Session HUD — QoderWork permission events are observed silently as part of the working flow, and every Allow / Deny choice stays in QoderWork's own flowSettings… → Theme; Clawd adapts their atlas animations into managed themesAlways actions when the source agent supports themCtrl+Shift+Y to Allow, Ctrl+Shift+N to Deny the latest permission bubble (only registered while bubbles are visible)Settings… → Agents, pick an agent, and turn off Show pop-up bubbles to keep prompts in that agent's own terminal/TUIOpen Dashboard to inspect live sessions, recent events, aliases, and jump to a terminal; a compact HUD near Clawd keeps current live sessions visiblerate_limits payload; it does not make an additional request to Anthropic. See the data-flow and ownership notes.Settings… → Mobile / PWA and open the pairing URL on your phone; the Clawd Mobile web app shows your agent sessions and their live states in real timeThe mobile companion line — from the first prototype to token rotation — is built and led by core contributor @Bynlk, who also maintains clawd-on-mobile, a sister fork with a native Android app.
git pull + restart when running from a cloned repoFull event-to-state mapping, mini mode, and click reactions: docs/guides/state-mapping.md
Clawd adapts to multi-monitor setups: proportional sizing uses the display Clawd launches on, portrait monitors get a bounded boost so the pet stays readable on tall narrow screens, and you can drag Clawd across displays.
For normal use, download the latest prebuilt installer from GitHub Releases:
Clawd-on-Desk-Setup-<version>-x64.exe or Clawd-on-Desk-Setup-<version>-arm64.exe.dmg.AppImage or .debLaunch Clawd after installing it. Fresh installs auto-sync Claude Code and Codex only; install other local agent integrations from Settings → Agents when you need them.
Run from source only if you're contributing, testing unreleased code, or debugging integrations. Source installs download Electron/build tooling and can create a large node_modules tree.
# Clone the repo
git clone https://github.com/rullerzhou-afk/clawd-on-desk.git
cd clawd-on-desk
# Install dependencies
npm install
# Start Clawd (auto-registers Claude Code and Codex hooks on launch)
npm start
Claude Code and Codex CLI work out of the box with auto-registered hooks. For Copilot CLI, Gemini CLI, Antigravity CLI (agy), Cursor Agent, CodeBuddy, WorkBuddy, Kiro CLI, Kimi Code CLI (Kimi-CLI), Qwen Code, ZCode, CodeWhale, opencode, MiMo Code, Pi, OpenClaw, Hermes Agent, Qoder, QoderWork, and Reasonix CLI, install the integration from Settings → Agents first; Clawd then keeps it synced while it remains enabled. Also covers remote SSH, WSL, and platform-specific notes (macOS / Linux): docs/guides/setup-guide.md
Want to run Claude Code / Codex CLI on a remote server and surface state plus permission bubbles in your local Clawd? Use the in-app Settings → Remote SSH → Deploy / Repair Hooks. Full walkthrough, shared-server isolation boundary, Doctor boundary, and FAQ: docs/guides/guide-remote-ssh.md
For the official Codex + WSL status, Clawd's current implementation boundary, and why this is easy to misread, see: docs/guides/codex-wsl-clarification.md
Some agents have feature gaps (no permission bubble, polling latency, no terminal focus). See the full table: docs/guides/known-limitations.md
Clawd supports custom themes — replace the default crab with your own character and animations. If you already have a Codex Pet package, import its zip from Settings… → Theme → Import pet zip; Clawd turns the atlas into a managed theme automatically.
Quick start:
node scripts/create-theme.js my-theme
# or
npm run create-theme -- my-theme
No argument also works: it creates the next available my-theme scaffold in your user themes directory.theme.json and create your assets (SVG, GIF, APNG, WebP, PNG, JPG, or JPEG)Settings… → Theme → select your themeMinimum viable theme: 1 SVG (idle with eye tracking) + 7 GIF/APNG files (thinking, working, error, happy, notification, sleeping, waking). Eye tracking can be disabled to use any format for all states.
Validate your theme before distributing:
node scripts/validate-theme.js path/to/your-theme
Theme cards in Settings… → Theme now expose capability badges such as Tracked idle, Static theme, Mini, Direct sleep, and No reactions, so users can tell what a theme supports before switching.
See docs/guides/guide-theme-creation.md for the full creation guide with tiered paths (beginner → advanced), theme.json field reference, and asset guidelines.
Third-party SVG files are automatically sanitized for security.
Some things we'd like to explore in the future:
codex.exe PIDClawd on Desk is a community-driven project. Bug reports, feature ideas, and pull requests are all welcome — open an issue to discuss or submit a PR directly.
Thanks to everyone who has helped make Clawd better:
Source code is licensed under the GNU Affero General Public License v3.0 (AGPL-3.0).
Artwork and bundled theme assets (including assets/ and themes/*/assets/) are NOT covered by AGPL-3.0. All rights reserved by their respective copyright holders. See assets/LICENSE and the notices below for details.
No cryptocurrency. This project has no token, coin, NFT, or airdrop, and is not affiliated with any cryptocurrency project.
.github/
workflows/
build.yml
repository-asset-audit.yml
telegram-retirement-package-audit.yml
wayland-smoke.yml
.gitignore
.nvmrc
agents/
AGENTS.md
antigravity-cli.js
claude-code.js
codebuddy.js
codewhale.js
codex-log-monitor.js
codex-subagent-classifier.js
codex.js
copilot-cli.js
cursor-agent.js
gemini-cli.js
gemini-log-monitor.js
hermes.js
kimi-cli.js
kimi-log-monitor.js
kiro-cli.js
mimocode.js
openclaw.js
opencode-family.js
opencode.js
pi.js
qoder.js
qoderwork.js
qwen-code.js
reasonix.js
registry.js
workbuddy.js
zcode.js
assets/
accessories/
cowboy-hat.svg
halo.svg
party-hat.svg
pumpkin-hat.svg
santa-hat.svg
top-hat.svg
wizard-hat.svg
discord-presence/
clawd-bubble.gif
clawd-building.gif
clawd-carrying.gif
clawd-debugger.gif
clawd-error.gif
clawd-happy.gif
clawd-headphones-groove.gif
clawd-idle-reading.gif
clawd-idle.gif
clawd-juggling.gif
clawd-mini-alert.gif
clawd-mini-crabwalk.gif
clawd-mini-enter.gif
clawd-mini-happy.gif
clawd-mini-idle.gif
clawd-mini-peek.gif
clawd-notification.gif
clawd-sleeping.gif
clawd-sweeping.gif
clawd-thinking.gif
clawd-typing.gif
dock-icon.png
gif/
calico-building.gif
calico-carrying.gif
calico-conducting.gif
calico-error.gif
calico-happy.gif
calico-idle.gif
calico-juggling.gif
calico-mini-alert.gif
calico-mini-happy.gif
calico-mini-idle.gif
calico-mini-peek.gif
calico-notification.gif
calico-sleeping.gif
calico-sweeping.gif
calico-thinking.gif
calico-typing.gif
clawd-bubble.gif
clawd-building.gif
clawd-carrying.gif
clawd-conducting.gif
clawd-debugger.gif
clawd-error.gif
clawd-happy.gif
clawd-headphones-groove.gif
clawd-idle-reading.gif
clawd-idle.gif
clawd-juggling.gif
clawd-mini-alert.gif
clawd-mini-crabwalk.gif
clawd-mini-enter.gif
clawd-mini-happy.gif
clawd-mini-idle.gif
clawd-mini-peek.gif
clawd-notification.gif
clawd-react-annoyed.gif
clawd-react-double-jump.gif
clawd-sleeping.gif
clawd-sweeping.gif
clawd-thinking.gif
clawd-typing.gif
cloudling-attention.gif
cloudling-building.gif
cloudling-carrying.gif
cloudling-conducting.gif
cloudling-error.gif
cloudling-idle-reading.gif
cloudling-idle.gif
cloudling-juggling.gif
cloudling-mini-alert.gif
cloudling-mini-crabwalk.gif
cloudling-mini-happy.gif
cloudling-mini-idle.gif
cloudling-mini-peek.gif
cloudling-mini-sleep.gif
cloudling-mini-working.gif
cloudling-notification.gif
cloudling-sleeping.gif
cloudling-sweeping.gif
cloudling-thinking.gif
cloudling-typing.gif
hero.gif
icon.ico
icon.png
icons/
128x128.png
16x16.png
256x256.png
32x32.png
48x48.png
512x512.png
64x64.png
agents/
antigravity-cli.png
claude-code.png
codebuddy.png
codewhale.png
codex.png
copilot-cli.png
cursor-agent.png
gemini-cli.png
hermes.png
kimi-cli.png
kiro-cli.png
mimocode.png
openclaw.png
opencode.png
pi.png
qoder.png
qoderwork.png
qwen-code.png
reasonix.png
workbuddy.png
zcode.png
LICENSE
screenshot-context-menu.png
screenshot-permission-bubble.png
screenshot-remote-ssh.png
sounds/
complete.mp3
confirm.mp3
source/
accessories/
halo-original.svg
santa-hat-original.svg
agent-icons/
antigravity-cli.png
antigravity-cli.svg
claude-code.png
claude-code.svg
codebuddy.png
codebuddy.svg
codewhale.png
codex.png
codex.svg
copilot-cli.png
copilot-cli.svg
cursor-agent.png
cursor-agent.svg
gemini-cli.png
gemini-cli.svg
hermes.png
hermes.svg
kimi-cli-legacy.png
kimi-cli.png
kimi-cli.svg
kiro-cli.png
kiro-cli.svg
mimocode.png
mimocode.svg
openclaw.png
openclaw.svg
opencode.png
opencode.svg
pi.png
pi.svg
qoder.png
qoder.svg
qoderwork-legacy.png
qoderwork.png
qwen-code.png
qwen-code.svg
README.md
reasonix.png
source-manifest.json
workbuddy.png
zcode.png
clawd-accessory-follow/
clawd-error.svg
clawd-headphones-groove.svg
clawd-idle-bubble.svg
clawd-idle-doze.svg
clawd-idle-reading.svg
clawd-mini-alert.svg
clawd-mini-enter.svg
clawd-mini-happy.svg
clawd-mini-idle.svg
clawd-mini-peek.svg
clawd-mini-typing.svg
clawd-notification.svg
clawd-react-annoyed.svg
clawd-react-double-jump.svg
clawd-react-double.svg
clawd-react-drag.svg
clawd-react-left.svg
clawd-react-right.svg
clawd-working-building.svg
clawd-working-carrying.svg
clawd-working-debugger.svg
clawd-working-juggling.svg
clawd-working-sweeping.svg
clawd-working-typing.svg
clawd-thinking/
clawd-experiment-thinking-bubble-v24.svg
cloudling-codex-pet/
confirmed/
README.md
states/
carrying-eat-cloud-v5.svg.html
cloud-plane-orbit-explore.svg.html
conducting-task-sparks-v5.svg.html
error-thundercloud-loop-v9-tuned.svg.html
long-idle-cloud-bush-peek-v1.svg.html
mini-peek-hover-pose-v1.svg.html
sweeping-context-cards-orbit-loop-v1.svg.html
typing-original-polish-v2.svg.html
README.md
cloudling-low-power/
cloudling-dozing.svg
cloudling-pointer-bridge/
cloudling-idle.svg
cloudling-mini-idle.svg
dock-icon-fullbleed.png
freesound-510287/
deletraz-notification-hq.mp3
README.md
freesound-538149/
notification-hq.mp3
README.md
freesound-704896/
old-cell-end-call-hq.mp3
README.md
freesound-840284/
mobile-phone-notification-sound-hq.mp3
README.md
SOUND-CANDIDATES.md
svg/
clawd-about-hero.svg
clawd-aegyo-shy.svg
clawd-coffee-hand.svg
clawd-coffee-head-flip.svg
clawd-collapse-sleep.svg
clawd-dizzy.svg
clawd-error.svg
clawd-happy.svg
clawd-headphones-groove.svg
clawd-idle-bubble.svg
clawd-idle-collapse.svg
clawd-idle-doze.svg
clawd-idle-follow.svg
clawd-idle-living.svg
clawd-idle-look.svg
clawd-idle-low-battery.svg
clawd-idle-reading.svg
clawd-idle-yawn.svg
clawd-mini-alert.svg
clawd-mini-crabwalk.svg
clawd-mini-enter-sleep.svg
clawd-mini-enter.svg
clawd-mini-happy.svg
clawd-mini-idle.svg
clawd-mini-peek.svg
clawd-mini-sleep.svg
clawd-mini-typing.svg
clawd-notification.svg
clawd-react-annoyed.svg
clawd-react-double-jump.svg
clawd-react-double.svg
clawd-react-drag.svg
clawd-react-left.svg
clawd-react-right.svg
clawd-sleeping.svg
clawd-static-base.svg
clawd-wake.svg
clawd-working-building.svg
clawd-working-carrying.svg
clawd-working-debugger.svg
clawd-working-juggling.svg
clawd-working-sweeping.svg
clawd-working-thinking.svg
clawd-working-typing-boss.svg
clawd-working-typing.svg
clawd-working-ultrathink.svg
clawd-working-wizard.svg
old/
clawd-idle-reading-old.svg
clawd-notification-retired-2026-05-12.svg
clawd-working-building-boxes.svg
clawd-working-conducting-retired-2026-05-12.svg
clawd-working-typing-old.svg
tray-icon-flash.png
tray-iconTemplate.png
tray-iconTemplate@2x.png
videos/
clawd-multi-monitor-demo.mp4
build/
installer.nsh
uninstall-claude-hooks.ps1
ci/
wayland-smoke.sh
CLAUDE.md
docs/
guides/
codewhale-setup.md
codex-wsl-clarification.ko-KR.md
codex-wsl-clarification.md
codex-wsl-clarification.zh-CN.md
copilot-setup.md
copilot-setup.zh-CN.md
custom-agent-http.md
feishu-lark-remote-approval.md
guide-remote-ssh.md
guide-remote-ssh.zh-CN.md
guide-theme-creation.md
known-limitations.md
known-limitations.zh-CN.md
setup-guide.md
setup-guide.zh-CN.md
state-mapping.md
state-mapping.zh-CN.md
telegram-approval.md
investigations/
codex-subagent-session-meta.md
issue-821-windows-validation.md
permission-hook-fail-deny-investigation.md
mobile-protocol-v1.md
plans/
plan-codex-pet-compatibility.md
plan-issue-244-low-power-idle.md
plan-issue-357-context-usage-display.md
plan-issue-416-macos-dock-hide-and-icon.md
plan-issue-513-remote-ssh-isolation.md
plan-issue-540-hermes-wsl-deploy.md
plan-issue-620-codex-pet-drag-direction-flicker.md
plan-issue-694-windows-server-process-chain-b0-b1a.md
plan-issue-763-koffi-target-native-packaging.md
plan-issue-796-opencode-session-cwd.md
plan-issue-817-codex-rollout-bounded-reading.md
plan-opencode-family-shared-integration.md
plan-pr529-accessory-wardrobe.md
plan-telegram-legacy-immediate-retirement.md
project/
agent-runtime-architecture.md
release-process.md
theme-state-ui.md
releases/
release-v0.10.0.md
release-v0.11.0.md
release-v0.12.0.md
release-v0.13.0.md
release-v0.14.0.md
release-v0.5.5.md
release-v0.6.0.md
release-v0.6.1.md
release-v0.6.2.md
release-v0.6.3.md
release-v0.7.0.md
release-v0.7.1.md
release-v0.8.0.md
release-v0.8.1.md
release-v0.9.0.md
... 850 moreFAQ
clawd-on-desk is a Claude Code plugin with hand-picked skills for development work, indexed on Flowy. Install it with the command on its page. Its skills do not fire on their own yet. Request auto-invocation to have Flowy route them as you prompt. Free and open source.