This page is not available in every language. Missing translations are disabled in the language selector.

Quick reference

Blessed.js Terminal UI Library Cheat Sheet

A quick reference guide for Blessed.js, a high-level terminal interface and TUI library for Node.js: screens, boxes, styling tags, and event keys.

· Published

Blessed is a high-level terminal interface library for Node.js, bringing ncurses-like rich widget capability to modern JavaScript.

Screen Initialization

const blessed = require('blessed');

const screen = blessed.screen({
  smartCSR: true,       // optimize terminal redraw flickering
  autoPadding: true,
  title: 'My Dashboard'
});

screen.append(element);
screen.render();

// Handle global keyboard exits
screen.key(['escape', 'q', 'C-c'], (ch, key) => {
  return process.exit(0);
});

UI Elements (Box Widget)

const box = blessed.box({
  top: 'center',
  left: 'center',
  width: '50%',
  height: '50%',
  content: '{bold}Hello{/bold} Blessed!',
  tags: true, // enable inline formatting tags
  border: {
    type: 'line' // 'line' or 'bg'
  },
  style: {
    fg: 'white',
    bg: 'magenta',
    border: {
      fg: '#f0f0f0'
    },
    hover: {
      bg: 'green'
    }
  }
});

screen.append(box);

Formatting Tags

When tags: true is configured, elements parse inline formatting:

  • {bold}...{/bold}: Bold text
  • {underline}...{/underline}: Underlined text
  • {center}...{/center}: Centered content
  • {right}...{/right}: Right-aligned text
  • {|}: Left/right horizontal alignment separator
  • {#c0ff33-fg}...{/}: Custom hex foreground color

Escape tags in raw strings using blessed.escape(str).

Related topics