API reference

Data Types


nut.js enables you to search for images on your screen.

To represent image data, nut.js provides the Image datatype.

Image Properties

An Image holds all the data required to perform on-screen search.

That is:

  • the image width
  • the image height
  • a buffer storing raw image data
  • the amount of color channels
  • an id


Additionally, it also stores information about the order of color channels. By default, nut.js images are stored using the BGR color mode. This mode was chosen to align with a well known computer vision library.

However, since not every image processing library expects image data in BGR ordering, nut.js images provide methods to convert between BGR and RGB mode.

const bgrImage = new Image(...);

const rgbImage = bgrImage.toRGB();
const rgbImage = new Image(..., ColorMode.RGB);

const bgrImage = rgbImage.toBGR();


When searching for images on your screen, nut.js uses the Region datatype to represent a 2D area on your screen.

A Region holds a left, top, width and height property to represent its size and location, as well as an area() method that calculates the area occupied by a particular Region.


const r = new Region(10, 100, 400, 300);


const regionArea = r.area();


When navigating your screen, nut.js relies on the Point datatype to represent points in 2D space.

A Point is a simple data structure holding an x and y coordinate.


const p = new Point(10, 100);



The RGBA class is used to represent RGBA color information. It is returned from screen.colorAt and can be used to search for pixels of a certain color on screen via screen.find with a pixelWithColor query.


const colorToSearch = new RGBA(255, 0, 255, 255);

const colorLocation = await screen.find(pixelWithColor(colorToSearch));