{"adoption": {"forks": 88, "observed_at": "2026-08-28T04:03:24.575224+00:00", "stars": 1056}, "canonical_url": "https://ross.abutalabs.com/products/oversteer", "card": {"archived": false, "artifact_type": "application", "description": "Steering Wheel Manager for GNU/Linux", "domain": ["gaming-tools", "hardware", "operating-systems", "simulation"], "enriched": true, "function": ["gui", "configuration-management", "developer-tools"], "health_score": 70, "homepage": null, "language": "Python", "license": "GPL-3.0", "license_family": "copyleft", "maturity": "active", "member_repos": ["berarma/oversteer"], "name": "berarma/oversteer", "platform": ["python"], "pushed_at": "2026-02-26T12:42:49+00:00", "repo": "berarma/oversteer", "stars": 1056, "tags": ["steering-wheel", "force-feedback", "sim-racing", "gnome", "logitech", "thrustmaster", "fanatec", "linux", "desktop"], "topics": ["thrustmaster", "linux", "gnome", "logitech", "steering-wheel", "fanatec"], "urls": [], "use_cases": ["configure force feedback strength on my Logitech G29 in Linux", "change steering wheel rotation range without launching a game", "manage racing wheel settings on Linux desktop", "set up a Thrustmaster wheel with Linux kernel drivers", "switch wheel compatibility modes for Fanatec base", "tune force feedback effects for sim racing on Linux"], "what_it_is": "Oversteer is a GUI application for managing racing steering wheels on GNU/Linux, configuring settings like force feedback, rotation range, and device modes exposed by kernel driver modules. It supports Logitech, Thrustmaster, and Fanatec wheels but relies on external driver modules for full force feedback on many devices.", "when_to_avoid": ["you are on Windows or macOS, as this is Linux-only", "you expect the app itself to add hardware/driver support for unsupported wheels", "you need headless or scripted wheel configuration without a desktop environment"], "when_to_choose": ["you use a supported Logitech, Thrustmaster, or Fanatec wheel on Linux and want a GUI to adjust its settings", "you need to change rotation range, FFB gain, or combine pedals outside of games", "you run a GNOME-based Linux desktop and want wheel management integrated"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/oversteer", "repo": "berarma/oversteer", "role": "main", "score": 54}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:03:24.575224+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T06:58:21.505210+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "ee759285829f766abcd1b48bf842c838aff6eaff1268e600b72dc4816fcca0bc", "fetched_at": "2026-08-28T04:03:24.575224+00:00", "kind": "readme", "missing": false, "url": "https://github.com/berarma/oversteer"}, {"content_hash": "1faa554f880b406a1c6c857e52ce3279a54dd3de8d972f9c849bcb1011195209", "fetched_at": "2026-08-29T13:00:05.670770+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/oversteer/json"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:03:24.575224+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T06:58:21.505210+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "ee759285829f766abcd1b48bf842c838aff6eaff1268e600b72dc4816fcca0bc", "fetched_at": "2026-08-28T04:03:24.575224+00:00", "kind": "readme", "missing": false, "url": "https://github.com/berarma/oversteer"}, {"content_hash": "1faa554f880b406a1c6c857e52ce3279a54dd3de8d972f9c849bcb1011195209", "fetched_at": "2026-08-29T13:00:05.670770+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/oversteer/json"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T06:58:21.505210+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "ee759285829f766abcd1b48bf842c838aff6eaff1268e600b72dc4816fcca0bc", "fetched_at": "2026-08-28T04:03:24.575224+00:00", "kind": "readme", "missing": false, "url": "https://github.com/berarma/oversteer"}, {"content_hash": "1faa554f880b406a1c6c857e52ce3279a54dd3de8d972f9c849bcb1011195209", "fetched_at": "2026-08-29T13:00:05.670770+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/oversteer/json"}], "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:03:24.575224+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:03:24.575224+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:03:24.575224+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T06:58:21.505210+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "ee759285829f766abcd1b48bf842c838aff6eaff1268e600b72dc4816fcca0bc", "fetched_at": "2026-08-28T04:03:24.575224+00:00", "kind": "readme", "missing": false, "url": "https://github.com/berarma/oversteer"}, {"content_hash": "1faa554f880b406a1c6c857e52ce3279a54dd3de8d972f9c849bcb1011195209", "fetched_at": "2026-08-29T13:00:05.670770+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/oversteer/json"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:03:24.575224+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:03:24.575224+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T06:58:21.505210+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "ee759285829f766abcd1b48bf842c838aff6eaff1268e600b72dc4816fcca0bc", "fetched_at": "2026-08-28T04:03:24.575224+00:00", "kind": "readme", "missing": false, "url": "https://github.com/berarma/oversteer"}, {"content_hash": "1faa554f880b406a1c6c857e52ce3279a54dd3de8d972f9c849bcb1011195209", "fetched_at": "2026-08-29T13:00:05.670770+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/oversteer/json"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:03:24.575224+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:03:24.575224+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:03:24.575224+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T06:58:21.505210+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "ee759285829f766abcd1b48bf842c838aff6eaff1268e600b72dc4816fcca0bc", "fetched_at": "2026-08-28T04:03:24.575224+00:00", "kind": "readme", "missing": false, "url": "https://github.com/berarma/oversteer"}, {"content_hash": "1faa554f880b406a1c6c857e52ce3279a54dd3de8d972f9c849bcb1011195209", "fetched_at": "2026-08-29T13:00:05.670770+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/oversteer/json"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:03:24.575224+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:03:24.575224+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T06:58:21.505210+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "ee759285829f766abcd1b48bf842c838aff6eaff1268e600b72dc4816fcca0bc", "fetched_at": "2026-08-28T04:03:24.575224+00:00", "kind": "readme", "missing": false, "url": "https://github.com/berarma/oversteer"}, {"content_hash": "1faa554f880b406a1c6c857e52ce3279a54dd3de8d972f9c849bcb1011195209", "fetched_at": "2026-08-29T13:00:05.670770+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/oversteer/json"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T06:58:21.505210+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "ee759285829f766abcd1b48bf842c838aff6eaff1268e600b72dc4816fcca0bc", "fetched_at": "2026-08-28T04:03:24.575224+00:00", "kind": "readme", "missing": false, "url": "https://github.com/berarma/oversteer"}, {"content_hash": "1faa554f880b406a1c6c857e52ce3279a54dd3de8d972f9c849bcb1011195209", "fetched_at": "2026-08-29T13:00:05.670770+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/oversteer/json"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T06:58:21.505210+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "ee759285829f766abcd1b48bf842c838aff6eaff1268e600b72dc4816fcca0bc", "fetched_at": "2026-08-28T04:03:24.575224+00:00", "kind": "readme", "missing": false, "url": "https://github.com/berarma/oversteer"}, {"content_hash": "1faa554f880b406a1c6c857e52ce3279a54dd3de8d972f9c849bcb1011195209", "fetched_at": "2026-08-29T13:00:05.670770+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/oversteer/json"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T06:58:21.505210+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "ee759285829f766abcd1b48bf842c838aff6eaff1268e600b72dc4816fcca0bc", "fetched_at": "2026-08-28T04:03:24.575224+00:00", "kind": "readme", "missing": false, "url": "https://github.com/berarma/oversteer"}, {"content_hash": "1faa554f880b406a1c6c857e52ce3279a54dd3de8d972f9c849bcb1011195209", "fetched_at": "2026-08-29T13:00:05.670770+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/oversteer/json"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 69, "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": 2752, "days_push": 188, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 54, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}