{"adoption": {"forks": 330, "observed_at": "2026-08-28T04:06:27.852382+00:00", "stars": 2223}, "canonical_url": "https://ross.abutalabs.com/products/go-ios", "card": {"archived": false, "artifact_type": "cli-tool", "description": "This is an operating system independent implementation of iOS device features. You can run UI tests, launch or kill apps, install apps etc. with it. ", "domain": ["mobile-development", "developer-tools", "testing"], "enriched": true, "function": ["workflow-automation", "testing", "developer-tools", "cli", "e2e-testing"], "health_score": 99, "homepage": null, "language": "Go", "license": "MIT", "license_family": "permissive", "maturity": "active", "member_repos": ["danielpaulus/go-ios"], "name": "danielpaulus/go-ios", "platform": ["windows", "cli", "cross-platform"], "pushed_at": "2026-08-14T17:22:37+00:00", "repo": "danielpaulus/go-ios", "stars": 2223, "tags": ["ios", "xcuitest", "appium", "device-automation", "usbmuxd", "webdriveragent", "go", "automation", "linux", "macos"], "topics": ["ios", "linux", "xcuitest", "instruments", "dtx-framework", "dtx", "appium-ios", "hacktoberfest", "golang", "hacktoberfest2022", "hacktoberfest2023"], "urls": [], "use_cases": ["install ipa apps on ios devices from linux or windows", "run xcuitest tests on ios devices in ci without a mac", "launch and kill apps on connected iphones", "pair ios devices programmatically without tapping trust popup", "automate ios device testing at scale for device farms", "reverse engineer apple instruments protocols via debug proxy", "set device thermal states and network emulation on iphone"], "what_it_is": "go-ios is a cross-platform, open-source implementation of iOS device automation features written in Go, usable as a CLI or Go library. It enables installing and launching apps, running XCUITests including WebDriverAgent, pairing devices, and managing developer images on Linux, Windows, and macOS without needing a Mac.", "when_to_avoid": ["you only need simple one-off device management and already have a Mac with Xcode", "you need a full GUI-based device management experience", "you require official Apple-supported tooling with guaranteed compatibility"], "when_to_choose": ["you need to automate iOS devices on Linux or Windows without macOS", "you want a lightweight static binary CLI with JSON output for scripting", "you are building a device farm or CI pipeline for iOS testing", "you need a Go library for talking to iOS devices over usbmuxd"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/go-ios", "repo": "danielpaulus/go-ios", "role": "main", "score": 93}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:06:27.852382+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T02:45:01.600300+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "37764ee99ac5c411c11a51514ac63f95d375bc272003bff8eb7256049a4dc6ab", "fetched_at": "2026-08-28T04:06:27.852382+00:00", "kind": "readme", "missing": false, "url": "https://github.com/danielpaulus/go-ios"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:06:27.852382+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T02:45:01.600300+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "37764ee99ac5c411c11a51514ac63f95d375bc272003bff8eb7256049a4dc6ab", "fetched_at": "2026-08-28T04:06:27.852382+00:00", "kind": "readme", "missing": false, "url": "https://github.com/danielpaulus/go-ios"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T02:45:01.600300+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "37764ee99ac5c411c11a51514ac63f95d375bc272003bff8eb7256049a4dc6ab", "fetched_at": "2026-08-28T04:06:27.852382+00:00", "kind": "readme", "missing": false, "url": "https://github.com/danielpaulus/go-ios"}], "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:06:27.852382+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:06:27.852382+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:06:27.852382+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T02:45:01.600300+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "37764ee99ac5c411c11a51514ac63f95d375bc272003bff8eb7256049a4dc6ab", "fetched_at": "2026-08-28T04:06:27.852382+00:00", "kind": "readme", "missing": false, "url": "https://github.com/danielpaulus/go-ios"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:06:27.852382+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:06:27.852382+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T02:45:01.600300+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "37764ee99ac5c411c11a51514ac63f95d375bc272003bff8eb7256049a4dc6ab", "fetched_at": "2026-08-28T04:06:27.852382+00:00", "kind": "readme", "missing": false, "url": "https://github.com/danielpaulus/go-ios"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:06:27.852382+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:06:27.852382+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:06:27.852382+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T02:45:01.600300+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "37764ee99ac5c411c11a51514ac63f95d375bc272003bff8eb7256049a4dc6ab", "fetched_at": "2026-08-28T04:06:27.852382+00:00", "kind": "readme", "missing": false, "url": "https://github.com/danielpaulus/go-ios"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:06:27.852382+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:06:27.852382+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T02:45:01.600300+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "37764ee99ac5c411c11a51514ac63f95d375bc272003bff8eb7256049a4dc6ab", "fetched_at": "2026-08-28T04:06:27.852382+00:00", "kind": "readme", "missing": false, "url": "https://github.com/danielpaulus/go-ios"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T02:45:01.600300+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "37764ee99ac5c411c11a51514ac63f95d375bc272003bff8eb7256049a4dc6ab", "fetched_at": "2026-08-28T04:06:27.852382+00:00", "kind": "readme", "missing": false, "url": "https://github.com/danielpaulus/go-ios"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T02:45:01.600300+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "37764ee99ac5c411c11a51514ac63f95d375bc272003bff8eb7256049a4dc6ab", "fetched_at": "2026-08-28T04:06:27.852382+00:00", "kind": "readme", "missing": false, "url": "https://github.com/danielpaulus/go-ios"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T02:45:01.600300+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "37764ee99ac5c411c11a51514ac63f95d375bc272003bff8eb7256049a4dc6ab", "fetched_at": "2026-08-28T04:06:27.852382+00:00", "kind": "readme", "missing": false, "url": "https://github.com/danielpaulus/go-ios"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 97, "longevity": 100, "rhythm": 85}, "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": 2654, "days_push": 19, "days_rel": 22, "gap_med": 2.0, "n_releases_24m": 81}, "score": 93, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}