Node.js native addon for cross-platform desktop automation, controlling mouse, keyboard, and reading screen pixels.
RobotJS is a Node.js native addon that enables desktop automation by programmatically controlling the mouse, keyboard, and reading screen pixels. It solves the problem of automating repetitive desktop tasks across macOS, Windows, and Linux using JavaScript, providing a cross-platform alternative to tools like AutoHotkey.
Node.js developers who need to automate desktop interactions for testing, scripting, or building automation tools, particularly those transitioning from Windows AutoHotkey scripts to cross-platform solutions.
Developers choose RobotJS because it brings native, high-performance desktop automation to Node.js with a simple API, cross-platform support, and the ability to leverage JavaScript's ecosystem for automation workflows.
Node.js Desktop Automation.
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Works consistently on macOS, Windows, and Linux with a unified API and pre-built binaries for easy installation, as highlighted in the README's installation section.
Built as a C++ addon with Node.js bindings, it enables high-speed mouse and keyboard automation, demonstrated in the sine wave mouse movement example.
Offers straightforward functions like robot.moveMouse() and robot.typeString(), making it easy to script basic automation without complex configuration, as shown in the examples.
Designed to bring AutoHotkey-like capabilities to Node.js, appealing to developers familiar with Windows automation who need cross-platform solutions.
The project is pre-1.0.0, with the README warning that exported functions could change at any time, posing risks for long-term or production projects.
Missing key automation features like image search and screenshot saving, as noted in the progress table (screen at 85%) and FAQ, limiting advanced use cases.
Explicit multi-monitor functionality is lacking and works only 'on accident' per the FAQ, making it unreliable for setups with multiple displays.
Building from source on Linux requires Python 2.7, which is outdated and not supported in newer versions, complicating setup for modern development environments.
robotjs is an open-source alternative to the following products: