{"adoption": {"forks": 628, "observed_at": "2026-08-28T04:09:34.511672+00:00", "stars": 6039}, "canonical_url": "https://ross.abutalabs.com/products/clawd-on-desk", "card": {"archived": false, "artifact_type": "application", "description": "A pixel desktop pet that watches Claude Code, Codex, Cursor & other AI coding agents — so you don't have to.", "domain": ["developer-tools", "desktop-applications"], "enriched": true, "function": ["monitoring", "animation", "desktop-framework", "developer-tools"], "health_score": 100, "homepage": null, "language": "JavaScript", "license": "AGPL-3.0", "license_family": "copyleft", "maturity": "active", "member_repos": ["rullerzhou-afk/clawd-on-desk"], "name": "rullerzhou-afk/clawd-on-desk", "platform": ["windows", "cross-platform"], "pushed_at": "2026-08-26T15:50:09+00:00", "repo": "rullerzhou-afk/clawd-on-desk", "stars": 6039, "tags": ["desktop-pet", "pixel-art", "claude-code", "codex", "cursor", "ai-coding-agents", "svg-animation", "themes", "ai-agents", "macos", "linux", "electron", "desktop"], "topics": ["claude-code", "codex", "copilot", "cursor", "desktop-pet", "electron", "gemini", "pixel-art", "svg-animation"], "urls": [], "use_cases": ["monitor claude code agent status from my desktop", "get notified when my AI coding agent finishes a long task", "desktop pet that reacts to codex cli activity", "pixel art companion for cursor agent runs", "know when my coding agent needs permission approval without watching the terminal", "customize desktop pet themes for AI coding tools"], "what_it_is": "Clawd on Desk is an Electron-based pixel desktop pet that watches AI coding agents like Claude Code, Codex, Cursor, and Copilot in real time, animating to reflect what the agent is doing. It notifies you when long-running tasks finish so you can step away and return when the work is done.", "when_to_avoid": ["you need programmatic APIs or CI integration for agent monitoring", "you don't use AI coding agents and just want a generic desktop pet", "you need headless/server-side monitoring without a desktop environment"], "when_to_choose": ["you run AI coding agents (Claude Code, Codex, Cursor, etc.) and want ambient status awareness", "you step away from long agent tasks and want a visual/audio cue when they finish", "you want a fun, customizable desktop pet with theme support"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/clawd-on-desk", "repo": "rullerzhou-afk/clawd-on-desk", "role": "main", "score": 82}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:09:34.511672+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-29T17:49:07.572655+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b414764a397e33b9560e50eee6b7e3120f7204ab94f3e5fc382cee629019f3ee", "fetched_at": "2026-08-28T04:09:34.511672+00:00", "kind": "readme", "missing": false, "url": "https://github.com/rullerzhou-afk/clawd-on-desk"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:09:34.511672+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-29T17:49:07.572655+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b414764a397e33b9560e50eee6b7e3120f7204ab94f3e5fc382cee629019f3ee", "fetched_at": "2026-08-28T04:09:34.511672+00:00", "kind": "readme", "missing": false, "url": "https://github.com/rullerzhou-afk/clawd-on-desk"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-29T17:49:07.572655+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b414764a397e33b9560e50eee6b7e3120f7204ab94f3e5fc382cee629019f3ee", "fetched_at": "2026-08-28T04:09:34.511672+00:00", "kind": "readme", "missing": false, "url": "https://github.com/rullerzhou-afk/clawd-on-desk"}], "taxonomy_version": 1}, "health_score": {"inputs": ["days_since_push", "days_since_release", "archived"], "kind": "computed", "method": "health_v1"}, "homepage": {"kind": "observed", "observed_at": "2026-08-28T04:09:34.511672+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:09:34.511672+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:09:34.511672+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-29T17:49:07.572655+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b414764a397e33b9560e50eee6b7e3120f7204ab94f3e5fc382cee629019f3ee", "fetched_at": "2026-08-28T04:09:34.511672+00:00", "kind": "readme", "missing": false, "url": "https://github.com/rullerzhou-afk/clawd-on-desk"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:09:34.511672+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:09:34.511672+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-29T17:49:07.572655+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b414764a397e33b9560e50eee6b7e3120f7204ab94f3e5fc382cee629019f3ee", "fetched_at": "2026-08-28T04:09:34.511672+00:00", "kind": "readme", "missing": false, "url": "https://github.com/rullerzhou-afk/clawd-on-desk"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:09:34.511672+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:09:34.511672+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:09:34.511672+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-29T17:49:07.572655+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b414764a397e33b9560e50eee6b7e3120f7204ab94f3e5fc382cee629019f3ee", "fetched_at": "2026-08-28T04:09:34.511672+00:00", "kind": "readme", "missing": false, "url": "https://github.com/rullerzhou-afk/clawd-on-desk"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:09:34.511672+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:09:34.511672+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-29T17:49:07.572655+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b414764a397e33b9560e50eee6b7e3120f7204ab94f3e5fc382cee629019f3ee", "fetched_at": "2026-08-28T04:09:34.511672+00:00", "kind": "readme", "missing": false, "url": "https://github.com/rullerzhou-afk/clawd-on-desk"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-29T17:49:07.572655+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b414764a397e33b9560e50eee6b7e3120f7204ab94f3e5fc382cee629019f3ee", "fetched_at": "2026-08-28T04:09:34.511672+00:00", "kind": "readme", "missing": false, "url": "https://github.com/rullerzhou-afk/clawd-on-desk"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-29T17:49:07.572655+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b414764a397e33b9560e50eee6b7e3120f7204ab94f3e5fc382cee629019f3ee", "fetched_at": "2026-08-28T04:09:34.511672+00:00", "kind": "readme", "missing": false, "url": "https://github.com/rullerzhou-afk/clawd-on-desk"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-29T17:49:07.572655+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b414764a397e33b9560e50eee6b7e3120f7204ab94f3e5fc382cee629019f3ee", "fetched_at": "2026-08-28T04:09:34.511672+00:00", "kind": "readme", "missing": false, "url": "https://github.com/rullerzhou-afk/clawd-on-desk"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 99, "longevity": 12, "rhythm": 99}, "computed_at": "2026-09-02T17:46:02.011165+00:00", "flags": ["young"], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 168, "days_push": 7, "days_rel": 10, "gap_med": 3.5, "n_releases_24m": 33}, "score": 82, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}