# nut-tree/nut.js

Native UI testing / controlling with node

Repository: https://github.com/nut-tree/nut.js
Canonical: https://ross.abutalabs.com/products/nutjs
Homepage: https://nutjs.dev
Language: TypeScript
License Family: other
Topics: native, ui, testing, testing-tools, test-automation, node, electron, automation, desktop-automation
Last push: 2024-05-01T19:50:22+00:00

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

## Adoption (not part of the score)
Stars 2847, forks 186 (observed 2026-08-28T04:07:25.528915+00:00)

## What it is
nut.js is a cross-platform native UI automation and testing library for Node.js/TypeScript that controls mouse, keyboard, screen, and windows on Windows, macOS, and Linux. It supports locating UI elements via image matching, text, and native element inspection, and is used for E2E desktop testing and building desktop automation agents.

## Use cases
- automate mouse and keyboard input on desktop apps
- run e2e tests for native desktop applications
- find and click UI elements by image matching
- capture screenshots and read screen content
- manage and focus application windows programmatically
- build AI desktop agents that control the GUI
- automate Electron app testing

## When to choose
- you need cross-platform native desktop automation from Node.js or TypeScript
- you want to E2E test desktop apps including Electron
- you need image-based or OCR-based element location on screen
- you're building desktop automation agents with structured CLI support

## When to avoid
- you only need web browser automation (use Playwright or Selenium directly)
- you require prebuilt npm packages without a paid subscription, since public npm packages were removed and building from source is required
- you need a fully free commercial-ready plugin set - OCR, element inspector, and other plugins are behind paid plans
- you need mobile automation

## Facets
- artifact type: library
- maturity: active
- function: testing, e2e-testing, workflow-automation, ocr, computer-vision, image-processing, developer-tools, cli
- domain: testing, desktop-applications, developer-tools, cross-platform
- platform: cross-platform, windows, cli
- tags: desktop-automation, ui-automation, mouse-control, keyboard-control, image-matching, window-management, screen-capture, electron, typescript, ai-agents, rdp, playwright, selenium, automation, nodejs, macos, linux

## Member repositories
- nut-tree/nut.js (main) score 23

## Provenance
- Observed fields: from GitHub, fetched 2026-08-28T04:07:25.528915+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-30T07:37:01.350529+00:00, confidence not recorded.
  - readme: https://github.com/nut-tree/nut.js (fetched 2026-08-28T04:07:25.528915+00:00, sha ffcbafcbb2ac)
  - homepage: https://nutjs.dev (fetched 2026-08-29T09:53:06.434218+00:00, sha 32f137cf9842)
  - site_page: https://nutjs.dev/docs (fetched 2026-08-29T09:53:06.443507+00:00, sha ce372b121d65)
  - site_page: https://nutjs.dev/docs/getting-started (fetched 2026-08-29T09:53:06.456725+00:00, sha 1d129cb57b71)
  - site_page: https://nutjs.dev/pricing (fetched 2026-08-29T09:53:06.445502+00:00, sha 9ab3258f97f9)
  - site_page: https://nutjs.dev/changelog (fetched 2026-08-29T09:53:06.447537+00:00, sha 67e36ce5b506)
  - site_page: https://nutjs.dev/pricing/core (fetched 2026-08-29T09:53:06.449479+00:00, sha 87f937f09d48)
  - site_page: https://nutjs.dev/pricing/solo (fetched 2026-08-29T09:53:06.451471+00:00, sha 435528fe39ee)
  - site_page: https://nutjs.dev/pricing/team (fetched 2026-08-29T09:53:06.453389+00:00, sha bde49dc739b5)
  - site_page: https://nutjs.dev/consulting (fetched 2026-08-29T09:53:06.455037+00:00, sha 44d677c9ea5e)
- Data as of 2026-08-30T08:39:29.467469+00:00.
