Sign Up for Free

RunKit +

Try any Node.js package right in your browser

This is a playground to test code. It runs a full Node.js environment and already has all of npm’s 400,000 packages pre-installed, including snips-actions-runner with all npm packages installed. Try it out:

var snipsActionsRunner = require("snips-actions-runner")

This service is provided by RunKit and is not affiliated with npm, Inc or the package authors.

snips-actions-runner v1.0.3

Snips javascript actions runner.


A lightweight javascript actions runner.


The standard way to run Snips actions is to use the snips-skill-server binary that comes pre-installed with the Snips distribution.

The way the skill-server works is that it runs one process per-action.

It means that a node.js instance is spawned and bindings to the hermes library are created for each action.

This is perfectly fine in mosts cases, but when the number of actions to run is huge or if the environment is memory constrained it can become a problem.

This package is an attempt to mitigate these memory issues by running every javascript action using a single process.


npm i -g snips-actions-runner

It is recommended to create a daemon to launch the runner automatically, but this is beyond the scope of this file.


Root folder

By default the runner will look for actions in the /var/lib/snips/skills folder on Linux, or /usr/local/var/snips/skills on OSX.

For other oses, use the -r option to specify the root folder.


Each subfolder will then be scanned, and will be considered as an action if and only if:

  1. It contains a package.json file.
  2. The package.json file has a dependencies or devDependencies field that contains the snips-toolkit package.
  3. The package.json file has a main field.

The file linked with the main field is then launched using a global snips-toolkit package (in the same fashion as the run command).


snips-runner --help

Configuration file

In order to pass custom hermes options, you can use the -c flag to specify the path to a configuration file.

For instance, if you are using an mqtt broker running on a different machine:

    "hermesOptions": {
        "address": "machineAddress:1883"


RunKit is a free, in-browser JavaScript dev environment for prototyping Node.js code, with every npm package installed. Sign up to share your code.
Sign Up for Free