{"adoption": {"forks": 8543, "observed_at": "2026-08-28T04:11:06.477258+00:00", "stars": 14232}, "canonical_url": "https://ross.abutalabs.com/products/cc-haha", "card": {"archived": false, "artifact_type": "application", "description": "Local-first cross-platform desktop workspace for Claude Code / agents: multi-agent, Git worktrees, code diffs, skill marketplace, multi-model, Computer Use, task-aware desktop pets, with WeChat, Feishu, DingTalk, Telegram, WhatsApp and H5 access.", "domain": ["developer-tools", "large-language-models", "desktop-applications"], "enriched": true, "function": ["agent-framework", "mcp", "chat-interface", "developer-tools", "gui", "llm-inference"], "health_score": 99, "homepage": "cchaha.ai", "language": "TypeScript", "license": "MIT", "license_family": "permissive", "maturity": "active", "member_repos": ["NanmiCoder/cc-haha"], "name": "NanmiCoder/cc-haha", "platform": ["windows", "cross-platform"], "pushed_at": "2026-08-23T18:32:30+00:00", "repo": "NanmiCoder/cc-haha", "stars": 14232, "tags": ["claude-code", "coding-agent", "git-worktrees", "computer-use", "skill-marketplace", "im-integration", "desktop-pets", "multi-model", "ai-agents", "automation", "macos", "linux", "electron", "desktop"], "topics": ["agent", "ai", "ai-agent", "anthropic", "claude", "claude-code", "coding-agent", "computer-use", "desktop-app", "electron", "llm", "mcp", "react", "typescript"], "urls": [], "use_cases": ["manage multiple claude code sessions from a desktop app", "review code diffs from ai coding agents", "run coding agents on git worktrees", "use claude code with chatgpt or grok models", "control agents remotely via telegram or wechat", "manage mcp servers and subagents visually", "schedule automated agent tasks", "monitor agent tool calls and progress"], "what_it_is": "A local-first cross-platform desktop workspace for Claude Code and AI coding agents, built with Electron, React, and TypeScript. It provides multi-session workspaces, Git worktree launching, diff review, MCP/SubAgent management, multi-model support, Computer Use, a skill marketplace, and IM integrations (WeChat, Feishu, DingTalk, Telegram, WhatsApp).", "when_to_avoid": ["you prefer a pure terminal workflow without a desktop app", "you need a headless or CI-based agent runner", "you only need a lightweight CLI wrapper around Claude Code"], "when_to_choose": ["you use Claude Code or similar coding agents daily and want a GUI instead of the terminal", "you need multi-session, multi-model agent workspaces with diff review", "you want remote access to agents through IM platforms", "you want MCP and SubAgent management in a visual interface"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/cc-haha", "repo": "NanmiCoder/cc-haha", "role": "main", "score": 81}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:11:06.477258+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-29T17:12:43.015122+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "ff2bd90408bb18b41755a6253021b6935a3734bad35e61106b2ad94e238fbe58", "fetched_at": "2026-08-28T04:11:06.477258+00:00", "kind": "readme", "missing": false, "url": "https://github.com/NanmiCoder/cc-haha"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:11:06.477258+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-29T17:12:43.015122+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "ff2bd90408bb18b41755a6253021b6935a3734bad35e61106b2ad94e238fbe58", "fetched_at": "2026-08-28T04:11:06.477258+00:00", "kind": "readme", "missing": false, "url": "https://github.com/NanmiCoder/cc-haha"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-29T17:12:43.015122+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "ff2bd90408bb18b41755a6253021b6935a3734bad35e61106b2ad94e238fbe58", "fetched_at": "2026-08-28T04:11:06.477258+00:00", "kind": "readme", "missing": false, "url": "https://github.com/NanmiCoder/cc-haha"}], "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:11:06.477258+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:11:06.477258+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:11:06.477258+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-29T17:12:43.015122+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "ff2bd90408bb18b41755a6253021b6935a3734bad35e61106b2ad94e238fbe58", "fetched_at": "2026-08-28T04:11:06.477258+00:00", "kind": "readme", "missing": false, "url": "https://github.com/NanmiCoder/cc-haha"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:11:06.477258+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:11:06.477258+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-29T17:12:43.015122+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "ff2bd90408bb18b41755a6253021b6935a3734bad35e61106b2ad94e238fbe58", "fetched_at": "2026-08-28T04:11:06.477258+00:00", "kind": "readme", "missing": false, "url": "https://github.com/NanmiCoder/cc-haha"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:11:06.477258+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:11:06.477258+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:11:06.477258+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-29T17:12:43.015122+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "ff2bd90408bb18b41755a6253021b6935a3734bad35e61106b2ad94e238fbe58", "fetched_at": "2026-08-28T04:11:06.477258+00:00", "kind": "readme", "missing": false, "url": "https://github.com/NanmiCoder/cc-haha"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:11:06.477258+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:11:06.477258+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-29T17:12:43.015122+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "ff2bd90408bb18b41755a6253021b6935a3734bad35e61106b2ad94e238fbe58", "fetched_at": "2026-08-28T04:11:06.477258+00:00", "kind": "readme", "missing": false, "url": "https://github.com/NanmiCoder/cc-haha"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-29T17:12:43.015122+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "ff2bd90408bb18b41755a6253021b6935a3734bad35e61106b2ad94e238fbe58", "fetched_at": "2026-08-28T04:11:06.477258+00:00", "kind": "readme", "missing": false, "url": "https://github.com/NanmiCoder/cc-haha"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-29T17:12:43.015122+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "ff2bd90408bb18b41755a6253021b6935a3734bad35e61106b2ad94e238fbe58", "fetched_at": "2026-08-28T04:11:06.477258+00:00", "kind": "readme", "missing": false, "url": "https://github.com/NanmiCoder/cc-haha"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-29T17:12:43.015122+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "ff2bd90408bb18b41755a6253021b6935a3734bad35e61106b2ad94e238fbe58", "fetched_at": "2026-08-28T04:11:06.477258+00:00", "kind": "readme", "missing": false, "url": "https://github.com/NanmiCoder/cc-haha"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 99, "longevity": 11, "rhythm": 99}, "computed_at": "2026-09-03T02:20:16.233290+00:00", "flags": ["young"], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 155, "days_push": 10, "days_rel": 11, "gap_med": 2.0, "n_releases_24m": 41}, "score": 81, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}