30 open-source projects similar to urwid/urwid, ranked by shared indexed features. Tags may describe platforms or build tools rather than the same primary purpose. Check each project’s use case, license, and deployment requirements before treating it as a replacement.
A Minimal, Header only Modern c++ library for terminal goodies 💄✨
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
FTXUI is a C++ terminal user interface library and cross-platform console framework used for building interactive command line applications. It functions as a declarative terminal layout engine and a component-based UI toolkit that enables the creation of responsive interfaces. The library is distinguished by its terminal graphics and animation capabilities, allowing for the rendering of custom shapes, data plots, and smooth visual transitions using easing functions. It provides a comprehensive set of interactive widgets and a layout system utilizing flexbox and grid containers that adapt to
go-astilectron is a cross-platform GUI framework and binding that enables the creation of desktop software by combining a compiled Go backend with an Electron frontend. It functions as an inter-process communication bridge, utilizing an asynchronous messaging system to exchange JSON events and synchronize state between the Go process and the JavaScript user interface. The project provides a native desktop API wrapper to orchestrate system-level features from the backend. This includes the ability to manage browser windows, construct native application menus, and control system tray icons and
Python TUI framework with mouse support, modular widget system, customizable and rapid terminal markup language and more!
Toga is a cross-platform application framework and native GUI toolkit for Python. It serves as a multi-platform frontend wrapper that allows a single codebase to be deployed across macOS, Windows, Linux, Android, and iOS. The toolkit functions as a native widget UI library, mapping high-level Python interface definitions directly to the host operating system's own visual components. This ensures that applications use native system widgets to match the look and feel of the target environment rather than relying on custom drawing libraries. The framework covers cross-platform development for d
A Rust crate for beautiful, artisanally crafted CLIs, TUIs, and text-based IO.
Python Terminal Toolkit - a Spiced Up Cross Compatible TUI Library 🌶️
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
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
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
Gooey is a framework that transforms command-line programs into graphical applications by automatically generating user interfaces from existing argument definitions. By applying a decorator to a script, the tool maps standard command-line arguments to specialized graphical widgets, allowing users to interact with terminal-based utilities through forms, file pickers, and date selectors. The project distinguishes itself by providing a comprehensive suite of customization and lifecycle management tools that extend beyond simple interface generation. It includes capabilities for input validation
A single-header terminal UI (TUI) library, capable of creating mouse-driven, interactive applications on the command line.
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
gosx-notifier is a Go framework for sending desktop notifications to OSX 10.8 or higher
A thin, practical wrapper around terminal capabilities in Python
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
Flet is a cross-platform framework that enables developers to build interactive desktop, mobile, and web applications using only Python. By utilizing a declarative programming model, it allows for the construction of complex user interfaces through a hierarchical structure of components, removing the need for specialized knowledge of web-specific languages like HTML, CSS, or JavaScript. The framework distinguishes itself by offloading visual rendering to a high-performance graphics engine while maintaining application logic within a centralized server-side environment. This architecture synch
Write desktop and web apps in pure Python
Fyne is a cross-platform graphical user interface toolkit for the Go programming language. It provides a comprehensive framework for building native applications that run on desktop, mobile, and web environments from a single codebase. The toolkit centers on a canvas-based rendering engine and a device-independent layout engine, ensuring that visual elements maintain consistent dimensions and behavior across diverse operating systems and screen densities. The project distinguishes itself through a reactive data-binding system that automatically synchronizes application state with interface co