# wilix-team/iohook

Node.js global keyboard and mouse listener.

Repository: https://github.com/wilix-team/iohook
Canonical: https://ross.abutalabs.com/products/iohook
Homepage: https://wilix-team.github.io/iohook
Language: C
License: MIT
License Family: permissive
Topics: mouse-listener, electron, macos, keyboard-listeners, linux, windows, nwjs, nodejs, hacktoberfest, iohook
Last push: 2025-02-21T04:04:41+00:00

## Health v2 (maintenance only)
Score: 26/100 (v2, computed 2026-09-03T02:20:16.233290+00:00)
- activity 7, release rhythm 8, longevity 100
- inputs: {"age_days": 3553, "days_push": 558, "days_rel": null, "gap_med": null, "n_releases_24m": 0}
- flags: none
- formula: round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)

## Adoption (not part of the score)
Stars 1263, forks 303 (observed 2026-08-28T04:04:10.473458+00:00)

## What it is
iohook is a Node.js native module providing global keyboard and mouse event listeners via OS-level hooks, built on libuiohook. It works inside and outside JavaScript/TypeScript applications and is fully compatible with Electron and NW.js.

## Use cases
- capture global keyboard shortcuts in an electron app
- listen to mouse clicks outside my node.js window
- build a hotkey trigger for desktop automation
- track user input activity for a time tracker
- record global keypresses in javascript
- detect mouse events system-wide on macos windows and linux

## When to choose
- you need system-wide input capture in a Node.js or Electron desktop app
- you want prebuilt binaries for macOS, Windows, and Linux without Java dependencies

## When to avoid
- you only need keyboard events inside your own window's DOM
- you need a pure-JavaScript solution without native addons
- you target unsupported or very old Node/Electron versions

## Facets
- artifact type: library
- maturity: active
- function: sdk, developer-tools, gui
- domain: desktop-applications, developer-tools, cross-platform
- platform: cross-platform, windows
- tags: keyboard-hooks, mouse-hooks, global-input-listener, native-addon, electron, libuiohook, input-capture, automation, nodejs, macos, linux

## Member repositories
- wilix-team/iohook (main) score 26

## Provenance
- Observed fields: from GitHub, fetched 2026-08-28T04:04:10.473458+00:00.
- Health v2: computed from the inputs above; adoption is never an input.
- Inferred fields (summary, facets, guidance): AI-extracted, prompt v1, taxonomy v1, on 2026-08-30T05:04:12.023928+00:00, confidence not recorded.
  - readme: https://github.com/wilix-team/iohook (fetched 2026-08-28T04:04:10.473458+00:00, sha 14029c44b1b8)
  - homepage: https://wilix-team.github.io/iohook (fetched 2026-08-29T12:16:21.067292+00:00, sha 9455f6e7f061)
- Data as of 2026-08-30T08:39:29.467469+00:00.
