explaingit

yaronn/blessed-contrib

15,736JavaScriptAudience · developerComplexity · 2/5Setup · easy

TLDR

blessed-contrib is a Node.js library for building live dashboards that run entirely in a terminal, line charts, world maps, log views, gauges, and more, all drawn with text characters over SSH or locally.

Mindmap

mindmap
  root((blessed-contrib))
    What it does
      Terminal dashboards
      ASCII art widgets
      Works over SSH
    Widgets
      Line and bar charts
      World map
      Gauges and donuts
      Rolling log
    Tech stack
      Node.js
      blessed library
      npm install
    Use cases
      Server monitoring
      Build progress
      CLI status display
Click or tap to explore — scroll the page freely

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

Things people build with this

USE CASE 1

Build a live server metrics dashboard showing CPU, memory, and logs that runs over an SSH connection with no browser required.

USE CASE 2

Create a build or deploy progress monitor with a rolling log panel and a bar chart in the terminal.

USE CASE 3

Add a world map with live data markers to a Node.js CLI tool for visualizing distributed server locations.

USE CASE 4

Display gauges and donut charts in a terminal app to show queue depth and throughput at a glance.

Tech stack

JavaScriptNode.jsnpm

Getting it running

Difficulty · easy Time to first run · 30min

In plain English

blessed-contrib is a JavaScript library for building dashboards that run inside a terminal window, using nothing more than text characters and the colour codes terminals understand. The description is "build dashboards (or any other application) using ascii/ansi art and javascript". It is meant to be friendly to terminals, ssh sessions, and developers, another way of saying you can run a polished-looking dashboard on a remote server over a plain SSH connection, no browser required. It is built on top of blessed, an existing terminal-UI library for Node.js, and it adds higher-level dashboard widgets on top of blessed's basic text and list elements. The widget list in the README includes line charts, bar charts, stacked bar charts, a world map with markers, gauges and stacked gauges, donut charts, an LCD-style number display, rolling logs, pictures, sparklines, tables, trees, and markdown blocks. The usage pattern is consistent across widgets. You require blessed and blessed-contrib, create a screen, build a widget (for example, contrib.line(...) with some style options), append it to the screen, call setData on it, and then call screen.render(). The README also shows binding keys like q or Ctrl-C to exit cleanly. Layouts are optional but useful when arranging multiple widgets into a dashboard grid. You would use it for a live, refreshing status display, server utilisation, log tail, build progress, that runs in a terminal rather than a browser, when you are already working in Node.js. Installation is npm install blessed blessed-contrib on the latest Node.js LTS, and it works on Linux, OS X, and Windows. The full README is longer than what was provided.

Copy-paste prompts

Prompt 1
Using blessed-contrib, build a Node.js terminal dashboard that shows a live-updating line chart of request rate refreshed every second.
Prompt 2
How do I create a two-panel terminal layout in blessed-contrib with a rolling log on one side and a bar chart on the other?
Prompt 3
Show me how to add a world map widget to a blessed-contrib dashboard and plot markers at specific latitude and longitude coordinates.
Prompt 4
How do I use blessed-contrib to display a donut chart showing the percentage breakdown of HTTP status codes in a Node.js app?
Open on GitHub → Explain another repo

← yaronn on gitmyhub — every repo by this author, as a profile.

Verify against the repo before relying on details.