Desktop automation

It's no longer a tough nut to crack!

automation-sample.js
package.json
await mouse.move(
straightTo(
centerOf(
screen.find(
imageResource('button.png')
)
)
)
);
await mouse.click(Button.LEFT);
await keyboard.type('Hello World!');
}

Everything you needโ€”to do less manual work.

Automate workflows with nut.js so you have more time to focus on the things that matter.

Direct or relative movement, adjustable speed and acceleration - nut.js makes mouse movement a breeze!

mouse-movement.js
keyboard-input.js
clipboard-access.js
screen-content.js
plugins.js
jest-test.js
const {mouse, straightTo, Point} = require('@nut-tree/nut-js');
(async () => {
await mouse.move(
straightTo(
new Point(200, 100)
)
);
await mouse.doubleClick(Button.LEFT);
await mouse.drag(
straightTo(
new Point(600, 340)
)
);
})();

Simplify everyday business tasks.

Because you shouldn't have to spend time on tedious, repetitive work.

Testing

GUI testing shouldn't be hard

With its rich API any tester, regardless of their skill level, can automate and validate GUI applications with ease. End-to-end test smarter, not harder โ€” with nut.js.

Integration

Developers should focus on their own code, not their dependencies.

nut.js is fully pre-built and available for Windows, Linux and macOS. This makes it easy to integrate it with your existing project. No matter whether you have a node or Electron project, no more messing around with compilers, dependencies or build processes so you can fully focus on delivering a great application.

Automation

Don't waste time on repetitive tasks

Time is money, and you can save on both by automating repetitive tasks. Let nut.js do the deeds so you have the time to focus on actual business value. A triple win! Whether it's a game or a business application, nut.js can help you automate almost anything!

Data Extraction

Every software can have an API โ€” with nut.js

Are you struggling with manual data extraction from applications without an API? nut.js can help you with that! Let nut.js extract data and serve it via your own API. This way you can easily integrate legacy applications into your modern workflow.

Loved by businesses and individuals worldwide.

nut.js is intuitive to get started easily, yet so powerful that you can automate even the most complex tasks.

    • nut.js provides a wide range of desktop automation, including mouse manipulation, keyboard input, and screen recognition. Its user-friendly API covers various use cases and helps minimize development efforts. Additionally, with open-source problem-solving and high-quality support, we had no concerns when incorporating it into our product.

      Autoro Inc. logo
      Shiro Fukuda
      CEO, AUTORO Inc.
    • Man, honestly, it's such a nice project! I actually tried it already in a Mac, a Linux and a Windows machine and for all of them ๐Ÿ‘Œ

      Reddit User
    • Are you kidding, this is the real deal. Keep it up!

      Discord User
    • Hey guys, I must say this is a cool library and the getting-started docs is awesome

      Discord User
    • Hey Simon, just joined to say nut.js is awesome, thanks for making it! ๐Ÿ™‚

      Discord User
    • Thank you for your hard work! I use it a lot.

      Reddit User
    • I can't wait to find a good idea to give this a shot. It looks super clean.

      Discord User
    • Very nice! Kind of like webdriver but for the desktop ๐Ÿ˜„

      Discord User
    • Works perfect, and x100 times faster than robotjs! Great job!

      Discord User
    • Great plugin btw. Leaves robotjs in the dust.

      Discord User
    • I've been using nut.js since end of 2021, and it's one of the most amazing tools to automate some of my stuff.

      Discord User

Simple pricing, for everyone.

No matter whether you are a hobbyist, an indie hacker or a company, we have a plan that will work well for you.

Hobbyist

nut.js provides a rich set of functionality completly free of charge.

Free

I'll go with this plan!

Solo

For anyone looking to build a product including nut.js.

40$/month

I'll go with this plan!

Team

Got a team working with nut.js? This is the right plan for you!

130$/month

  • Everything in Solo
  • Private package access for up to three users
I'll go with this plan!
Not what you are looking for? Let's work out a custom plan together!

Frequently asked questions

If you canโ€™t find what youโ€™re looking for, feel free to reach out via mail

    • What's the benefit of sponsoring?

      nut.js is an open source project, so development and maintenance happens in my free time.

      Sponsoring development will give you access to private packages and ensures continuous maintenance.

      Additionally, it allows me to pay for hardware to support additional platforms/architectures or features! The ultimate goal would be to work full-time on nut.js.

      Conclusion: If nut.js is beneficial for you or your company, you should consider sponsoring the project!

    • Do I have to sponsor you to use nut.js?

      No! You don't have to sponsor me to use nut.js (although I'd be really greatful if you'd do it anyways).

      I'm providing optional, ready-to-use plugins for sponsors, but you could also build your own by implementing one of the available plugin interfaces.

    • What private packages are available at the moment?

      At the moment private packages include:

      • An improved image matching plugin that supports Apple Silicon chips, works across all current and future node/Electron versions and provides multi-image matching
      • An OCR plugin which implements the TextFinderInterface to perform on-screen text search
      • An OCR add-on to perform on-screen text extraction via OCR
      • An improved low-level provider package that provides e.g. unicode support for keyboard input
    • Are you available for consulting?

      Yes! If you are stuck with something and want me to help you out, feel free to reach out to me at kontakt@s1h.org

    • I'm desperately trying to solve a problem, could you please help me out for free?

      No, sorry! I'm already providing nut.js for free, which takes up quite a lot of my time.

      If you want me to help you fix a problem, please contact me about consulting.