{"adoption": {"forks": 239, "observed_at": "2026-08-28T04:09:38.645393+00:00", "stars": 6182}, "canonical_url": "https://ross.abutalabs.com/products/periphery", "card": {"archived": true, "artifact_type": "cli-tool", "description": "A tool to identify unused code in Swift projects.", "domain": ["developer-tools", "apple-ecosystem"], "enriched": true, "function": ["linter", "developer-tools", "code-review"], "health_score": 10, "homepage": null, "language": "Swift", "license": "MIT", "license_family": "permissive", "maturity": "maintenance", "member_repos": ["peripheryapp/periphery"], "name": "peripheryapp/periphery", "platform": ["cli"], "pushed_at": "2026-08-12T09:22:11+00:00", "repo": "peripheryapp/periphery", "stars": 6182, "tags": ["dead-code-detection", "swift", "xcode", "static-analysis", "ci-integration", "commercial-transition", "command-line", "macos", "linux"], "topics": ["swift", "xcode", "ios", "macos", "apple"], "urls": [], "use_cases": ["find unused code in my swift project", "detect dead code in xcode projects", "identify unused functions and properties in swift", "remove unused imports from ios codebase", "run dead code analysis in ci for swift", "clean up assign-only properties in swift"], "what_it_is": "Periphery is a tool that identifies unused code in Swift projects, detecting dead code such as unused functions, properties, and imports. The original open-source repository is preserved as a historical record after the project transitioned to a commercial product, though it remains forkable.", "when_to_avoid": ["you need active open-source development or official support - the project is now commercial", "you work outside the Swift/Apple ecosystem", "you want guaranteed updates - the repo is preserved as a historical record only"], "when_to_choose": ["you maintain a Swift, iOS, or macOS codebase and want to eliminate dead code", "you need dead-code detection integrated into Xcode or CI pipelines", "you want a forkable open-source version to build upon"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/periphery", "repo": "peripheryapp/periphery", "role": "main", "score": 10}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:09:38.645393+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-29T17:47:24.563810+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "929bdee42e4c08153205fdfa1561d107d9b2090fa55bff0428e5d72a5425d7c4", "fetched_at": "2026-08-28T04:09:38.645393+00:00", "kind": "readme", "missing": false, "url": "https://github.com/peripheryapp/periphery"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:09:38.645393+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-29T17:47:24.563810+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "929bdee42e4c08153205fdfa1561d107d9b2090fa55bff0428e5d72a5425d7c4", "fetched_at": "2026-08-28T04:09:38.645393+00:00", "kind": "readme", "missing": false, "url": "https://github.com/peripheryapp/periphery"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-29T17:47:24.563810+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "929bdee42e4c08153205fdfa1561d107d9b2090fa55bff0428e5d72a5425d7c4", "fetched_at": "2026-08-28T04:09:38.645393+00:00", "kind": "readme", "missing": false, "url": "https://github.com/peripheryapp/periphery"}], "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:38.645393+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:09:38.645393+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:09:38.645393+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-29T17:47:24.563810+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "929bdee42e4c08153205fdfa1561d107d9b2090fa55bff0428e5d72a5425d7c4", "fetched_at": "2026-08-28T04:09:38.645393+00:00", "kind": "readme", "missing": false, "url": "https://github.com/peripheryapp/periphery"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:09:38.645393+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:09:38.645393+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-29T17:47:24.563810+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "929bdee42e4c08153205fdfa1561d107d9b2090fa55bff0428e5d72a5425d7c4", "fetched_at": "2026-08-28T04:09:38.645393+00:00", "kind": "readme", "missing": false, "url": "https://github.com/peripheryapp/periphery"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:09:38.645393+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:09:38.645393+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:09:38.645393+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-29T17:47:24.563810+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "929bdee42e4c08153205fdfa1561d107d9b2090fa55bff0428e5d72a5425d7c4", "fetched_at": "2026-08-28T04:09:38.645393+00:00", "kind": "readme", "missing": false, "url": "https://github.com/peripheryapp/periphery"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:09:38.645393+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:09:38.645393+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-29T17:47:24.563810+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "929bdee42e4c08153205fdfa1561d107d9b2090fa55bff0428e5d72a5425d7c4", "fetched_at": "2026-08-28T04:09:38.645393+00:00", "kind": "readme", "missing": false, "url": "https://github.com/peripheryapp/periphery"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-29T17:47:24.563810+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "929bdee42e4c08153205fdfa1561d107d9b2090fa55bff0428e5d72a5425d7c4", "fetched_at": "2026-08-28T04:09:38.645393+00:00", "kind": "readme", "missing": false, "url": "https://github.com/peripheryapp/periphery"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-29T17:47:24.563810+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "929bdee42e4c08153205fdfa1561d107d9b2090fa55bff0428e5d72a5425d7c4", "fetched_at": "2026-08-28T04:09:38.645393+00:00", "kind": "readme", "missing": false, "url": "https://github.com/peripheryapp/periphery"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-29T17:47:24.563810+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "929bdee42e4c08153205fdfa1561d107d9b2090fa55bff0428e5d72a5425d7c4", "fetched_at": "2026-08-28T04:09:38.645393+00:00", "kind": "readme", "missing": false, "url": "https://github.com/peripheryapp/periphery"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 97, "longevity": 100, "rhythm": 95}, "computed_at": "2026-09-02T17:46:02.011165+00:00", "flags": ["archived"], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 2761, "days_push": 21, "days_rel": 39, "gap_med": 24.0, "n_releases_24m": 19}, "score": 10, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}