Open-Awesome
CategoriesAlternativesStacksSelf-HostedExplore
Open-Awesome

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

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

imtui

MITC++v1.0.5

Immediate mode text-based user interface C++ library for building interactive terminal applications.

Visit WebsiteGitHubGitHub
3.6k stars155 forks0 contributors

What is imtui?

ImTui is an immediate mode text-based user interface library written in C++. It allows developers to build interactive terminal applications with widgets, colors, and input handling by providing an ncurses-based backend for the Dear ImGui library. It solves the problem of creating modern, responsive UIs in console environments without the complexity of traditional terminal UI toolkits.

Target Audience

C++ developers building terminal applications, tools, or dashboards who want a declarative, immediate mode UI framework similar to Dear ImGui but for text-based interfaces.

Value Proposition

Developers choose ImTui because it brings the productivity and simplicity of Dear ImGui to the terminal, offering a consistent API, cross-platform support, and the ability to create rich, interactive experiences in console applications with minimal code.

Overview

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

Use Cases

Best For

  • Building terminal-based dashboards and monitoring tools
  • Creating interactive configuration editors for CLI applications
  • Developing text-based clients for web services (e.g., Slack, Hacker News)
  • Prototyping UI concepts in a terminal environment
  • Educational projects demonstrating immediate mode GUI principles
  • Adding rich UI elements to existing command-line tools

Not Ideal For

  • Projects requiring graphical user interfaces with modern visuals or web-based frontends
  • Teams needing extensive platform-native widgets or integration with GUI toolkits like Qt or GTK
  • Applications where rapid prototyping in scripting languages like Python or JavaScript is preferred
  • Environments where minimal dependencies and straightforward Windows setup are critical

Pros & Cons

Pros

Familiar Immediate Mode API

Leverages the Dear ImGui API, allowing developers to use declarative UI building with minimal boilerplate, as evidenced by the sample code and philosophy emphasizing simplicity.

Cross-Platform Terminal Support

Uses ncurses for rendering, enabling compatibility across Linux, macOS, and Windows via MSYS2/MinGW/PDCurses, making it suitable for diverse console environments.

Rich Color and Input

Supports 256 ANSI colors and full mouse/keyboard input, enhancing interactivity in terminal apps, as shown in the demos like the Slack client and Hacker News browser.

Browser Demo Capability

Can be compiled to Emscripten for web-based demonstrations, providing an easy way to showcase terminal UIs online, with live demos available on the project site.

Cons

Partial Windows Support

Windows compatibility requires MSYS2, MinGW, and PDCurses, which adds complexity and may deter developers looking for native or straightforward setup.

Dependency on External Libraries

Relies on ncurses and other libraries, increasing build overhead and potential portability issues, especially for lightweight or embedded systems.

Text-Based Limitations

UI elements are constrained to terminal characters and colors, lacking the visual richness of graphical toolkits, which can limit design flexibility for complex interfaces.

Frequently Asked Questions

Quick Stats

Stars3,605
Forks155
Contributors0
Open Issues20
Last commit9 months ago
CreatedSince 2019

Tags

#user-interface#ncurses#text-based-interface#tui#c-plus-plus#ui#dear-imgui#console-application#terminal-ui#cross-platform#text#immediate-mode-gui#ansi-colors

Built With

E
Emscripten
n
ncurses
D
Dear ImGui
C
CMake
C
C++

Links & Resources

Website

Included in

C/C++70.6k
Auto-fetched 3 hours ago

Related Projects

FTXUIFTXUI

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

Stars10,462
Forks607
Last commit2 days ago
cxxoptscxxopts

Lightweight C++ command line option parser

Stars4,794
Forks650
Last commit10 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,376
Forks457
Last commit13 days ago
linenoiselinenoise

A small self-contained alternative to readline and libedit

Stars4,320
Forks736
Last commit2 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