{"adoption": {"forks": 228, "observed_at": "2026-08-28T04:07:48.706446+00:00", "stars": 3209}, "canonical_url": "https://ross.abutalabs.com/products/bluepill", "card": {"archived": false, "artifact_type": "cli-tool", "description": "Bluepill is a reliable iOS testing tool that runs UI tests using multiple simulators on a single machine", "domain": ["testing", "mobile-development", "developer-tools"], "enriched": true, "function": ["testing", "e2e-testing", "cli"], "health_score": 25, "homepage": null, "language": "Objective-C", "license": "BSD-2-Clause", "license_family": "permissive", "maturity": "maintenance", "member_repos": ["MobileNativeFoundation/bluepill"], "name": "MobileNativeFoundation/bluepill", "platform": ["cli"], "pushed_at": "2024-08-12T17:40:02+00:00", "repo": "MobileNativeFoundation/bluepill", "stars": 3209, "tags": ["ios", "xctest", "xcodebuild", "parallel-testing", "simulators", "junit-reports", "macos"], "topics": ["bluepill", "multiple-simulators", "xcode", "parallel", "ios", "test"], "urls": [], "use_cases": ["run iOS UI tests in parallel on one machine", "speed up a large iOS test suite", "retry flaky simulator test runs automatically", "generate JUnit reports from xcodebuild test runs", "run iOS tests headless to reduce memory usage", "distribute xctest bundles across multiple simulators"], "what_it_is": "Bluepill is a command-line tool that runs iOS UI and unit tests in parallel across multiple simulators on a single macOS machine. Originally built by LinkedIn, it packs tests into groups, retries flaky or crashed simulator runs, and generates JUnit reports.", "when_to_avoid": ["you develop for Android or cross-platform only", "you need a GUI test runner or Xcode-integrated testing", "you don't run tests on macOS with Xcode installed", "you need actively developed tooling with frequent updates"], "when_to_choose": ["you have a large iOS test suite that takes too long with a single simulator", "you use xcodebuild build-for-testing and .xctestrun files", "you need automatic retries when simulators hang or crash", "you want JUnit output for CI integration"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/bluepill", "repo": "MobileNativeFoundation/bluepill", "role": "main", "score": 23}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:07:48.706446+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T07:24:44.656133+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "fc672ecce797611ae88a7f4384d3a3d6763e8fa44be62d9224205786ed6e0ca2", "fetched_at": "2026-08-28T04:07:48.706446+00:00", "kind": "readme", "missing": false, "url": "https://github.com/MobileNativeFoundation/bluepill"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:07:48.706446+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T07:24:44.656133+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "fc672ecce797611ae88a7f4384d3a3d6763e8fa44be62d9224205786ed6e0ca2", "fetched_at": "2026-08-28T04:07:48.706446+00:00", "kind": "readme", "missing": false, "url": "https://github.com/MobileNativeFoundation/bluepill"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T07:24:44.656133+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "fc672ecce797611ae88a7f4384d3a3d6763e8fa44be62d9224205786ed6e0ca2", "fetched_at": "2026-08-28T04:07:48.706446+00:00", "kind": "readme", "missing": false, "url": "https://github.com/MobileNativeFoundation/bluepill"}], "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:07:48.706446+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:07:48.706446+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:07:48.706446+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T07:24:44.656133+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "fc672ecce797611ae88a7f4384d3a3d6763e8fa44be62d9224205786ed6e0ca2", "fetched_at": "2026-08-28T04:07:48.706446+00:00", "kind": "readme", "missing": false, "url": "https://github.com/MobileNativeFoundation/bluepill"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:07:48.706446+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:07:48.706446+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T07:24:44.656133+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "fc672ecce797611ae88a7f4384d3a3d6763e8fa44be62d9224205786ed6e0ca2", "fetched_at": "2026-08-28T04:07:48.706446+00:00", "kind": "readme", "missing": false, "url": "https://github.com/MobileNativeFoundation/bluepill"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:07:48.706446+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:07:48.706446+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:07:48.706446+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T07:24:44.656133+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "fc672ecce797611ae88a7f4384d3a3d6763e8fa44be62d9224205786ed6e0ca2", "fetched_at": "2026-08-28T04:07:48.706446+00:00", "kind": "readme", "missing": false, "url": "https://github.com/MobileNativeFoundation/bluepill"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:07:48.706446+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:07:48.706446+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T07:24:44.656133+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "fc672ecce797611ae88a7f4384d3a3d6763e8fa44be62d9224205786ed6e0ca2", "fetched_at": "2026-08-28T04:07:48.706446+00:00", "kind": "readme", "missing": false, "url": "https://github.com/MobileNativeFoundation/bluepill"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T07:24:44.656133+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "fc672ecce797611ae88a7f4384d3a3d6763e8fa44be62d9224205786ed6e0ca2", "fetched_at": "2026-08-28T04:07:48.706446+00:00", "kind": "readme", "missing": false, "url": "https://github.com/MobileNativeFoundation/bluepill"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T07:24:44.656133+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "fc672ecce797611ae88a7f4384d3a3d6763e8fa44be62d9224205786ed6e0ca2", "fetched_at": "2026-08-28T04:07:48.706446+00:00", "kind": "readme", "missing": false, "url": "https://github.com/MobileNativeFoundation/bluepill"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T07:24:44.656133+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "fc672ecce797611ae88a7f4384d3a3d6763e8fa44be62d9224205786ed6e0ca2", "fetched_at": "2026-08-28T04:07:48.706446+00:00", "kind": "readme", "missing": false, "url": "https://github.com/MobileNativeFoundation/bluepill"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 0, "longevity": 100, "rhythm": 8}, "computed_at": "2026-09-03T02:20:16.233290+00:00", "flags": [], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 3521, "days_push": 751, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 23, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}