{"adoption": {"forks": 354, "observed_at": "2026-08-28T04:05:45.065303+00:00", "stars": 1857}, "canonical_url": "https://ross.abutalabs.com/products/jnativehook", "card": {"archived": false, "artifact_type": "library", "description": "Global keyboard and mouse listeners for Java.", "domain": ["desktop-applications", "cross-platform"], "enriched": true, "function": ["gui", "developer-tools"], "health_score": 20, "homepage": null, "language": "Java", "license": "NOASSERTION", "license_family": "other", "maturity": "active", "member_repos": ["kwhat/jnativehook"], "name": "kwhat/jnativehook", "platform": ["jvm", "cross-platform", "windows"], "pushed_at": "2024-09-03T21:31:34+00:00", "repo": "kwhat/jnativehook", "stars": 1857, "tags": ["global-hotkeys", "keyboard-listeners", "mouse-listeners", "jni", "native-hooks", "input-events", "automation", "macos", "linux"], "topics": ["mouse-listeners", "native-events", "jnativehook", "java", "c", "keyboard-listeners", "global-hotkeys", "jni", "global-events"], "urls": [], "use_cases": ["implement global hotkeys in a Java application", "listen to keyboard and mouse events system-wide from Java", "build an input logger or macro recorder in Java", "capture mouse motion and wheel events outside the app window", "post synthetic native input events to the operating system"], "what_it_is": "JNativeHook is a Java library providing global keyboard and mouse event listeners via JNI-based native system hooks. It enables applications to capture system-wide input events and post native events back to the OS, which is impossible with pure Java.", "when_to_avoid": ["you only need input events within your own Java window", "you need Wayland support (the library targets X11 on Linux)", "LGPL licensing is incompatible with your distribution model"], "when_to_choose": ["you need system-wide input capture in a cross-platform Java app", "pure Java AWT/Swing listeners cannot see events outside your window", "you want a mature LGPL library with Maven Central distribution"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/jnativehook", "repo": "kwhat/jnativehook", "role": "main", "score": 23}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:05:45.065303+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T03:16:36.926248+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "ec3d8479fb44e59c41eaa7d8e2c239a602797f9e851dc57efebbaef67a0142f8", "fetched_at": "2026-08-28T04:05:45.065303+00:00", "kind": "readme", "missing": false, "url": "https://github.com/kwhat/jnativehook"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:05:45.065303+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T03:16:36.926248+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "ec3d8479fb44e59c41eaa7d8e2c239a602797f9e851dc57efebbaef67a0142f8", "fetched_at": "2026-08-28T04:05:45.065303+00:00", "kind": "readme", "missing": false, "url": "https://github.com/kwhat/jnativehook"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T03:16:36.926248+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "ec3d8479fb44e59c41eaa7d8e2c239a602797f9e851dc57efebbaef67a0142f8", "fetched_at": "2026-08-28T04:05:45.065303+00:00", "kind": "readme", "missing": false, "url": "https://github.com/kwhat/jnativehook"}], "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:45.065303+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:05:45.065303+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:05:45.065303+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T03:16:36.926248+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "ec3d8479fb44e59c41eaa7d8e2c239a602797f9e851dc57efebbaef67a0142f8", "fetched_at": "2026-08-28T04:05:45.065303+00:00", "kind": "readme", "missing": false, "url": "https://github.com/kwhat/jnativehook"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:05:45.065303+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:05:45.065303+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T03:16:36.926248+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "ec3d8479fb44e59c41eaa7d8e2c239a602797f9e851dc57efebbaef67a0142f8", "fetched_at": "2026-08-28T04:05:45.065303+00:00", "kind": "readme", "missing": false, "url": "https://github.com/kwhat/jnativehook"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:05:45.065303+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:05:45.065303+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:05:45.065303+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T03:16:36.926248+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "ec3d8479fb44e59c41eaa7d8e2c239a602797f9e851dc57efebbaef67a0142f8", "fetched_at": "2026-08-28T04:05:45.065303+00:00", "kind": "readme", "missing": false, "url": "https://github.com/kwhat/jnativehook"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:05:45.065303+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:05:45.065303+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T03:16:36.926248+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "ec3d8479fb44e59c41eaa7d8e2c239a602797f9e851dc57efebbaef67a0142f8", "fetched_at": "2026-08-28T04:05:45.065303+00:00", "kind": "readme", "missing": false, "url": "https://github.com/kwhat/jnativehook"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T03:16:36.926248+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "ec3d8479fb44e59c41eaa7d8e2c239a602797f9e851dc57efebbaef67a0142f8", "fetched_at": "2026-08-28T04:05:45.065303+00:00", "kind": "readme", "missing": false, "url": "https://github.com/kwhat/jnativehook"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T03:16:36.926248+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "ec3d8479fb44e59c41eaa7d8e2c239a602797f9e851dc57efebbaef67a0142f8", "fetched_at": "2026-08-28T04:05:45.065303+00:00", "kind": "readme", "missing": false, "url": "https://github.com/kwhat/jnativehook"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T03:16:36.926248+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "ec3d8479fb44e59c41eaa7d8e2c239a602797f9e851dc57efebbaef67a0142f8", "fetched_at": "2026-08-28T04:05:45.065303+00:00", "kind": "readme", "missing": false, "url": "https://github.com/kwhat/jnativehook"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 0, "longevity": 100, "rhythm": 8}, "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": 4720, "days_push": 729, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 23, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}