Open-Awesome
CategoriesAlternativesStacksSelf-HostedExplore
Open-Awesome

© 2026 Open-Awesome. Curated for the developer elite.

TermsPrivacyAboutGitHubRSS
  1. Home
  2. C/C++
  3. TermOx

TermOx

MITC++

A C++20 library for building rich, interactive terminal user interfaces with minimal code.

GitHubGitHub
859 stars64 forks0 contributors

What is TermOx?

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.

Target Audience

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.

Value Proposition

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.

Overview

C++20 Terminal User Interface (TUI) Library.

Use Cases

Best For

  • Building interactive CLI tools with complex user interfaces
  • Creating terminal-based dashboards and system monitors
  • Developing educational or demo applications in a terminal environment
  • Prototyping UI concepts directly in the terminal
  • Adding rich, styled interfaces to existing C++ terminal applications
  • Implementing cross-platform terminal applications with consistent behavior

Not Ideal For

  • Projects requiring graphical user interfaces (GUIs) or web-based frontends, as TermOx is strictly terminal-bound.
  • Teams needing a vast ecosystem of pre-built widgets or extensive community plugins, due to its niche C++ focus.
  • Applications that must maintain compatibility with older C++ standards (pre-C++20), since TermOx requires C++20 features.
  • Developers prioritizing API stability over new features, given the complete rewrite from version 1 to 2 with breaking changes.

Pros & Cons

Pros

Modern C++20 Design

Leverages C++20 features like structured bindings and lambdas for concise code, as shown in the counter example with clean signal/slot connections.

Rich Styling Capabilities

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.

Event-Driven Architecture

Provides clean handling of keyboard, mouse, and timer events, making interactive applications straightforward to implement with minimal boilerplate code.

Comprehensive Widget Library

Includes core widgets like labels, buttons, and text inputs, plus layout widgets for dynamic UI arrangement, reducing the need for custom implementations.

Cons

Breaking API Changes

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.

Dependency Complexity

Relies on external libraries like Signals Light, zzz, and Escape, which, while auto-fetched by CMake, add overhead and potential versioning issues.

Terminal Emulator Inconsistencies

Rendering and input handling depend on terminal capabilities, which vary across platforms, potentially leading to unpredictable behavior in cross-platform deployments.

Frequently Asked Questions

Quick Stats

Stars859
Forks64
Contributors0
Open Issues13
Last commit8 months ago
CreatedSince 2016

Tags

#event-driven#user-interface#curses#ncurses#c-plus-plus-20#terminal#tui-library#tui#terminal-styling#xterm#widgets#cross-platform#widget-library#terminal-colors

Built With

c
c++20
C
CMake

Included in

C/C++70.6k
Auto-fetched 1 day ago

Related Projects

FTXUIFTXUI

:computer: C++ Functional Terminal User Interface. :heart:

Stars10,052
Forks582
Last commit4 days ago
cxxoptscxxopts

Lightweight C++ command line option parser

Stars4,757
Forks641
Last commit4 days ago
CLI11CLI11

CLI11 is a command line parser for C++11 and beyond that provides a rich feature set with a simple and intuitive interface.

Stars4,270
Forks442
Last commit6 days ago
imtuiimtui

ImTui: Immediate Mode Text-based User Interface C++ Library

Stars3,569
Forks154
Last commit6 months ago
Community-curated · Updated weekly · 100% open source

Found a gem we're missing?

Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.

Submit a projectStar on GitHub