Core concepts

Plugins

Plugins are the meat and bones of nut.js. They provide the actual implementation for all the functions you can use in your code.

Why plugins?

Plugins allow us to keep the core of nut.js focused. It's main purpose is to provide a streamlined API to interact with your system, taking care of all the boilerplate required to make plugins work together nicely.

This has several advantages for both users and developers!

User Experience

From a user's perspective the main goal is to provide an API which gives you access to all the features you need to automate your system in a simple and intuitive way. You should focus on the task you want to automate, not on the technical details of how to do it. Jumping through hoops to get a certain feature to work is not what you want to do.

On the other hand, plugins give you the flexibility to customize your setup to your needs. If one plugin does not fit your needs, you can simply switch to another one. This allows you to replace even the most basic building blocks of nut.js, like the keyboard or mouse implementation, with a custom one that fits your needs.

Developer Experience

From a developer's perspective the main goal is to make plugin development as easy as possible. This allows developers to focus on the actual implementation of the plugin, instead of having to worry about how to integrate it into the core of nut.js.

A plugin implements a certain interface, which is defined by the core of nut.js. It receives a defined set of parameters and returns a defined set of values, with the ability to define additional custom parameters as needed. Plugins then either register themselves, or are registered by the user, so they can be used by the core of the framework via its provider registry.

This enables developers to build their own plugins to extend the functionality of nut.js, without having to wait for a new release of the core framework.

If you are looking for support on how to build your own plugin, feel free to contact us.

Which plugins are available?

Have a look at the plugins page to see which plugins are currently available.

Previous
Screen