What are Machines?

The machine specification is an open standard for Javascript functions. Each machine has a single, clear purpose—whether it be sending an email, translating a text file, or fetching a web page. But whereas traditional functions are supposed to have only a single result, machines are aware of multiple possible outcomes. Machines are self-documenting, quick to implement, and simple to debug.

Machines are published to NPM through the use of machinepacks, or node modules that implement a standardized interface. In other words, when you require() a machinepack, you always know exactly which actions are available, what to provide as input values, and what you're going to get back.

Ready to get started? Check out the list of available machinepacks or learn how to write your own.


Since every machine follows the same conventions as described in the machine spec, documentation can be created automatically simply by parsing their source file. All of the documentation on node-machine.org is rendered via an automated process.


Say goodbye to unforseen consequences. Machines validate their inputs automatically, and by using the concept of exits to control program flow, they give developers an unprecedented degree of error-handling.


No more trial-and-error when integrating a new third-party module into your project: every machine follows the same easy-to-use interface.

Available Machinepacks