# chjj/blessed

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/chjj-blessed).**

11,854 stars · 563 forks · JavaScript · NOASSERTION

## Links

- GitHub: https://github.com/chjj/blessed
- awesome-repositories: https://awesome-repositories.com/repository/chjj-blessed.md

## Description

This project is a terminal user interface library for Node.js, designed to facilitate the construction of interactive command-line applications. It provides a comprehensive toolkit of high-level widgets that abstract complex terminal escape codes and rendering logic, allowing developers to build functional interfaces using reusable components.

The framework distinguishes itself by implementing a box-model-based layout engine and a virtual DOM-style reconciliation system. These mechanisms enable responsive design patterns—such as percentage-based sizing and relative positioning—to function within a terminal environment while minimizing screen flickering during redraw cycles. It further supports event-bubbling for keyboard and mouse interactions, ensuring consistent input handling across nested interface hierarchies.

Beyond standard interface construction, the library includes capabilities for rich content display and advanced styling. It supports tag-based markup parsing for text formatting and integrates with external utilities to render images, animations, and video directly within the terminal window. These features allow for the creation of structured data displays, such as tables and logs, alongside interactive elements like hover-triggered tooltips and draggable components.

## Tags

### Development Tools & Productivity

- [Terminal User Interface Frameworks](https://awesome-repositories.com/f/development-tools-productivity/terminal-user-interface-frameworks.md) — Abstracts complex terminal escape codes and rendering logic into reusable widgets for building interactive command-line applications.
- [Terminal Widget Toolkits](https://awesome-repositories.com/f/development-tools-productivity/terminal-widget-toolkits.md) — Offers a collection of high-level components like tables and logs for constructing complex, interactive terminal applications.

### User Interface & Experience

- [Terminal User Interfaces](https://awesome-repositories.com/f/user-interface-experience/terminal-user-interfaces.md) — Provides a comprehensive framework for building interactive, styled, and responsive text-based user interfaces within terminal environments. ([source](https://github.com/chjj/blessed#readme))
- [Responsive Layout Engines](https://awesome-repositories.com/f/user-interface-experience/declarative-layout-engines/responsive-layout-engines.md) — Calculates element dimensions and positions using a box-model-based engine to enable responsive design in text buffers.
- [Event Propagation Systems](https://awesome-repositories.com/f/user-interface-experience/event-propagation-systems.md) — Propagates keyboard and mouse input events through a nested hierarchy of interface components for centralized handling.
- [Input Event Dispatchers](https://awesome-repositories.com/f/user-interface-experience/form-and-input-management/interaction-and-event-handling/event-handling-architectures/input-event-dispatchers.md) — Captures and propagates keyboard and mouse input events through a nested hierarchy of interface components. ([source](https://github.com/chjj/blessed#readme))
- [Responsive Layouts](https://awesome-repositories.com/f/user-interface-experience/responsive-layouts.md) — Implements box-model-based layout engines to support percentage-based sizing and responsive design within terminal windows.
- [Virtual DOM Reconciliation](https://awesome-repositories.com/f/user-interface-experience/virtual-dom-reconciliation.md) — Optimizes terminal rendering by calculating minimal screen updates to prevent flickering during redraw cycles.
- [Element Positioning](https://awesome-repositories.com/f/user-interface-experience/element-positioning.md) — Arranges and sizes interface components using relative offsets and percentage expressions for responsive terminal designs. ([source](https://github.com/chjj/blessed/blob/master/CHANGELOG.md))
- [Input Handling](https://awesome-repositories.com/f/user-interface-experience/form-and-input-management/input-handling.md) — Captures and processes keyboard and mouse input events across nested interface hierarchies for consistent interaction.
- [Layout & Positioning](https://awesome-repositories.com/f/user-interface-experience/layout-positioning.md) — Defines spatial arrangement and dimensions of visual elements using absolute positioning and percentage-based responsive layouts. ([source](https://github.com/chjj/blessed#readme))
- [Interface Layout Utilities](https://awesome-repositories.com/f/user-interface-experience/terminal-user-interfaces/layout-structural-components/interface-layout-utilities.md) — Manages structural layout and alignment of interface elements using coordinates and percentage-based sizing. ([source](https://github.com/chjj/blessed/blob/master/README.md))
- [Terminal Image Renderers](https://awesome-repositories.com/f/user-interface-experience/file-previewers/terminal-image-renderers.md) — Integrates external utilities to render images, animations, and video content directly within the terminal interface.
- [Markup Parsers](https://awesome-repositories.com/f/user-interface-experience/styling-theming-systems/content-styling/styling-markup/markup-parsers.md) — Processes custom text formatting tags into terminal-native styling sequences to allow declarative styling of content.
- [Terminal Styling](https://awesome-repositories.com/f/user-interface-experience/terminal-styling.md) — Applies colors, text attributes, and transparency effects to interface elements using tag-based formatting. ([source](https://github.com/chjj/blessed/blob/master/README.md))
- [Terminal Text Styling](https://awesome-repositories.com/f/user-interface-experience/terminal-text-styling.md) — Manipulates and styles text content using tag-based parsing and character attribute management. ([source](https://github.com/chjj/blessed#readme))
- [Text Formatting Utilities](https://awesome-repositories.com/f/user-interface-experience/text-formatting-utilities.md) — Provides utility functions for parsing tags and managing character attributes to ensure clean and readable terminal output. ([source](https://github.com/chjj/blessed/blob/master/README.md))
- [Interaction Triggers](https://awesome-repositories.com/f/user-interface-experience/interaction-triggers.md) — Configures user-initiated interaction triggers like hover-triggered tooltips and draggable components. ([source](https://github.com/chjj/blessed/blob/master/CHANGELOG.md))

### Web Development

- [Node.js Terminal Frameworks](https://awesome-repositories.com/f/web-development/terminal-layout-engines/node-js-terminal-frameworks.md) — Provides a Node.js-based framework for building responsive terminal interfaces with event-bubbling and web-standard layout patterns.

### Operating Systems & Systems Programming

- [ANSI Escape Sequence Renderers](https://awesome-repositories.com/f/operating-systems-systems-programming/terminal-command-line-environments/terminal-management/output-rendering-engines/ansi-escape-sequence-renderers.md) — Translates high-level widget state into low-level ANSI escape codes to manipulate terminal cursor position and character attributes.
- [Rich Content Renderers](https://awesome-repositories.com/f/operating-systems-systems-programming/terminal-command-line-environments/terminal-interface-systems/terminal-output/rich-content-renderers.md) — Provides rich content rendering capabilities for displaying images and animations within the terminal interface. ([source](https://github.com/chjj/blessed/blob/master/README.md))

### Part of an Awesome List

- [TUI Libraries](https://awesome-repositories.com/f/awesome-lists/devtools/tui-libraries.md) — Node.js terminal interface library.

### Graphics & Multimedia

- [Terminal Graphics Rendering](https://awesome-repositories.com/f/graphics-multimedia/graphics-and-media/terminal-graphics-rendering.md) — Renders images directly within the terminal by integrating external display utilities into standard interface components. ([source](https://github.com/chjj/blessed/blob/master/CHANGELOG.md))
