Bug toolGitHub
Node.js Parameters

The tool for building CLI applications with Node.js

Get startedGithub Node.js ParametersGithub
NPM versionTravis build status

Why Shell.js?

Configure your CLI app

Shell.js is simple to configure. All it takes is a declarative object describing your application. Consider it like the model of your application. It is enriched by plugins such as to route commands and to generate help screens.

Read more

const shell = require("shell")
const app = shell({
  name: "myapp",
  description: "My CLI application",
  options: {
    "config": {
      shortcut: "c",
      description: "Some option"
  commands: {
    "start": {
      description: "Start something"

Parse arguments

For the handling and adding the functionality to the application operate with the `args` object returned with the method `parse`.

Read more

/* ... */
const args = app.parse()

// Run `node myapp -c value start`
{ command: [ 'start' ], config: 'value' }

Organize the code with routing

Load and configure the router in a separate top-level module.

Read more

const shell = require("shell")
const app = shell({
  /* ... */
  commands: { "start":
      /* ... */
      route: './routes/start.js'

/* The project structure:
|-- /node-modules
|-- /routes
    |-- start.js
|-- myapp.js
|-- package.json
|-- package-lock.json

Auto generate help

Shell.js convert the configuration object into a readable documentation string about how to use the CLI application or one of its commands.

Read more

// Run `node myapp help` 
    myapp - My CLI application

    myapp [myapp options] <command>

    -c --config             Some option
    -h --help               Display help information

    start                   Start something
    help                    Display help information

    myapp --help            Show this message
    myapp help              Show this message


The latest version of Shell.js is tested with Node.js 12, 14 and 16. New versions of Node.js shall work as well.

Via npm:

npm install shell

Via git (or downloaded tarball), copy or link the project from a discoverable Node.js directory:

git clone http://github.com/adaltas/node-shell.git


Node.js Parameters is the tool for building CLI applications with Node.js. It is developed and supported by Adaltas.