Need help with nodejs-dashboard?
Click the “chat” button below for chat support from the developer who created it, or find similar developers for support.

About the developer

3.9K Stars 172 Forks MIT License 242 Commits 15 Opened issues


Telemetry dashboard for node.js apps from the terminal!

Services available


Need anything else?

Contributors list


Telemetry dashboard for node.js apps from the terminal!

Build Status

Determine in realtime what's happening inside your node process from the terminal. No need to instrument code to get the deets. Also splits stderr/stdout to help spot errors sooner.

Install | Setup | Usage | Using with other programs | CLI options | Customizing layouts ---------------|---------------------|-----------------|-----------------|------------------------------------------|----------------------

NOTE: This module isn't designed for production use and should be limited to development environments.


The preferred method is global install.

npm install -g nodejs-dashboard

Local install works also; just use

instead of
to execute.


The dashboard agent needs to be required by your app. There are two ways to do this:

Including via code

From within a

script or other dev entry point simply require the
// dev.index.js

To launch:

nodejs-dashboard node dev.index.js

Including via preload argument

This method utilizes Node's

flag to introduce the
module. In this setup no code modifications are required. This is functionally equivalent to the above example.

To launch:

nodejs-dashboard -- node -r nodejs-dashboard index.js


uses the Braille Unicode character set to show graphs via the node-drawille dependancy. Ensure your terminal program\'s font supports this character set.

Environment variables

uses several environment variables to modify its behavior. These include some required values to prevent mangled output.


Required Source Description
TERM required blessed Terminal value matching terminal program
LANG required blessed Matches encoding of terminal program to display font correctly
FORCE_COLOR optional chalk Used to force color output by the subprocess



to see a list of keybindings. Use arrow keys to change the layout.

You may want to add an npm script to to your

to launch your app using nodejs-dashboard using one of the options above. Example:
"scripts": {
  "dev": "nodejs-dashboard -- node -r nodejs-dashboard index.js"

Passing arguments

If your app requires additional arguments you'll need to use the

flag to separate them from
options. For example:

nodejs-dashboard --port=8002 -- node -m=false --bar=true index.js

Launching your app with something other than

Most CLI interfaces provide a mechanism for launching other tools. If you're looking to use something like nodemon or babel checkout the exec options provided by the CLI.

% nodemon --exec "nodejs-dashboard babel-node" src/index.js

Docker and Docker Compose support

can run inside a container if that container has a TTY allocated to it. The Docker documentation shows how to run a container with an interactive terminal session. Additional the Docker Compose documentation indicates that
docker-compose run
defaults to allocating a TTY and
docker-compose up
defaults to not allocating one.

CLI options


nodejs-dashboard [options] -- [node] [script] [arguments]
  -h, --help                  output usage information
  -e, --eventdelay [ms]       Minimum threshold for event loop reporting, default 10ms
  -l, --layouts [file]        Path to file or npm module with layouts
  -p, --port [port]           Socket listener port
  -r, --refreshinterval [ms]  Metrics refresh interval, default 1000ms
  -s, --settings [settings]   Overrides layout settings for given view types           
  -V, --version               output the version number

This tunes the minimum threshold for reporting event loop delays. The default value is

. Any delay below this value will be reported at

Optionally supply a custom layout configuration (for details, see Customizing Layouts). Default:



Under the hood the dashboard utilizes SocketIO with a default port of

. If this conflicts with an existing service you can optionally change this value.

Specifies the interval in milliseconds that the metrics should be refreshed. The default is 1000 ms (1 second).


Overrides default or layout settings for views. Option value

should have a format
. For example
--settings log.scrollback=100
will override
setting for any view of
type (nested paths can be used if needed). For details about layouts, see Customizing Layouts).

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.