{"adoption": {"forks": 285, "observed_at": "2026-08-28T04:05:07.211744+00:00", "stars": 1583}, "canonical_url": "https://ross.abutalabs.com/products/node-hid", "card": {"archived": false, "artifact_type": "library", "description": "Access USB & Bluetooth HID devices through Node.js", "domain": ["developer-tools", "hardware", "cross-platform"], "enriched": true, "function": ["sdk"], "health_score": 96, "homepage": null, "language": "C++", "license": "BSD-3-Clause", "license_family": "permissive", "maturity": "active", "member_repos": ["node-hid/node-hid"], "name": "node-hid/node-hid", "platform": ["windows"], "pushed_at": "2026-07-20T09:31:33+00:00", "repo": "node-hid/node-hid", "stars": 1583, "tags": ["usb", "hid", "bluetooth", "native-addon", "prebuilt-binaries", "hardware-access", "nodejs", "electron", "macos", "linux"], "topics": ["usb", "hid", "electron", "nodejs"], "urls": [], "use_cases": ["read input from a custom USB HID device in Node.js", "talk to a game controller or macro pad from an Electron app", "enumerate HID devices connected to the system", "send feature and output reports to a USB peripheral", "build a desktop app that interfaces with Bluetooth HID hardware"], "what_it_is": "node-hid is a Node.js native addon for accessing USB and Bluetooth HID devices such as keyboards, game controllers, and custom peripherals. It provides sync and async APIs and ships prebuilt binaries for common platforms and Electron versions.", "when_to_avoid": ["your device is not HID-class (use libusb bindings instead)", "you need HID access from a browser without native code", "you target platforms without prebuilt binaries and cannot compile native addons"], "when_to_choose": ["you need low-level HID access from Node.js or Electron", "you want cross-platform support with prebuilt binaries", "your device is a standard HID-class USB or Bluetooth device"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/node-hid", "repo": "node-hid/node-hid", "role": "main", "score": 83}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:05:07.211744+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T03:56:01.342802+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "4f75bbc4b02e162905ba8e02e11690f70740bdbfe93cf6899e06ffa4109998ee", "fetched_at": "2026-08-28T04:05:07.211744+00:00", "kind": "readme", "missing": false, "url": "https://github.com/node-hid/node-hid"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:05:07.211744+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T03:56:01.342802+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "4f75bbc4b02e162905ba8e02e11690f70740bdbfe93cf6899e06ffa4109998ee", "fetched_at": "2026-08-28T04:05:07.211744+00:00", "kind": "readme", "missing": false, "url": "https://github.com/node-hid/node-hid"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T03:56:01.342802+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "4f75bbc4b02e162905ba8e02e11690f70740bdbfe93cf6899e06ffa4109998ee", "fetched_at": "2026-08-28T04:05:07.211744+00:00", "kind": "readme", "missing": false, "url": "https://github.com/node-hid/node-hid"}], "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:07.211744+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:05:07.211744+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:05:07.211744+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T03:56:01.342802+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "4f75bbc4b02e162905ba8e02e11690f70740bdbfe93cf6899e06ffa4109998ee", "fetched_at": "2026-08-28T04:05:07.211744+00:00", "kind": "readme", "missing": false, "url": "https://github.com/node-hid/node-hid"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:05:07.211744+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:05:07.211744+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T03:56:01.342802+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "4f75bbc4b02e162905ba8e02e11690f70740bdbfe93cf6899e06ffa4109998ee", "fetched_at": "2026-08-28T04:05:07.211744+00:00", "kind": "readme", "missing": false, "url": "https://github.com/node-hid/node-hid"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:05:07.211744+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:05:07.211744+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:05:07.211744+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T03:56:01.342802+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "4f75bbc4b02e162905ba8e02e11690f70740bdbfe93cf6899e06ffa4109998ee", "fetched_at": "2026-08-28T04:05:07.211744+00:00", "kind": "readme", "missing": false, "url": "https://github.com/node-hid/node-hid"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:05:07.211744+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:05:07.211744+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T03:56:01.342802+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "4f75bbc4b02e162905ba8e02e11690f70740bdbfe93cf6899e06ffa4109998ee", "fetched_at": "2026-08-28T04:05:07.211744+00:00", "kind": "readme", "missing": false, "url": "https://github.com/node-hid/node-hid"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T03:56:01.342802+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "4f75bbc4b02e162905ba8e02e11690f70740bdbfe93cf6899e06ffa4109998ee", "fetched_at": "2026-08-28T04:05:07.211744+00:00", "kind": "readme", "missing": false, "url": "https://github.com/node-hid/node-hid"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T03:56:01.342802+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "4f75bbc4b02e162905ba8e02e11690f70740bdbfe93cf6899e06ffa4109998ee", "fetched_at": "2026-08-28T04:05:07.211744+00:00", "kind": "readme", "missing": false, "url": "https://github.com/node-hid/node-hid"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T03:56:01.342802+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "4f75bbc4b02e162905ba8e02e11690f70740bdbfe93cf6899e06ffa4109998ee", "fetched_at": "2026-08-28T04:05:07.211744+00:00", "kind": "readme", "missing": false, "url": "https://github.com/node-hid/node-hid"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 93, "longevity": 100, "rhythm": 61}, "computed_at": "2026-09-02T17:46:02.011165+00:00", "flags": [], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 5575, "days_push": 44, "days_rel": 46, "gap_med": 194.5, "n_releases_24m": 5}, "score": 83, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}