node package manager


package.json-based process manager


noreman is a package.json-based process runner for Node. It's extremely experimental at this time, so I can't recommend using it outside of the development environment.


$ npm install -g noreman


Let's say that in development I need to watch and compile CoffeeScript and Sass files, as well as run a web server. In production, I might just need to run a web server. With noreman, I can achieve this with a "processes" section in my package.json:

  "name": "my-npm-module",
  "processes": {
    "development": {
      "coffee": "coffee -o js -cw coffee",
      "sass"  : "sass --watch scss:css",
      "web"   : "bin/web",
    "production": {
      "web": "bin/web"

Now, if I run noreman from the directory my package.json is in, noreman will start the three defined processes, and log their output to standard out, prefixed by a color-coded label for each process:

noreman output

Environment Resolution

If passed an environment name, noreman will use that environment, e.g.:

$ noreman development

If not given an argument, noreman will look for NODE_ENV in the current environment (it will source your .env file first for you) and use that.

If not given an argument, and unable to see NODE_ENV, noreman will default to "development".