A C++20 library for building rich, interactive terminal user interfaces with minimal code.
TermOx is a C++20 library for creating rich, interactive terminal user interfaces (TUIs) with minimal code. It solves the problem of building complex, styled terminal applications by providing a modern, event-driven framework with a comprehensive widget library. The library enables developers to design terminal-based interfaces with features like flexible layouts, input handling, and full color support.
C++ developers building terminal-based applications, tools, or dashboards who need a modern, efficient TUI framework. It's ideal for those creating interactive CLI tools, system monitors, or any application requiring a rich terminal interface.
Developers choose TermOx for its modern C++20 design, minimal code requirements, and comprehensive feature set including rich styling, event-driven architecture, and a built-in widget library. It offers a lightweight yet powerful alternative to other TUI libraries, with a focus on simplicity and performance.
C++20 Terminal User Interface (TUI) Library.
Leverages C++20 features like structured bindings and lambdas for concise code, as shown in the counter example with clean signal/slot connections.
Supports full RGB, HSL, and XTerm 256 colors with text traits like bold and underline, enabling visually appealing terminal interfaces as demonstrated in the gallery images.
Provides clean handling of keyboard, mouse, and timer events, making interactive applications straightforward to implement with minimal boilerplate code.
Includes core widgets like labels, buttons, and text inputs, plus layout widgets for dynamic UI arrangement, reducing the need for custom implementations.
Version 2 is a complete rewrite with little API commonality to version 1, requiring significant migration effort for existing users, as noted in the README.
Relies on external libraries like Signals Light, zzz, and Escape, which, while auto-fetched by CMake, add overhead and potential versioning issues.
Rendering and input handling depend on terminal capabilities, which vary across platforms, potentially leading to unpredictable behavior in cross-platform deployments.
:computer: C++ Functional Terminal User Interface. :heart:
Lightweight C++ command line option parser
CLI11 is a command line parser for C++11 and beyond that provides a rich feature set with a simple and intuitive interface.
ImTui: Immediate Mode Text-based User Interface C++ Library
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.