{"adoption": {"forks": 112, "observed_at": "2026-09-03T02:15:13.267762+00:00", "stars": 1162}, "canonical_url": "https://ross.abutalabs.com/products/openlinkhub", "card": {"archived": false, "artifact_type": "application", "description": "Open source interface for iCUE LINK Hub and other Corsair AIOs, Hubs for Linux. Manage RGB lighting, fan speeds, system metrics, as well as keyboards, mice, headsets via a web dashboard.", "domain": ["hardware", "operating-systems", "self-hosted", "developer-tools"], "enriched": true, "function": ["monitoring", "configuration-management", "developer-tools"], "health_score": 100, "homepage": "https://openlinkhub.dev", "language": "Go", "license": "GPL-3.0", "license_family": "copyleft", "maturity": "active", "member_repos": ["jurkovic-nikola/OpenLinkHub"], "name": "jurkovic-nikola/OpenLinkHub", "platform": ["self-hosted", "go"], "pushed_at": "2026-09-02T19:16:27+00:00", "repo": "jurkovic-nikola/OpenLinkHub", "stars": 1162, "tags": ["corsair", "rgb-lighting", "fan-control", "aio-cooler", "icue-link", "web-dashboard", "peripherals", "systemd-service", "rest-api", "openrgb", "linux", "web-server"], "topics": ["corsair", "fan-controller", "lcd-controller", "lcd-screens", "liquid-cooling", "rgb-controller", "corsair-aio", "corsair-linux", "corsair-keyboards", "corsair-psu", "game-controller", "scuf"], "urls": [], "use_cases": ["control corsair aio fan and pump speeds on linux", "manage rgb lighting across corsair devices", "set custom fan curves based on cpu or gpu temperature", "control corsair keyboard and mouse rgb and dpi on linux", "display system stats on lcd screen of aio cooler", "monitor ram temperatures for ddr4/ddr5", "replace iCUE on linux"], "what_it_is": "OpenLinkHub is an open-source Linux application for controlling Corsair iCUE LINK hubs, AIO liquid coolers, RGB lighting, fans, keyboards, mice, headsets, and memory. It runs as a systemd service and exposes a web dashboard at localhost:27003 plus a REST API for all controls.", "when_to_avoid": ["you are on Windows or macOS where official iCUE software exists", "your Corsair device is not on the supported device list", "you need an officially supported, warranty-backed Corsair product"], "when_to_choose": ["you run Linux and own Corsair iCUE LINK hubs, AIOs, or peripherals and want fan/RGB control", "you want a web dashboard and REST API instead of a desktop app", "you need temperature-based fan profiles and RGB effects across multiple devices"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/openlinkhub", "repo": "jurkovic-nikola/OpenLinkHub", "role": "main", "score": 92}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-09-03T02:15:13.267762+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T06:32:13.430806+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d36ac72eb1802dd2a8b5aff354fb96cb0c592770089a7701931506b58b422c70", "fetched_at": "2026-09-03T02:15:13.267762+00:00", "kind": "readme", "missing": false, "url": "https://github.com/jurkovic-nikola/OpenLinkHub"}, {"content_hash": "aa3fabb6312d10603a25e9c0077d519f2ca13a9455bad24781e347e96c34d0cb", "fetched_at": "2026-08-29T12:37:29.388598+00:00", "kind": "homepage", "missing": false, "url": "https://openlinkhub.dev"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-09-03T02:15:13.267762+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T06:32:13.430806+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d36ac72eb1802dd2a8b5aff354fb96cb0c592770089a7701931506b58b422c70", "fetched_at": "2026-09-03T02:15:13.267762+00:00", "kind": "readme", "missing": false, "url": "https://github.com/jurkovic-nikola/OpenLinkHub"}, {"content_hash": "aa3fabb6312d10603a25e9c0077d519f2ca13a9455bad24781e347e96c34d0cb", "fetched_at": "2026-08-29T12:37:29.388598+00:00", "kind": "homepage", "missing": false, "url": "https://openlinkhub.dev"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T06:32:13.430806+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d36ac72eb1802dd2a8b5aff354fb96cb0c592770089a7701931506b58b422c70", "fetched_at": "2026-09-03T02:15:13.267762+00:00", "kind": "readme", "missing": false, "url": "https://github.com/jurkovic-nikola/OpenLinkHub"}, {"content_hash": "aa3fabb6312d10603a25e9c0077d519f2ca13a9455bad24781e347e96c34d0cb", "fetched_at": "2026-08-29T12:37:29.388598+00:00", "kind": "homepage", "missing": false, "url": "https://openlinkhub.dev"}], "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-03T02:15:13.267762+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-09-03T02:15:13.267762+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-09-03T02:15:13.267762+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T06:32:13.430806+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d36ac72eb1802dd2a8b5aff354fb96cb0c592770089a7701931506b58b422c70", "fetched_at": "2026-09-03T02:15:13.267762+00:00", "kind": "readme", "missing": false, "url": "https://github.com/jurkovic-nikola/OpenLinkHub"}, {"content_hash": "aa3fabb6312d10603a25e9c0077d519f2ca13a9455bad24781e347e96c34d0cb", "fetched_at": "2026-08-29T12:37:29.388598+00:00", "kind": "homepage", "missing": false, "url": "https://openlinkhub.dev"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-09-03T02:15:13.267762+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-09-03T02:15:13.267762+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T06:32:13.430806+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d36ac72eb1802dd2a8b5aff354fb96cb0c592770089a7701931506b58b422c70", "fetched_at": "2026-09-03T02:15:13.267762+00:00", "kind": "readme", "missing": false, "url": "https://github.com/jurkovic-nikola/OpenLinkHub"}, {"content_hash": "aa3fabb6312d10603a25e9c0077d519f2ca13a9455bad24781e347e96c34d0cb", "fetched_at": "2026-08-29T12:37:29.388598+00:00", "kind": "homepage", "missing": false, "url": "https://openlinkhub.dev"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-09-03T02:15:13.267762+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-09-03T02:15:13.267762+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-09-03T02:15:13.267762+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T06:32:13.430806+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d36ac72eb1802dd2a8b5aff354fb96cb0c592770089a7701931506b58b422c70", "fetched_at": "2026-09-03T02:15:13.267762+00:00", "kind": "readme", "missing": false, "url": "https://github.com/jurkovic-nikola/OpenLinkHub"}, {"content_hash": "aa3fabb6312d10603a25e9c0077d519f2ca13a9455bad24781e347e96c34d0cb", "fetched_at": "2026-08-29T12:37:29.388598+00:00", "kind": "homepage", "missing": false, "url": "https://openlinkhub.dev"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-09-03T02:15:13.267762+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-09-03T02:15:13.267762+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T06:32:13.430806+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d36ac72eb1802dd2a8b5aff354fb96cb0c592770089a7701931506b58b422c70", "fetched_at": "2026-09-03T02:15:13.267762+00:00", "kind": "readme", "missing": false, "url": "https://github.com/jurkovic-nikola/OpenLinkHub"}, {"content_hash": "aa3fabb6312d10603a25e9c0077d519f2ca13a9455bad24781e347e96c34d0cb", "fetched_at": "2026-08-29T12:37:29.388598+00:00", "kind": "homepage", "missing": false, "url": "https://openlinkhub.dev"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T06:32:13.430806+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d36ac72eb1802dd2a8b5aff354fb96cb0c592770089a7701931506b58b422c70", "fetched_at": "2026-09-03T02:15:13.267762+00:00", "kind": "readme", "missing": false, "url": "https://github.com/jurkovic-nikola/OpenLinkHub"}, {"content_hash": "aa3fabb6312d10603a25e9c0077d519f2ca13a9455bad24781e347e96c34d0cb", "fetched_at": "2026-08-29T12:37:29.388598+00:00", "kind": "homepage", "missing": false, "url": "https://openlinkhub.dev"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T06:32:13.430806+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d36ac72eb1802dd2a8b5aff354fb96cb0c592770089a7701931506b58b422c70", "fetched_at": "2026-09-03T02:15:13.267762+00:00", "kind": "readme", "missing": false, "url": "https://github.com/jurkovic-nikola/OpenLinkHub"}, {"content_hash": "aa3fabb6312d10603a25e9c0077d519f2ca13a9455bad24781e347e96c34d0cb", "fetched_at": "2026-08-29T12:37:29.388598+00:00", "kind": "homepage", "missing": false, "url": "https://openlinkhub.dev"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T06:32:13.430806+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d36ac72eb1802dd2a8b5aff354fb96cb0c592770089a7701931506b58b422c70", "fetched_at": "2026-09-03T02:15:13.267762+00:00", "kind": "readme", "missing": false, "url": "https://github.com/jurkovic-nikola/OpenLinkHub"}, {"content_hash": "aa3fabb6312d10603a25e9c0077d519f2ca13a9455bad24781e347e96c34d0cb", "fetched_at": "2026-08-29T12:37:29.388598+00:00", "kind": "homepage", "missing": false, "url": "https://openlinkhub.dev"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 100, "longevity": 60, "rhythm": 99}, "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": 847, "days_push": 0, "days_rel": 10, "gap_med": 8.0, "n_releases_24m": 51}, "score": 92, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 3, "stale_scrape": false}}