// the find
octalmage/robotjs
Node.js Desktop Automation.
RobotJS is a native Node.js addon for desktop automation — moving the mouse, sending keystrokes, reading pixels, and doing basic image matching on screen captures. It's for people building cross-platform automation tools, test harnesses, or bots that need to drive the OS directly rather than through a browser.
Ships prebuilt Node-API binaries for Linux/macOS/Windows on x64 and arm64, so most users skip the node-gyp toolchain entirely. The image/color search API (findImage, findColor, countColor, etc.) is a genuinely useful feature that's hard to get right in pure JS and rarely found in competing libraries. macOS permission handling (getAccessibilityPermission, requestScreenCapturePermission) is handled explicitly instead of just failing silently when the OS blocks you.
Still pre-1.0 after years of existence, and the README says the API can change at any time — a real risk if you depend on it in production. No global hotkey support, and the maintainer is upfront that it may never come, so you'll need a second library if that's a requirement. It's a native C addon wrapping low-level OS APIs (X11, Win32, Carbon/Quartz), so Electron version bumps and Node ABI changes are a recurring source of rebuild pain. PNG support on macOS/Linux source builds is opt-in and requires libpng + pkg-config, an easy thing to miss until an image load silently fails.