Let's celebrate July! During July you can use code 'CELEBRATE' to get 50% off on any product!

Discount applies forever, not combinable with other discount!

Core concepts


Your keyboard is is one of the most important input devices of your computer. It allows you to interact with your computer and applications in a very flexible way.

The keyboard module of nut.js allows you to simulate keyboard input. This means you can type text, press keys or key combinations to trigger shortcuts.

Obviously, this is very useful for automating text input, but it also allows you to trigger shortcuts in applications, which is a really fast way to navigate or trigger actions.

This module is also very useful for testing applications, as it allows you to simulate user input.

Overall, the keyboard module is a very powerful tool to interact with your computer and applications. Here are just a few examples of what you could do with the keyboard module:

  • Automated Testing: Simulate user input for automated testing of desktop applications or websites.
  • Accessibility Tools: Develop applications that assist users with disabilities by enabling alternative input methods, such as voice commands translated to keyboard input.
  • Macro Creation: Allow users to create macros that perform complex sequences of actions with a single keypress, enhancing productivity in software like graphic design or video editing.
  • Game Automation: Although ethically questionable, it could be used to automate actions in video games, such as farming resources or executing complex maneuvers.
  • Remote Control Applications: Control applications on a computer from a remote location by sending keyboard input over the network, useful for remote support or presentations.
  • Keyboard Layout Customization: Beyond remapping shortcuts, enable users to create entirely custom keyboard layouts for specialized tasks or ergonomic reasons.
  • Workflow Optimization: Automate repetitive tasks in software development, data entry, or content creation, saving time and reducing the risk of human error.
  • Entertainment and Art: Develop interactive art or music projects that use keyboard input in creative ways, such as playing musical notes or controlling visual effects.
  • Security Testing: Simulate keyboard attacks to test the resilience of systems against keylogging or input-based vulnerabilities in a controlled, ethical manner.


Did you ever connect multiple keyboards to a single machine? If you did, you might have noticed that you can type on both keyboards at the same time and that they'll fight each other over input precedence. The same holds true for nut.js: If you interleave multiple keyboard input sequences, it is not guaranteed that their input sequences are not mixed up.