{"adoption": {"forks": 329, "observed_at": "2026-08-28T04:06:36.776058+00:00", "stars": 2316}, "canonical_url": "https://ross.abutalabs.com/products/cindy", "card": {"archived": false, "artifact_type": "application", "description": "Consider it done. The open-source AI agent that works out of the box · 想到，就能做到。开源、开箱即用的 AI Agent。", "domain": ["artificial-intelligence", "large-language-models", "developer-tools", "cross-platform"], "enriched": true, "function": ["agent-framework", "chatbot", "mcp", "llm-inference", "workflow-automation", "scheduling", "plugin-system"], "health_score": 100, "homepage": "https://cindy.app", "language": "TypeScript", "license": "Apache-2.0", "license_family": "permissive", "maturity": "active", "member_repos": ["makecindy/cindy"], "name": "makecindy/cindy", "platform": ["windows", "cross-platform"], "pushed_at": "2026-08-26T20:29:50+00:00", "repo": "makecindy/cindy", "stars": 2316, "tags": ["ai-agent", "claude-code", "codex", "multi-harness", "byok", "react-native", "open-source-client", "computer-use", "browser-automation", "ai-agents", "automation", "macos", "android", "ios", "desktop", "mobile", "electron"], "topics": ["agent", "ai-agent", "ai-assistant", "android", "claude-code", "codex", "electron", "ios", "llm", "macos", "react-native", "typescript", "windows"], "urls": [], "use_cases": ["run an AI agent locally that uses my real files and logged-in apps", "switch between Claude Code and Codex mid-task without losing context", "delegate a task to multiple AI models working in parallel", "automate recurring work with scheduled agent runs", "connect my internal tools to an AI agent via MCP", "use my existing Claude Code or Codex subscription inside another agent app", "drive my browser, computer, or phone with an AI assistant", "self-host an open-source alternative to closed AI agent apps"], "what_it_is": "Cindy is an open-source AI agent client (desktop and mobile apps) that unifies multiple agent harnesses like Claude Code, Codex, and Pi with various models and tools to complete real work on your machine. It supports mid-task harness/model switching, multi-agent parallel execution, memory, skills, MCP integrations, and scheduled automation.", "when_to_avoid": ["you only need a lightweight CLI coding agent without a GUI client", "you want a fully free offline agent with no model costs or accounts", "you need a mature native harness rather than wrappers around Claude Code/Codex", "you require the plugin marketplace or team skill sharing, which are still in development"], "when_to_choose": ["you want an out-of-the-box AI agent across desktop and mobile without configuration", "you want to mix and switch harnesses and models freely within one continuous workspace", "you want to reuse an existing Claude Code/Codex plan or your own API keys instead of a new subscription", "you need memory, skills, MCP tool access, and scheduling in one agent"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/cindy", "repo": "makecindy/cindy", "role": "main", "score": 80}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:06:36.776058+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T02:38:58.137838+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a054b24e9ae205438d99d75de86c75e15f93f428ebcdbe273d52e38940351c54", "fetched_at": "2026-08-28T04:06:36.776058+00:00", "kind": "readme", "missing": false, "url": "https://github.com/makecindy/cindy"}, {"content_hash": "6bdd1db3d5582c47915e4c6a0567988458845ec905df436700c27f42345e3783", "fetched_at": "2026-08-29T10:19:41.739556+00:00", "kind": "homepage", "missing": false, "url": "https://cindy.app"}, {"content_hash": "6de3264f01c7688b2070745164a29947cde63b1b81a65a3135faa7464450b8bb", "fetched_at": "2026-08-29T10:19:41.748868+00:00", "kind": "site_page", "missing": false, "url": "https://cindy.app/pricing"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:06:36.776058+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T02:38:58.137838+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a054b24e9ae205438d99d75de86c75e15f93f428ebcdbe273d52e38940351c54", "fetched_at": "2026-08-28T04:06:36.776058+00:00", "kind": "readme", "missing": false, "url": "https://github.com/makecindy/cindy"}, {"content_hash": "6bdd1db3d5582c47915e4c6a0567988458845ec905df436700c27f42345e3783", "fetched_at": "2026-08-29T10:19:41.739556+00:00", "kind": "homepage", "missing": false, "url": "https://cindy.app"}, {"content_hash": "6de3264f01c7688b2070745164a29947cde63b1b81a65a3135faa7464450b8bb", "fetched_at": "2026-08-29T10:19:41.748868+00:00", "kind": "site_page", "missing": false, "url": "https://cindy.app/pricing"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T02:38:58.137838+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a054b24e9ae205438d99d75de86c75e15f93f428ebcdbe273d52e38940351c54", "fetched_at": "2026-08-28T04:06:36.776058+00:00", "kind": "readme", "missing": false, "url": "https://github.com/makecindy/cindy"}, {"content_hash": "6bdd1db3d5582c47915e4c6a0567988458845ec905df436700c27f42345e3783", "fetched_at": "2026-08-29T10:19:41.739556+00:00", "kind": "homepage", "missing": false, "url": "https://cindy.app"}, {"content_hash": "6de3264f01c7688b2070745164a29947cde63b1b81a65a3135faa7464450b8bb", "fetched_at": "2026-08-29T10:19:41.748868+00:00", "kind": "site_page", "missing": false, "url": "https://cindy.app/pricing"}], "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:06:36.776058+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:06:36.776058+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:06:36.776058+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T02:38:58.137838+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a054b24e9ae205438d99d75de86c75e15f93f428ebcdbe273d52e38940351c54", "fetched_at": "2026-08-28T04:06:36.776058+00:00", "kind": "readme", "missing": false, "url": "https://github.com/makecindy/cindy"}, {"content_hash": "6bdd1db3d5582c47915e4c6a0567988458845ec905df436700c27f42345e3783", "fetched_at": "2026-08-29T10:19:41.739556+00:00", "kind": "homepage", "missing": false, "url": "https://cindy.app"}, {"content_hash": "6de3264f01c7688b2070745164a29947cde63b1b81a65a3135faa7464450b8bb", "fetched_at": "2026-08-29T10:19:41.748868+00:00", "kind": "site_page", "missing": false, "url": "https://cindy.app/pricing"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:06:36.776058+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:06:36.776058+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T02:38:58.137838+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a054b24e9ae205438d99d75de86c75e15f93f428ebcdbe273d52e38940351c54", "fetched_at": "2026-08-28T04:06:36.776058+00:00", "kind": "readme", "missing": false, "url": "https://github.com/makecindy/cindy"}, {"content_hash": "6bdd1db3d5582c47915e4c6a0567988458845ec905df436700c27f42345e3783", "fetched_at": "2026-08-29T10:19:41.739556+00:00", "kind": "homepage", "missing": false, "url": "https://cindy.app"}, {"content_hash": "6de3264f01c7688b2070745164a29947cde63b1b81a65a3135faa7464450b8bb", "fetched_at": "2026-08-29T10:19:41.748868+00:00", "kind": "site_page", "missing": false, "url": "https://cindy.app/pricing"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:06:36.776058+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:06:36.776058+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:06:36.776058+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T02:38:58.137838+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a054b24e9ae205438d99d75de86c75e15f93f428ebcdbe273d52e38940351c54", "fetched_at": "2026-08-28T04:06:36.776058+00:00", "kind": "readme", "missing": false, "url": "https://github.com/makecindy/cindy"}, {"content_hash": "6bdd1db3d5582c47915e4c6a0567988458845ec905df436700c27f42345e3783", "fetched_at": "2026-08-29T10:19:41.739556+00:00", "kind": "homepage", "missing": false, "url": "https://cindy.app"}, {"content_hash": "6de3264f01c7688b2070745164a29947cde63b1b81a65a3135faa7464450b8bb", "fetched_at": "2026-08-29T10:19:41.748868+00:00", "kind": "site_page", "missing": false, "url": "https://cindy.app/pricing"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:06:36.776058+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:06:36.776058+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T02:38:58.137838+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a054b24e9ae205438d99d75de86c75e15f93f428ebcdbe273d52e38940351c54", "fetched_at": "2026-08-28T04:06:36.776058+00:00", "kind": "readme", "missing": false, "url": "https://github.com/makecindy/cindy"}, {"content_hash": "6bdd1db3d5582c47915e4c6a0567988458845ec905df436700c27f42345e3783", "fetched_at": "2026-08-29T10:19:41.739556+00:00", "kind": "homepage", "missing": false, "url": "https://cindy.app"}, {"content_hash": "6de3264f01c7688b2070745164a29947cde63b1b81a65a3135faa7464450b8bb", "fetched_at": "2026-08-29T10:19:41.748868+00:00", "kind": "site_page", "missing": false, "url": "https://cindy.app/pricing"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T02:38:58.137838+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a054b24e9ae205438d99d75de86c75e15f93f428ebcdbe273d52e38940351c54", "fetched_at": "2026-08-28T04:06:36.776058+00:00", "kind": "readme", "missing": false, "url": "https://github.com/makecindy/cindy"}, {"content_hash": "6bdd1db3d5582c47915e4c6a0567988458845ec905df436700c27f42345e3783", "fetched_at": "2026-08-29T10:19:41.739556+00:00", "kind": "homepage", "missing": false, "url": "https://cindy.app"}, {"content_hash": "6de3264f01c7688b2070745164a29947cde63b1b81a65a3135faa7464450b8bb", "fetched_at": "2026-08-29T10:19:41.748868+00:00", "kind": "site_page", "missing": false, "url": "https://cindy.app/pricing"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T02:38:58.137838+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a054b24e9ae205438d99d75de86c75e15f93f428ebcdbe273d52e38940351c54", "fetched_at": "2026-08-28T04:06:36.776058+00:00", "kind": "readme", "missing": false, "url": "https://github.com/makecindy/cindy"}, {"content_hash": "6bdd1db3d5582c47915e4c6a0567988458845ec905df436700c27f42345e3783", "fetched_at": "2026-08-29T10:19:41.739556+00:00", "kind": "homepage", "missing": false, "url": "https://cindy.app"}, {"content_hash": "6de3264f01c7688b2070745164a29947cde63b1b81a65a3135faa7464450b8bb", "fetched_at": "2026-08-29T10:19:41.748868+00:00", "kind": "site_page", "missing": false, "url": "https://cindy.app/pricing"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T02:38:58.137838+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a054b24e9ae205438d99d75de86c75e15f93f428ebcdbe273d52e38940351c54", "fetched_at": "2026-08-28T04:06:36.776058+00:00", "kind": "readme", "missing": false, "url": "https://github.com/makecindy/cindy"}, {"content_hash": "6bdd1db3d5582c47915e4c6a0567988458845ec905df436700c27f42345e3783", "fetched_at": "2026-08-29T10:19:41.739556+00:00", "kind": "homepage", "missing": false, "url": "https://cindy.app"}, {"content_hash": "6de3264f01c7688b2070745164a29947cde63b1b81a65a3135faa7464450b8bb", "fetched_at": "2026-08-29T10:19:41.748868+00:00", "kind": "site_page", "missing": false, "url": "https://cindy.app/pricing"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 99, "longevity": 3, "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": 42, "days_push": 7, "days_rel": 8, "gap_med": 0, "n_releases_24m": 30}, "score": 80, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}