{"adoption": {"forks": 859, "observed_at": "2026-08-28T04:10:38.841125+00:00", "stars": 9934}, "canonical_url": "https://ross.abutalabs.com/products/ipatool", "card": {"archived": false, "artifact_type": "cli-tool", "description": "Command-line tool that allows searching and downloading app packages (known as ipa files) from the iOS App Store", "domain": ["apple-ecosystem", "security", "reverse-engineering", "developer-tools"], "enriched": true, "function": ["cli", "http-client", "auth", "reverse-engineering", "security"], "health_score": 97, "homepage": null, "language": "Go", "license": "MIT", "license_family": "permissive", "maturity": "active", "member_repos": ["majd/ipatool"], "name": "majd/ipatool", "platform": ["windows", "cli"], "pushed_at": "2026-08-03T08:00:05+00:00", "repo": "majd/ipatool", "stars": 9934, "tags": ["ipa", "app-store", "ios", "apple-id", "app-download", "golang", "command-line", "macos", "linux"], "topics": ["ios", "appstore", "apple", "ipa", "itunes", "cli", "macos", "reverse-engineering", "security", "swift", "tool", "go", "command-line", "command-line-tool", "golang", "golang-library", "research"], "urls": [], "use_cases": ["download ipa files from the app store", "search ios apps from the command line", "purchase a free app license to enable ipa download", "list available versions of an ios app", "download old versions of an app for research", "authenticate an apple id for app store api access"], "what_it_is": "A command-line tool written in Go that lets users search the iOS App Store and download app packages (ipa files) using their Apple ID. It supports authentication, app search, license purchase, and version listing.", "when_to_avoid": ["you want to install apps directly on a device", "you need to download paid apps you have not purchased", "you want a graphical app store client"], "when_to_choose": ["you need to programmatically retrieve ipa packages for security research or analysis", "you want a scriptable, cross-platform cli instead of itunes", "you need to download specific app versions from the app store"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/ipatool", "repo": "majd/ipatool", "role": "main", "score": 88}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:10:38.841125+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-29T17:20:17.809457+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "11a8fc12418b2e83ccc43769ea3d4d3e94b4c0f9129d06cefdbb47bc2511282a", "fetched_at": "2026-08-28T04:10:38.841125+00:00", "kind": "readme", "missing": false, "url": "https://github.com/majd/ipatool"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:10:38.841125+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-29T17:20:17.809457+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "11a8fc12418b2e83ccc43769ea3d4d3e94b4c0f9129d06cefdbb47bc2511282a", "fetched_at": "2026-08-28T04:10:38.841125+00:00", "kind": "readme", "missing": false, "url": "https://github.com/majd/ipatool"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-29T17:20:17.809457+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "11a8fc12418b2e83ccc43769ea3d4d3e94b4c0f9129d06cefdbb47bc2511282a", "fetched_at": "2026-08-28T04:10:38.841125+00:00", "kind": "readme", "missing": false, "url": "https://github.com/majd/ipatool"}], "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:10:38.841125+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:10:38.841125+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:10:38.841125+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-29T17:20:17.809457+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "11a8fc12418b2e83ccc43769ea3d4d3e94b4c0f9129d06cefdbb47bc2511282a", "fetched_at": "2026-08-28T04:10:38.841125+00:00", "kind": "readme", "missing": false, "url": "https://github.com/majd/ipatool"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:10:38.841125+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:10:38.841125+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-29T17:20:17.809457+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "11a8fc12418b2e83ccc43769ea3d4d3e94b4c0f9129d06cefdbb47bc2511282a", "fetched_at": "2026-08-28T04:10:38.841125+00:00", "kind": "readme", "missing": false, "url": "https://github.com/majd/ipatool"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:10:38.841125+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:10:38.841125+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:10:38.841125+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-29T17:20:17.809457+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "11a8fc12418b2e83ccc43769ea3d4d3e94b4c0f9129d06cefdbb47bc2511282a", "fetched_at": "2026-08-28T04:10:38.841125+00:00", "kind": "readme", "missing": false, "url": "https://github.com/majd/ipatool"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:10:38.841125+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:10:38.841125+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-29T17:20:17.809457+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "11a8fc12418b2e83ccc43769ea3d4d3e94b4c0f9129d06cefdbb47bc2511282a", "fetched_at": "2026-08-28T04:10:38.841125+00:00", "kind": "readme", "missing": false, "url": "https://github.com/majd/ipatool"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-29T17:20:17.809457+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "11a8fc12418b2e83ccc43769ea3d4d3e94b4c0f9129d06cefdbb47bc2511282a", "fetched_at": "2026-08-28T04:10:38.841125+00:00", "kind": "readme", "missing": false, "url": "https://github.com/majd/ipatool"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-29T17:20:17.809457+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "11a8fc12418b2e83ccc43769ea3d4d3e94b4c0f9129d06cefdbb47bc2511282a", "fetched_at": "2026-08-28T04:10:38.841125+00:00", "kind": "readme", "missing": false, "url": "https://github.com/majd/ipatool"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-29T17:20:17.809457+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "11a8fc12418b2e83ccc43769ea3d4d3e94b4c0f9129d06cefdbb47bc2511282a", "fetched_at": "2026-08-28T04:10:38.841125+00:00", "kind": "readme", "missing": false, "url": "https://github.com/majd/ipatool"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 95, "longevity": 100, "rhythm": 72}, "computed_at": "2026-09-02T17:46:02.011165+00:00", "flags": [], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 1929, "days_push": 30, "days_rel": 30, "gap_med": 119, "n_releases_24m": 6}, "score": 88, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}