awesome-repositories.com
Blog
MCP
awesome-repositories.com

Discover the best open-source repositories with AI-powered search.

ExploreCurated searchesOpen-source alternativesSelf-hosted softwareBlogSitemap
ProjectAboutHow we rankPressMCP server
LegalPrivacyTerms
© 2026 Bringes Technology SRL·VAT RO45896025·hello@awesome-repositories.com
·
chjj avatar

chjj/blessed

0
View on GitHub↗
11,854 stars·563 forks·JavaScript·7 views

Blessed

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.

Features

  • Terminal User Interface Frameworks - Abstracts complex terminal escape codes and rendering logic into reusable widgets for building interactive command-line applications.
  • Terminal User Interfaces - Provides a comprehensive framework for building interactive, styled, and responsive text-based user interfaces within terminal environments.
  • Node.js Terminal Frameworks - Provides a Node.js-based framework for building responsive terminal interfaces with event-bubbling and web-standard layout patterns.
  • Terminal Widget Toolkits - Offers a collection of high-level components like tables and logs for constructing complex, interactive terminal applications.
  • ANSI Escape Sequence Renderers - Translates high-level widget state into low-level ANSI escape codes to manipulate terminal cursor position and character attributes.
  • Responsive Layout Engines - Calculates element dimensions and positions using a box-model-based engine to enable responsive design in text buffers.
  • Event Propagation Systems - Propagates keyboard and mouse input events through a nested hierarchy of interface components for centralized handling.
  • Input Event Dispatchers - Captures and propagates keyboard and mouse input events through a nested hierarchy of interface components.
  • Responsive Layouts - Implements box-model-based layout engines to support percentage-based sizing and responsive design within terminal windows.
  • Virtual DOM Reconciliation - Optimizes terminal rendering by calculating minimal screen updates to prevent flickering during redraw cycles.
  • Infrastructure and Automation - Terminal interface library for Node.js.
  • TUI Libraries - Node.js terminal interface library.
  • Element Positioning - Arranges and sizes interface components using relative offsets and percentage expressions for responsive terminal designs.
  • Input Handling - Captures and processes keyboard and mouse input events across nested interface hierarchies for consistent interaction.
  • Layout & Positioning - Defines spatial arrangement and dimensions of visual elements using absolute positioning and percentage-based responsive layouts.
  • Interface Layout Utilities - Manages structural layout and alignment of interface elements using coordinates and percentage-based sizing.
  • Terminal Image Renderers - Integrates external utilities to render images, animations, and video content directly within the terminal interface.
  • Markup Parsers - Processes custom text formatting tags into terminal-native styling sequences to allow declarative styling of content.
  • Terminal Styling - Applies colors, text attributes, and transparency effects to interface elements using tag-based formatting.
  • Terminal Text Styling - Manipulates and styles text content using tag-based parsing and character attribute management.
  • Text Formatting Utilities - Provides utility functions for parsing tags and managing character attributes to ensure clean and readable terminal output.
  • Terminal Graphics Rendering - Renders images directly within the terminal by integrating external display utilities into standard interface components.
  • Rich Content Renderers - Provides rich content rendering capabilities for displaying images and animations within the terminal interface.
  • Interaction Triggers - Configures user-initiated interaction triggers like hover-triggered tooltips and draggable components.

Star history

Star history chart for chjj/blessedStar history chart for chjj/blessed

AI search

Explore more awesome repositories

Describe what you need in plain English — the AI ranks thousands of curated open-source projects by relevance.

Start searching with AI

Frequently asked questions

What does chjj/blessed do?

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.

What are the main features of chjj/blessed?

The main features of chjj/blessed are: Terminal User Interface Frameworks, Terminal User Interfaces, Node.js Terminal Frameworks, Terminal Widget Toolkits, ANSI Escape Sequence Renderers, Responsive Layout Engines, Event Propagation Systems, Input Event Dispatchers.

What are some open-source alternatives to chjj/blessed?

Open-source alternatives to chjj/blessed include: yaronn/blessed-contrib — blessed-contrib is a terminal user interface framework and a Node.js console widget library designed for building… anomalyco/opentui — Opentui is a terminal user interface framework for building interactive command line applications. It provides a… textualize/textual — This project is a framework for building interactive, graphical-style terminal applications. It provides a declarative… charmbracelet/lipgloss — This project is a framework for composing terminal interfaces through declarative styling and a grid-based layout… rivo/tview — tview is a library for building interactive text-based user interfaces in Go. It functions as a toolkit for managing… spectreconsole/spectre.console — Spectre.Console is a .NET framework designed for building structured, feature-rich command-line applications. It…

Open-source alternatives to Blessed

Similar open-source projects, ranked by how many features they share with Blessed.
  • yaronn/blessed-contribyaronn avatar

    yaronn/blessed-contrib

    15,745View on GitHub↗

    blessed-contrib is a terminal user interface framework and a Node.js console widget library designed for building data-driven command line interfaces. It serves as an ASCII data visualization toolkit and a dashboard framework for organizing grid-based layouts and interactive elements within a console. The project provides a collection of reusable terminal components, including a command line image renderer and tools for text-based graphic rendering. It specifically enables the creation of terminal dashboards through a system for positioning multiple widgets across rows and columns and a mecha

    JavaScript
    View on GitHub↗15,745
  • anomalyco/opentuianomalyco avatar

    anomalyco/opentui

    12,131View on GitHub↗

    Opentui is a terminal user interface framework for building interactive command line applications. It provides a component-based system featuring a flexbox layout engine, a virtual node component tree, and a low-level 2D cell array renderer. The project is distinguished by a sophisticated keyboard binding engine that maps complex multi-stroke sequences and chords to named commands using prioritized, reactive layers. It also implements a plugin architecture that allows external modules to inject custom UI components into designated layout slots and extend input logic at runtime. Its capabilit

    TypeScript
    View on GitHub↗12,131
  • textualize/textualTextualize avatar

    Textualize/textual

    36,285View on GitHub↗

    This project is a framework for building interactive, graphical-style terminal applications. It provides a declarative component model that organizes user interfaces into a tree of nested widgets, each managing its own lifecycle, state, and rendering. By subclassing the base application class, developers can construct complex, keyboard-navigable interfaces that run directly within terminal emulators. The framework distinguishes itself through a reactive architecture and a CSS-based layout engine. It uses a reactive attribute system to automatically track state changes and trigger targeted int

    Pythoncliframeworkpython
    View on GitHub↗36,285
  • charmbracelet/lipglosscharmbracelet avatar

    charmbracelet/lipgloss

    10,591View on GitHub↗

    This project is a framework for composing terminal interfaces through declarative styling and a grid-based layout engine. It provides a comprehensive toolkit for building responsive command-line applications by managing ANSI escape sequences, color profiles, and text rendering to ensure consistent visual output across different terminal environments. The library distinguishes itself through its ability to automatically detect terminal capabilities and background themes, allowing it to adjust color schemes and downsample profiles for optimal readability. It utilizes a layered composition model

    Gocligogolang
    View on GitHub↗10,591
  • See all 30 alternatives to Blessed→