30 open-source projects similar to charmbracelet/bubbles, ranked by how many features they have in common. Compare stars, activity and what each one does to find the best Bubbles alternative.
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
Termui is a Go terminal user interface library used for building interactive dashboards and visual layouts within a command-line environment. It functions as a TUI layout engine, an interactive CLI framework, and a terminal data visualization toolkit. The library provides a set of specialized widgets for rendering charts, plots, gauges, and tables using character-based graphics. It includes a grid-based system for arranging interface elements using relative coordinates and proportional sizing to create structured displays. The toolkit covers a broad range of capabilities including data visua
gocui is a console user interface library for the Go programming language. It provides a toolkit for building interactive terminal applications using a layout engine that organizes overlapping rectangular views and coordinates. The library features a terminal input handler to capture and map keyboard shortcuts and mouse events to specific application actions. It includes an ANSI escape sequence parser to manage text attributes, colors, and cursor positioning. The framework covers interface view management and overlapping window layering, allowing for a structured arrangement of content. Rend
Terminal.Gui is a cross-platform .NET toolkit for building interactive text-based user interfaces. It provides a component-based architecture, a terminal rendering engine, and a declarative layout system to create console applications that run consistently across Windows, macOS, and Linux. The framework distinguishes itself with a comprehensive set of interactive console widgets, including data grids, hex editors, and hierarchical tree components. It supports advanced visual capabilities such as 24-bit True Color, Sixel image support, and a relative-coordinate layout system that adapts to ter
Gum is a toolkit for building interactive, visually styled command-line interfaces and prompts directly within shell scripts. It functions as a library of modular components that allow developers to enhance terminal workflows by adding structured layouts, formatted text, and user-input widgets to standard command-line operations. The project distinguishes itself by providing a suite of specialized utilities for common shell tasks, such as fuzzy-matched selection menus, interactive file system navigation, and confirmation dialogs. It translates high-level styling and layout instructions into t
pterm is a Go terminal UI library used to build rich command-line interfaces. It provides toolsets for terminal data visualization, operation progress tracking, interactive user input, and structured logging. The library distinguishes itself through a comprehensive set of visual tools, including a framework for interactive terminal prompts such as selection menus and confirmation dialogs, and a specialized system for rendering bar charts, heatmaps, and tree structures. It also includes a structured terminal logger capable of producing leveled, colorful system messages. The project covers bro
This framework provides a functional architecture for building interactive command-line applications. It utilizes a reactive runtime engine that synchronizes application state, user input, and visual output through a central event-driven message loop. By employing a unidirectional data flow pattern, the framework separates the definition of application state from the logic that processes updates and the declarative rendering process that transforms state into terminal-ready output. The framework distinguishes itself through its approach to side-effect management and terminal environment adapt
This project is a cross-platform UI framework and native desktop GUI library. It provides a unified set of instructions to render native windows, forms, and layouts across different operating systems by mapping high-level instructions to the native widgets and controls of the host environment. The toolkit includes a vector graphics engine for rendering custom shapes, gradients, and high-density images using brushes and matrices. It also serves as a native dialog provider for system-level operations such as file path selection and message box alerts. The library covers a broad range of GUI co
This project is a Python terminal user interface library and toolkit designed for building interactive command-line applications. It provides a terminal input manager and a widget toolkit for rendering dashboards, menus, and editors within a terminal emulator. The library enables the creation of full-screen terminal interfaces and interactive shells. It distinguishes itself with advanced input handling, including lexer-based syntax highlighting for visual feedback on code structure and support for industry-standard keyboard navigation modes such as Emacs and Vi. The capability surface covers
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
termbox-go is a Go terminal user interface library and cross-platform terminal emulator abstraction. It provides a system for creating text-based graphical interfaces by managing a terminal cell buffer and handling raw input events. The library functions as a terminal cell buffer manager and input handler. It maintains an internal grid of characters and colors, using a back buffer to synchronize updates to the physical screen and translate keyboard and mouse events into structured data. Its capability surface covers text user interface rendering and terminal display management, including cur
Notcurses is a terminal graphics engine and TUI library that renders high-fidelity images, video, and rich Unicode graphics directly in terminal emulators. At its core, it provides a layered framebuffer system that composes overlapping planes with independent depth and opacity, enabling complex visual scenes. The library also includes a terminal input processor for capturing and decoding keyboard and mouse events, a data visualization toolkit for histograms and line plots, a multimedia terminal player for images and video, and a TUI widget framework with reusable interface components. The lib
React hotkeys is a keyboard shortcut manager designed for declaring, scoping, and handling keyboard shortcuts and focus areas in React applications. It allows developers to define declarative shortcuts by binding key combinations or sequences to action names and handler functions, enabling components to respond predictably to user input. The library provides distinct mechanisms for managing how keyboard events interact with the document. It supports scoping hotkeys to specific component subtrees and DOM descendants to match natural browser focus behavior, alongside global key event handling t
Ark is a headless UI component library that delivers accessible, cross-framework primitives with behavior governed by finite state machines. It provides unstyled components that encapsulate logic and accessibility — including full keyboard navigation, focus management, and WAI-ARIA support — while leaving visual styling entirely to the consumer. Components expose scoped data attributes for CSS targeting and use state machines to produce predictable, testable interactive behavior across every state transition. The library distinguishes itself through a state propagation model that distributes
tui-rs is a Rust framework for building rich terminal user interfaces and dashboards. It provides a terminal layout engine for dividing the screen into flexible rectangular regions and a widget library for rendering data in a terminal. The project includes a cross-platform terminal backend abstraction layer to ensure consistent rendering and compatibility across different operating system terminal drivers. The framework covers a wide range of UI components, including data visualization tools such as charts, progress gauges, and sparklines, as well as structural elements like data tables, ite
tview is a library for building interactive text-based user interfaces in Go. It functions as a toolkit for managing event loops, user input, and screen rendering, providing a framework of pre-built widgets and an integrated layout engine for creating command-line applications. The project distinguishes itself through a comprehensive layout system that uses grid and flexbox models to create responsive designs. It also supports UI layer stacking to manage multiple screens and modal overlays. The framework includes a diverse suite of interactive components for data display, such as tables and
Walk is a comprehensive framework for building native Windows desktop applications. It functions as a GUI library and Windows API wrapper, providing a toolkit of native widgets and a declarative layout system for developing high-performance user interfaces. The project is distinguished by its data-binding framework, which uses reflection and string-based property paths to synchronize data sources with interface widgets. It also provides specialized support for high-DPI interface scaling and an optimized native message loop to reduce runtime overhead. The toolkit covers a wide range of capabi
Terminal based dashboard.
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
Advanced ANSI style & color support for your terminal applications
Go (golang) package with 90 configurable terminal spinner/progress indicators.
🎨 Terminal color rendering library, support 8/16 colors, 256 colors, RGB color rendering output, support Print/Sprintf methods, compatible with Windows. GO CLI 控制台颜色渲染工具库,支持16色,256色,RGB色彩渲染输出,使用类似于 Print/Sprintf,兼容并支持 Windows 环境的色彩渲染
This project is a thread-safe terminal progress bar and IO progress wrapper for Go applications. It provides a library for rendering updating progress indicators and activity spinners within a command-line interface to visualize task completion and data stream progress. The library includes a stream-wrapping IO interceptor that automatically tracks and displays the volume of bytes processed during read or write operations. It also supports indeterminate activity spinners for processes where the total work volume is unknown. Users can configure the visual appearance of the progress indicators
Go package to make lightweight ASCII line graph ╭┈╯ in command line apps with no other dependencies.
multi progress bar for Go cli applications
python-prompt-toolkit is a Python library and terminal user interface framework used for building interactive command line interfaces. It provides a toolkit for constructing complex terminal applications with advanced input handling and layout management. The project features a real-time syntax highlighting engine and a rendering system that ensures correct alignment and display of double-width Unicode characters. It includes specialized capabilities for command line autocompletion, providing ghost text suggestions and searchable input history. The framework covers a broad range of interface
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 wit
Spectre.Console is a .NET framework designed for building structured, feature-rich command-line applications. It provides a comprehensive toolkit for managing complex command hierarchies, type-safe argument parsing, and dependency injection, allowing developers to decouple business logic from input processing while maintaining modular application designs. The framework distinguishes itself through a sophisticated terminal user interface toolkit that enables the creation of dynamic, interactive console experiences. It utilizes a markup-based rendering system to display styled text, tables, cha
Clack is a Node.js CLI framework and prompt library designed for building stylized, interactive command-line user interfaces. It provides a toolkit for creating terminal applications that collect structured user input and display formatted information. The library includes a set of interactive terminal UI components, such as validated input fields for text and passwords, searchable selection menus with autocomplete, and grouped options for user choice. It also provides mechanisms for process visualization, including loading spinners, progress bars, and sequential task lists to communicate bac
Vorpal is a Node.js interactive CLI framework and terminal user interface library used to build extensible command-line shells. It functions as an interactive command-line parser that converts string input into executable functions, managing the lifecycle of terminal sessions and command routing. The framework is distinguished by a plugin-based extension architecture that allows external modules to register new commands, shared behaviors, and complete command suites into the core environment. It supports the creation of custom shell environments with specialized namespaces and a system for pe