{"adoption": {"forks": 1426, "observed_at": "2026-08-28T04:05:26.072084+00:00", "stars": 1713}, "canonical_url": "https://ross.abutalabs.com/products/loopkit-loop", "card": {"archived": false, "artifact_type": "application", "description": "An automated insulin delivery app for iOS, built on LoopKit", "domain": ["healthcare", "mobile-development"], "enriched": true, "function": ["mobile-framework", "monitoring", "machine-learning"], "health_score": 88, "homepage": "https://loopdocs.org", "language": "Swift", "license": "NOASSERTION", "license_family": "other", "maturity": "experimental", "member_repos": ["LoopKit/Loop"], "name": "LoopKit/Loop", "platform": [], "pushed_at": "2026-08-20T01:30:42+00:00", "repo": "LoopKit/Loop", "stars": 1713, "tags": ["diabetes", "automated-insulin-delivery", "closed-loop", "cgm", "insulin-pump", "apple-watch", "loopkit", "diy-aps", "automation", "ios", "swift", "apple-ecosystem"], "topics": ["diabetes", "diabetes-app", "diabetes-prediction"], "urls": [], "use_cases": ["automatically adjust insulin dosing based on CGM glucose readings", "build a DIY closed-loop artificial pancreas system", "track glucose trends, carbs, and boluses on iPhone and Apple Watch", "predict future blood sugar levels and alert on loop or bolus failures", "monitor pump reservoir and battery status with notifications"], "what_it_is": "Loop is an open-source iOS app template for building an automated insulin delivery (AID) system for people with type 1 diabetes. It integrates continuous glucose monitors and insulin pumps via LoopKit to predict glucose trends and automatically adjust basal insulin delivery.", "when_to_avoid": ["you need a medically approved, regulated therapy device", "you are not comfortable building and maintaining your own medical software", "you use Android or non-compatible pump/CGM hardware", "you cannot accept the risks of highly experimental, non-therapy-approved software"], "when_to_choose": ["you are a technically skilled person with type 1 diabetes wanting a DIY automated insulin delivery system", "you use compatible CGMs and insulin pumps and want closed-loop control on iOS", "you want an open-source, customizable AID app built on LoopKit"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/loopkit-loop", "repo": "LoopKit/Loop", "role": "main", "score": 78}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:05:26.072084+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T03:34:41.126576+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a8ead8a907f7c33c90a17795c8783f8b0eb760ffe1f376b9407d9ee28df3f0bc", "fetched_at": "2026-08-28T04:05:26.072084+00:00", "kind": "readme", "missing": false, "url": "https://github.com/LoopKit/Loop"}, {"content_hash": "44136fa355b3678a1146ad16f7e8649e94fb4fc21fe77e8310c060f61caaff8a", "fetched_at": "2026-08-29T11:10:37.790491+00:00", "kind": "homepage", "missing": false, "url": "https://loopdocs.org"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:05:26.072084+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T03:34:41.126576+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a8ead8a907f7c33c90a17795c8783f8b0eb760ffe1f376b9407d9ee28df3f0bc", "fetched_at": "2026-08-28T04:05:26.072084+00:00", "kind": "readme", "missing": false, "url": "https://github.com/LoopKit/Loop"}, {"content_hash": "44136fa355b3678a1146ad16f7e8649e94fb4fc21fe77e8310c060f61caaff8a", "fetched_at": "2026-08-29T11:10:37.790491+00:00", "kind": "homepage", "missing": false, "url": "https://loopdocs.org"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T03:34:41.126576+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a8ead8a907f7c33c90a17795c8783f8b0eb760ffe1f376b9407d9ee28df3f0bc", "fetched_at": "2026-08-28T04:05:26.072084+00:00", "kind": "readme", "missing": false, "url": "https://github.com/LoopKit/Loop"}, {"content_hash": "44136fa355b3678a1146ad16f7e8649e94fb4fc21fe77e8310c060f61caaff8a", "fetched_at": "2026-08-29T11:10:37.790491+00:00", "kind": "homepage", "missing": false, "url": "https://loopdocs.org"}], "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:05:26.072084+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:05:26.072084+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:05:26.072084+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T03:34:41.126576+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a8ead8a907f7c33c90a17795c8783f8b0eb760ffe1f376b9407d9ee28df3f0bc", "fetched_at": "2026-08-28T04:05:26.072084+00:00", "kind": "readme", "missing": false, "url": "https://github.com/LoopKit/Loop"}, {"content_hash": "44136fa355b3678a1146ad16f7e8649e94fb4fc21fe77e8310c060f61caaff8a", "fetched_at": "2026-08-29T11:10:37.790491+00:00", "kind": "homepage", "missing": false, "url": "https://loopdocs.org"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:05:26.072084+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:05:26.072084+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T03:34:41.126576+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a8ead8a907f7c33c90a17795c8783f8b0eb760ffe1f376b9407d9ee28df3f0bc", "fetched_at": "2026-08-28T04:05:26.072084+00:00", "kind": "readme", "missing": false, "url": "https://github.com/LoopKit/Loop"}, {"content_hash": "44136fa355b3678a1146ad16f7e8649e94fb4fc21fe77e8310c060f61caaff8a", "fetched_at": "2026-08-29T11:10:37.790491+00:00", "kind": "homepage", "missing": false, "url": "https://loopdocs.org"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:05:26.072084+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:05:26.072084+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:05:26.072084+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T03:34:41.126576+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a8ead8a907f7c33c90a17795c8783f8b0eb760ffe1f376b9407d9ee28df3f0bc", "fetched_at": "2026-08-28T04:05:26.072084+00:00", "kind": "readme", "missing": false, "url": "https://github.com/LoopKit/Loop"}, {"content_hash": "44136fa355b3678a1146ad16f7e8649e94fb4fc21fe77e8310c060f61caaff8a", "fetched_at": "2026-08-29T11:10:37.790491+00:00", "kind": "homepage", "missing": false, "url": "https://loopdocs.org"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:05:26.072084+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:05:26.072084+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T03:34:41.126576+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a8ead8a907f7c33c90a17795c8783f8b0eb760ffe1f376b9407d9ee28df3f0bc", "fetched_at": "2026-08-28T04:05:26.072084+00:00", "kind": "readme", "missing": false, "url": "https://github.com/LoopKit/Loop"}, {"content_hash": "44136fa355b3678a1146ad16f7e8649e94fb4fc21fe77e8310c060f61caaff8a", "fetched_at": "2026-08-29T11:10:37.790491+00:00", "kind": "homepage", "missing": false, "url": "https://loopdocs.org"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T03:34:41.126576+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a8ead8a907f7c33c90a17795c8783f8b0eb760ffe1f376b9407d9ee28df3f0bc", "fetched_at": "2026-08-28T04:05:26.072084+00:00", "kind": "readme", "missing": false, "url": "https://github.com/LoopKit/Loop"}, {"content_hash": "44136fa355b3678a1146ad16f7e8649e94fb4fc21fe77e8310c060f61caaff8a", "fetched_at": "2026-08-29T11:10:37.790491+00:00", "kind": "homepage", "missing": false, "url": "https://loopdocs.org"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T03:34:41.126576+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a8ead8a907f7c33c90a17795c8783f8b0eb760ffe1f376b9407d9ee28df3f0bc", "fetched_at": "2026-08-28T04:05:26.072084+00:00", "kind": "readme", "missing": false, "url": "https://github.com/LoopKit/Loop"}, {"content_hash": "44136fa355b3678a1146ad16f7e8649e94fb4fc21fe77e8310c060f61caaff8a", "fetched_at": "2026-08-29T11:10:37.790491+00:00", "kind": "homepage", "missing": false, "url": "https://loopdocs.org"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T03:34:41.126576+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a8ead8a907f7c33c90a17795c8783f8b0eb760ffe1f376b9407d9ee28df3f0bc", "fetched_at": "2026-08-28T04:05:26.072084+00:00", "kind": "readme", "missing": false, "url": "https://github.com/LoopKit/Loop"}, {"content_hash": "44136fa355b3678a1146ad16f7e8649e94fb4fc21fe77e8310c060f61caaff8a", "fetched_at": "2026-08-29T11:10:37.790491+00:00", "kind": "homepage", "missing": false, "url": "https://loopdocs.org"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 98, "longevity": 100, "rhythm": 40}, "computed_at": "2026-09-03T02:20:16.233290+00:00", "flags": ["no_license"], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 3753, "days_push": 14, "days_rel": 693, "gap_med": 2.0, "n_releases_24m": 3}, "score": 78, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}