{"adoption": {"forks": 38, "observed_at": "2026-09-01T02:13:57.859837+00:00", "stars": 1066}, "canonical_url": "https://ross.abutalabs.com/products/tophat", "card": {"archived": false, "artifact_type": "application", "description": "Easily install and test mobile applications with a single click.", "domain": ["mobile-development", "developer-tools", "testing"], "enriched": true, "function": ["developer-tools", "deployment", "testing", "cli", "gui"], "health_score": 100, "homepage": null, "language": "Swift", "license": "MIT", "license_family": "permissive", "maturity": "active", "member_repos": ["Shopify/tophat"], "name": "Shopify/tophat", "platform": [], "pushed_at": "2026-08-31T20:53:30+00:00", "repo": "Shopify/tophat", "stars": 1066, "tags": ["mobile-app-testing", "ci-artifacts", "xcode", "swiftui", "artifact-providers", "device-management", "automation", "macos", "ios", "android", "swift"], "topics": ["android", "ios", "productivity", "swift", "swiftui", "xcode"], "urls": [], "use_cases": ["install CI-built mobile app builds on devices without cloning repos", "let contributors test pull requests on simulators or devices", "quickly launch the latest build of frequently used apps", "manage and pin multiple test devices", "integrate custom build and caching systems via extensions"], "what_it_is": "Tophat is a macOS desktop application by Shopify for installing and testing mobile applications on iOS and Android devices with a single click. It fetches builds from CI artifact providers via URLs, Quick Launch, or the tophatctl CLI, and is extensible through the TophatKit SDK.", "when_to_avoid": ["you only develop web or desktop applications", "you have no CI pipeline producing app artifacts", "you need automated UI testing rather than app installation"], "when_to_choose": ["your team builds mobile apps with CI and wants one-click installs", "you want testers to try PR builds without local builds", "you need a launcher for frequently tested app builds on iOS or Android"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/tophat", "repo": "Shopify/tophat", "role": "main", "score": 86}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-09-01T02:13:57.859837+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T06:55:13.799303+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "40ac1ed5044130c8cea46e45bf9be80f5df2fe6992262aa95ea92e7dba8029d9", "fetched_at": "2026-09-01T02:13:57.859837+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Shopify/tophat"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-09-01T02:13:57.859837+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T06:55:13.799303+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "40ac1ed5044130c8cea46e45bf9be80f5df2fe6992262aa95ea92e7dba8029d9", "fetched_at": "2026-09-01T02:13:57.859837+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Shopify/tophat"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T06:55:13.799303+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "40ac1ed5044130c8cea46e45bf9be80f5df2fe6992262aa95ea92e7dba8029d9", "fetched_at": "2026-09-01T02:13:57.859837+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Shopify/tophat"}], "taxonomy_version": 1}, "health_score": {"inputs": ["days_since_push", "days_since_release", "archived"], "kind": "computed", "method": "health_v1"}, "homepage": {"kind": "observed", "observed_at": "2026-09-01T02:13:57.859837+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-09-01T02:13:57.859837+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-09-01T02:13:57.859837+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T06:55:13.799303+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "40ac1ed5044130c8cea46e45bf9be80f5df2fe6992262aa95ea92e7dba8029d9", "fetched_at": "2026-09-01T02:13:57.859837+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Shopify/tophat"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-09-01T02:13:57.859837+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-09-01T02:13:57.859837+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T06:55:13.799303+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "40ac1ed5044130c8cea46e45bf9be80f5df2fe6992262aa95ea92e7dba8029d9", "fetched_at": "2026-09-01T02:13:57.859837+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Shopify/tophat"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-09-01T02:13:57.859837+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-09-01T02:13:57.859837+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-09-01T02:13:57.859837+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T06:55:13.799303+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "40ac1ed5044130c8cea46e45bf9be80f5df2fe6992262aa95ea92e7dba8029d9", "fetched_at": "2026-09-01T02:13:57.859837+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Shopify/tophat"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-09-01T02:13:57.859837+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-09-01T02:13:57.859837+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T06:55:13.799303+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "40ac1ed5044130c8cea46e45bf9be80f5df2fe6992262aa95ea92e7dba8029d9", "fetched_at": "2026-09-01T02:13:57.859837+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Shopify/tophat"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T06:55:13.799303+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "40ac1ed5044130c8cea46e45bf9be80f5df2fe6992262aa95ea92e7dba8029d9", "fetched_at": "2026-09-01T02:13:57.859837+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Shopify/tophat"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T06:55:13.799303+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "40ac1ed5044130c8cea46e45bf9be80f5df2fe6992262aa95ea92e7dba8029d9", "fetched_at": "2026-09-01T02:13:57.859837+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Shopify/tophat"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T06:55:13.799303+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "40ac1ed5044130c8cea46e45bf9be80f5df2fe6992262aa95ea92e7dba8029d9", "fetched_at": "2026-09-01T02:13:57.859837+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Shopify/tophat"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 100, "longevity": 53, "rhythm": 88}, "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": 747, "days_push": 2, "days_rel": 2, "gap_med": 38, "n_releases_24m": 16}, "score": 86, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 5, "stale_scrape": false}}