A cross-platform Node.js library for native UI automation, testing, and control via keyboard, mouse, and image matching.
nut.js is a cross-platform native UI automation and testing library for Node.js. It allows developers to programmatically control keyboard and mouse inputs, manage windows, and interact with screen elements using image matching, enabling automated testing and desktop task automation. The tool solves the problem of automating repetitive UI interactions across Windows, macOS, and Linux environments.
Developers and QA engineers building automated UI tests, desktop automation scripts, or accessibility tools that require native desktop interaction. It is particularly useful for those working with Electron apps or needing cross-platform automation capabilities.
Developers choose nut.js for its comprehensive native UI control, cross-platform support, and extensible plugin system. Its unique selling point is the combination of low-level input simulation with high-level image and text recognition, allowing for robust automation without relying on application-specific APIs.
Native UI testing / controlling with node
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Supports Windows, macOS, and Linux with consistent APIs for keyboard, mouse, and window control, enabling write-once-run-anywhere desktop automation scripts.
Offers a modular ecosystem with plugins for OCR, template matching, and more, allowing developers to enhance functionality for specific use cases like image-based navigation.
Provides detailed control over mouse movements, keyboard inputs, window management, and screen analysis, as shown in the modules list for clipboard, screen highlighting, and GUI inspection.
Seamlessly works with Jest and Electron, making it ideal for automated end-to-end testing of desktop applications, with custom logging support for debugging.
Pre-built packages are behind a subscription paywall, and the open-source version requires compiling native dependencies from source, which adds significant setup time and expertise.
Explicitly does not support Wayland, forcing users on modern Linux distributions to switch to X11 or use workarounds, limiting compatibility out-of-the-box.
Core capabilities like image matching and text recognition depend on separate provider packages, increasing dependency management and potential versioning issues.
Requires manual configuration of accessibility and screen recording permissions on macOS, and specific system libraries on Linux, which can be error-prone for beginners.