A pixel desktop pet that watches Claude Code, Codex, Cursor & other AI coding agents — so you don't have to.
From the author’s README · Quick Start · not verified by Flowy
$ brew install --cask clawd-on-desk
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. An optional official theme, Hash Sage (哈希仙人), can be downloaded from Settings → Theme.
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, Grok Build, Kiro CLI, Kimi Code CLI (Kimi-CLI), Qwen Code, ZCode, CodeWhale, opencode, MiMo Code, Pi, OMP, OpenClaw, Hermes Agent, Qoder, QoderWork, QwenWork (千问办公), Reasonix CLI, DeepSeek Harness, and TraeCode (Trae CN).
~/.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.~/.grok/hooks/clawd-on-desk.json (install from Settings → Agents or run node hooks/grok-install.js). State + Notification only: Grok has no blocking PermissionRequest hook, so Allow/Deny stays in the Grok TUI.~/.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 supportedPermissionRequest hooks via ~/.zcode/cli/config.json → hooks.events.* (install from Settings → Agents or run npm run install:zcode-hooks); Clawd shows manual Allow/Deny bubbles while global and per-session permission automation stays deferred. Clawd preserves explicit global or per-hook enabled:false settings and will not register over a foreign PermissionRequest hook~/.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/ (config.json → opencode.json → opencode.jsonc, later wins) (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/ (config.json → mimocode.json → default mimocode.jsonc, later wins; install from Settings → Agents or run npm run install:mimocode-plugin); 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~/.omp/agent/extensions/clawd-on-desk (install from Settings → Agents or run npm run install:omp-extension); state-only interactive lifecycle and tool activity updates. session_stop records a completion candidate, and the following terminal agent_end commits it only after OMP has confirmed that no extension requested a continuation, so the finish chime waits for the turn to settle. If the community bridge clawd-on-desk-omp.ts is already present, Clawd leaves it in place and skips its own install~/.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, terminal focus, and supported permission bubbles are available; Settings → Remote SSH can deploy the same plugin to a Hermes install on a remote host~/.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 flow~/.QwenWorkCN/settings.json (install from Settings → Agents or run npm run install:qwenwork-hooks, uninstall with npm run uninstall:qwenwork-hooks); macOS and Windows desktop only — qwenwork.cn/download has no Linux client, so there is no WSL pairing. Phase 1 drives Clawd animations and the Session HUD; PermissionRequest / PermissionDenied are observed only and mapped to working, the hook's stdout is always {}, and Clawd never produces an Allow / Deny — QwenWork's native permission flow stays the only decision maker. No startup recovery: the desktop process is long-lived and does not mean a turn is runningapproval/request calls can show an Allow Once / Deny bubble; no-decision always returns to DSH's native web answerer. ask_user_question stays entirely native to DSH, and Clawd never reads DSH projection storage. See the DeepSeek Harness guideFAQ
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.
Is this plugin yours?
Claim it with GitHubSubmit a pluginPromote it