{"adoption": {"forks": 105, "observed_at": "2026-08-28T04:05:03.406398+00:00", "stars": 1558}, "canonical_url": "https://ross.abutalabs.com/products/chops", "card": {"archived": false, "artifact_type": "application", "description": "Your AI agent skills, finally organized. A macOS app to browse, edit, and manage skills across Claude Code, Cursor, Codex, Windsurf, and Amp.", "domain": ["developer-tools", "operating-systems"], "enriched": true, "function": ["developer-tools", "editor", "file-system", "search-engine"], "health_score": 99, "homepage": "https://chops.md", "language": "Swift", "license": "NOASSERTION", "license_family": "other", "maturity": "active", "member_repos": ["Shpigford/chops"], "name": "Shpigford/chops", "platform": [], "pushed_at": "2026-08-23T19:53:58+00:00", "repo": "Shpigford/chops", "stars": 1558, "tags": ["ai-skills", "agent-management", "swiftui", "claude-code", "cursor", "codex", "windsurf", "amp", "skills-registry", "dotfiles", "ai-agents", "macos", "desktop"], "topics": ["ai", "macos", "skills", "swiftui", "agents"], "urls": [], "use_cases": ["manage claude code skills from a gui", "edit cursor agent files without digging through dotfiles", "browse and install skills from the skills.sh registry", "organize ai agent skills into collections across multiple coding tools", "search all my agent skills and agents by content", "create new skill boilerplate for codex or windsurf", "sync and manage skills on remote servers running openclaw or hermes"], "what_it_is": "Chops is a free, open-source macOS app for discovering, browsing, editing, and organizing AI coding agent skills and agents across tools like Claude Code, Cursor, Codex, Windsurf, Copilot, Aider, and Amp. It scans each tool's skill/agent directories, offers a built-in editor with frontmatter parsing, full-text search, collections, real-time file watching, and installation from the skills.sh registry.", "when_to_avoid": ["you are on Linux or Windows - it is macOS-only (requires macOS 15+)", "you only use a single agent tool and are comfortable editing files directly", "you need programmatic or CLI-based skill management rather than a GUI app"], "when_to_choose": ["you use multiple AI coding agents (Claude Code, Cursor, Codex, Windsurf, Amp) and want one place to manage their skills and agents", "you want a native macOS GUI instead of manually editing dotfiles", "you need to discover and install community skills from a registry", "you want real-time editing with frontmatter-aware tooling"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/chops", "repo": "Shpigford/chops", "role": "main", "score": 82}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:05:03.406398+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T04:29:53.001979+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "8a4d8a1a1bec2476656b1d42197137bf06366b6bd88491b6559415f3431c86d8", "fetched_at": "2026-08-28T04:05:03.406398+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Shpigford/chops"}, {"content_hash": "13cbdccc1797d4cb953ab8df90b19387004bcebc41f969017e797d1c93f163d2", "fetched_at": "2026-08-29T11:29:41.912602+00:00", "kind": "homepage", "missing": false, "url": "https://chops.md"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:05:03.406398+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T04:29:53.001979+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "8a4d8a1a1bec2476656b1d42197137bf06366b6bd88491b6559415f3431c86d8", "fetched_at": "2026-08-28T04:05:03.406398+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Shpigford/chops"}, {"content_hash": "13cbdccc1797d4cb953ab8df90b19387004bcebc41f969017e797d1c93f163d2", "fetched_at": "2026-08-29T11:29:41.912602+00:00", "kind": "homepage", "missing": false, "url": "https://chops.md"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T04:29:53.001979+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "8a4d8a1a1bec2476656b1d42197137bf06366b6bd88491b6559415f3431c86d8", "fetched_at": "2026-08-28T04:05:03.406398+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Shpigford/chops"}, {"content_hash": "13cbdccc1797d4cb953ab8df90b19387004bcebc41f969017e797d1c93f163d2", "fetched_at": "2026-08-29T11:29:41.912602+00:00", "kind": "homepage", "missing": false, "url": "https://chops.md"}], "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:05:03.406398+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:05:03.406398+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:05:03.406398+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T04:29:53.001979+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "8a4d8a1a1bec2476656b1d42197137bf06366b6bd88491b6559415f3431c86d8", "fetched_at": "2026-08-28T04:05:03.406398+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Shpigford/chops"}, {"content_hash": "13cbdccc1797d4cb953ab8df90b19387004bcebc41f969017e797d1c93f163d2", "fetched_at": "2026-08-29T11:29:41.912602+00:00", "kind": "homepage", "missing": false, "url": "https://chops.md"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:05:03.406398+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:05:03.406398+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T04:29:53.001979+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "8a4d8a1a1bec2476656b1d42197137bf06366b6bd88491b6559415f3431c86d8", "fetched_at": "2026-08-28T04:05:03.406398+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Shpigford/chops"}, {"content_hash": "13cbdccc1797d4cb953ab8df90b19387004bcebc41f969017e797d1c93f163d2", "fetched_at": "2026-08-29T11:29:41.912602+00:00", "kind": "homepage", "missing": false, "url": "https://chops.md"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:05:03.406398+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:05:03.406398+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:05:03.406398+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T04:29:53.001979+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "8a4d8a1a1bec2476656b1d42197137bf06366b6bd88491b6559415f3431c86d8", "fetched_at": "2026-08-28T04:05:03.406398+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Shpigford/chops"}, {"content_hash": "13cbdccc1797d4cb953ab8df90b19387004bcebc41f969017e797d1c93f163d2", "fetched_at": "2026-08-29T11:29:41.912602+00:00", "kind": "homepage", "missing": false, "url": "https://chops.md"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:05:03.406398+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:05:03.406398+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T04:29:53.001979+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "8a4d8a1a1bec2476656b1d42197137bf06366b6bd88491b6559415f3431c86d8", "fetched_at": "2026-08-28T04:05:03.406398+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Shpigford/chops"}, {"content_hash": "13cbdccc1797d4cb953ab8df90b19387004bcebc41f969017e797d1c93f163d2", "fetched_at": "2026-08-29T11:29:41.912602+00:00", "kind": "homepage", "missing": false, "url": "https://chops.md"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T04:29:53.001979+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "8a4d8a1a1bec2476656b1d42197137bf06366b6bd88491b6559415f3431c86d8", "fetched_at": "2026-08-28T04:05:03.406398+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Shpigford/chops"}, {"content_hash": "13cbdccc1797d4cb953ab8df90b19387004bcebc41f969017e797d1c93f163d2", "fetched_at": "2026-08-29T11:29:41.912602+00:00", "kind": "homepage", "missing": false, "url": "https://chops.md"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T04:29:53.001979+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "8a4d8a1a1bec2476656b1d42197137bf06366b6bd88491b6559415f3431c86d8", "fetched_at": "2026-08-28T04:05:03.406398+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Shpigford/chops"}, {"content_hash": "13cbdccc1797d4cb953ab8df90b19387004bcebc41f969017e797d1c93f163d2", "fetched_at": "2026-08-29T11:29:41.912602+00:00", "kind": "homepage", "missing": false, "url": "https://chops.md"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T04:29:53.001979+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "8a4d8a1a1bec2476656b1d42197137bf06366b6bd88491b6559415f3431c86d8", "fetched_at": "2026-08-28T04:05:03.406398+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Shpigford/chops"}, {"content_hash": "13cbdccc1797d4cb953ab8df90b19387004bcebc41f969017e797d1c93f163d2", "fetched_at": "2026-08-29T11:29:41.912602+00:00", "kind": "homepage", "missing": false, "url": "https://chops.md"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 99, "longevity": 12, "rhythm": 99}, "computed_at": "2026-09-03T02:20:16.233290+00:00", "flags": ["young", "no_license"], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 168, "days_push": 10, "days_rel": 10, "gap_med": 0.5, "n_releases_24m": 19}, "score": 82, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}