{"adoption": {"forks": 246, "observed_at": "2026-08-28T04:08:10.791039+00:00", "stars": 3574}, "canonical_url": "https://ross.abutalabs.com/products/fengniao", "card": {"archived": false, "artifact_type": "cli-tool", "description": "A command line tool for cleaning unused resources in Xcode.", "domain": ["developer-tools", "mobile-development"], "enriched": true, "function": ["cli", "developer-tools", "file-system"], "health_score": 88, "homepage": null, "language": "Swift", "license": "MIT", "license_family": "permissive", "maturity": "maintenance", "member_repos": ["onevcat/FengNiao"], "name": "onevcat/FengNiao", "platform": ["cli"], "pushed_at": "2026-05-09T06:43:43+00:00", "repo": "onevcat/FengNiao", "stars": 3574, "tags": ["xcode", "unused-resources", "image-cleanup", "ios", "swift", "command-line", "macos", "linux"], "topics": ["command-line-tool", "resources", "slim", "xcode", "images", "cleanup", "swift"], "urls": [], "use_cases": ["find unused images in an Xcode project", "clean up unused assetsets from an iOS app", "slim down an iOS app bundle by removing dead resources", "delete unreferenced pngs and pdfs from a Swift project", "list unused resource files before deleting them"], "what_it_is": "FengNiao is a Swift command-line utility that scans an Xcode project to find and delete unused image and resource files. It searches resource references across source files and can also clean up .pbxproj references.", "when_to_avoid": ["your project is not an Xcode project", "resources are referenced dynamically in ways the tool cannot detect (string-built names, server-driven assets)", "you have no version control or backup, since deletion is irreversible"], "when_to_choose": ["you maintain an Xcode/iOS project with bloated asset catalogs", "you want a simple scriptable cleanup step before releases", "you prefer a lightweight Swift CLI over heavy static analysis tools"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/fengniao", "repo": "onevcat/FengNiao", "role": "main", "score": 77}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:08:10.791039+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-29T18:34:04.282372+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "af7143a1014bc202721b42c791c6f9bffa55b99a836a1c4b3c3ef9d20822a731", "fetched_at": "2026-08-28T04:08:10.791039+00:00", "kind": "readme", "missing": false, "url": "https://github.com/onevcat/FengNiao"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:08:10.791039+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-29T18:34:04.282372+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "af7143a1014bc202721b42c791c6f9bffa55b99a836a1c4b3c3ef9d20822a731", "fetched_at": "2026-08-28T04:08:10.791039+00:00", "kind": "readme", "missing": false, "url": "https://github.com/onevcat/FengNiao"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-29T18:34:04.282372+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "af7143a1014bc202721b42c791c6f9bffa55b99a836a1c4b3c3ef9d20822a731", "fetched_at": "2026-08-28T04:08:10.791039+00:00", "kind": "readme", "missing": false, "url": "https://github.com/onevcat/FengNiao"}], "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:08:10.791039+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:08:10.791039+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:08:10.791039+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-29T18:34:04.282372+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "af7143a1014bc202721b42c791c6f9bffa55b99a836a1c4b3c3ef9d20822a731", "fetched_at": "2026-08-28T04:08:10.791039+00:00", "kind": "readme", "missing": false, "url": "https://github.com/onevcat/FengNiao"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:08:10.791039+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:08:10.791039+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-29T18:34:04.282372+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "af7143a1014bc202721b42c791c6f9bffa55b99a836a1c4b3c3ef9d20822a731", "fetched_at": "2026-08-28T04:08:10.791039+00:00", "kind": "readme", "missing": false, "url": "https://github.com/onevcat/FengNiao"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:08:10.791039+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:08:10.791039+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:08:10.791039+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-29T18:34:04.282372+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "af7143a1014bc202721b42c791c6f9bffa55b99a836a1c4b3c3ef9d20822a731", "fetched_at": "2026-08-28T04:08:10.791039+00:00", "kind": "readme", "missing": false, "url": "https://github.com/onevcat/FengNiao"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:08:10.791039+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:08:10.791039+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-29T18:34:04.282372+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "af7143a1014bc202721b42c791c6f9bffa55b99a836a1c4b3c3ef9d20822a731", "fetched_at": "2026-08-28T04:08:10.791039+00:00", "kind": "readme", "missing": false, "url": "https://github.com/onevcat/FengNiao"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-29T18:34:04.282372+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "af7143a1014bc202721b42c791c6f9bffa55b99a836a1c4b3c3ef9d20822a731", "fetched_at": "2026-08-28T04:08:10.791039+00:00", "kind": "readme", "missing": false, "url": "https://github.com/onevcat/FengNiao"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-29T18:34:04.282372+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "af7143a1014bc202721b42c791c6f9bffa55b99a836a1c4b3c3ef9d20822a731", "fetched_at": "2026-08-28T04:08:10.791039+00:00", "kind": "readme", "missing": false, "url": "https://github.com/onevcat/FengNiao"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-29T18:34:04.282372+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "af7143a1014bc202721b42c791c6f9bffa55b99a836a1c4b3c3ef9d20822a731", "fetched_at": "2026-08-28T04:08:10.791039+00:00", "kind": "readme", "missing": false, "url": "https://github.com/onevcat/FengNiao"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 81, "longevity": 100, "rhythm": 59}, "computed_at": "2026-09-03T02:39:23.370411+00:00", "flags": [], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 3467, "days_push": 116, "days_rel": 116, "gap_med": 96, "n_releases_24m": 4}, "score": 77, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}