Skip to content

lazuee/blessed

 
 

blessed

blessed is a curses-like library with a high level terminal interface API for node.js.

blessed

Installation

Install the package:

pnpm add -D @lazuee/blessed

Example

This will render a box with line borders containing the text 'Hello world!', perfectly centered horizontally and vertically.

Note

It is recommend you use either smartCSR or fastCSR as a blessed.screen option.
This will enable CSR when scrolling text in elements or when manipulating lines.

var blessed = require('@lazuee/blessed');

// Create a screen object.
var screen = blessed.screen({
  smartCSR: true
});

screen.title = 'my window title';

// Create a box perfectly centered horizontally and vertically.
var box = blessed.box({
  top: 'center',
  left: 'center',
  width: '50%',
  height: '50%',
  content: 'Hello {bold}world{/bold}!',
  tags: true,
  border: {
    type: 'line'
  },
  style: {
    fg: 'white',
    bg: 'magenta',
    border: {
      fg: '#f0f0f0'
    },
    hover: {
      bg: 'green'
    }
  }
});

// Append our box to the screen.
screen.append(box);

// Add a png icon to the box
var icon = blessed.image({
  parent: box,
  top: 0,
  left: 0,
  type: 'overlay',
  width: 'shrink',
  height: 'shrink',
  file: __dirname + '/my-program-icon.png',
  search: false
});

// If our box is clicked, change the content.
box.on('click', function(data) {
  box.setContent('{center}Some different {red-fg}content{/red-fg}.{/center}');
  screen.render();
});

// If box is focused, handle `enter`/`return` and give us some more content.
box.key('enter', function(ch, key) {
  box.setContent('{right}Even different {black-fg}content{/black-fg}.{/right}\n');
  box.setLine(1, 'bar');
  box.insertLine(1, 'foo');
  screen.render();
});

// Quit on Escape, q, or Control-C.
screen.key(['escape', 'q', 'C-c'], function(ch, key) {
  return process.exit(0);
});

// Focus our element.
box.focus();

// Render the screen.
screen.render();

For more example, check the test/ directory.

Documentation

See the Documentation tab in the Wiki for references.

License

This project is licensed under the MIT License - see the LICENSE.md file for details

Copyright © 2013-2025 Christopher Jeffrey lazuee

About

A high-level terminal interface library for node.js.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • JavaScript 99.9%
  • Shell 0.1%