Skip to content
Please note that GitHub no longer supports Internet Explorer.

We recommend upgrading to the latest Microsoft Edge, Google Chrome, or Firefox.

Learn more
ImTui: Immediate Mode Text-based User Interface
C++ CMake
Branch: master
Clone or download
Latest commit 83b67a9 Jan 12, 2020
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.github/workflows Adding Github Actions (#5) Dec 21, 2019
cmake Add Git info to web pages Dec 19, 2019
examples [hnterm] fix build Jan 1, 2020
include/imtui Hide ImTui::TScreen instance inside implementation Dec 23, 2019
src Fix key repeat rate Dec 23, 2019
third-party Fix display of text input cursor Dec 9, 2019
.gitignore Initial version Dec 8, 2019
.gitmodules Initial version Dec 8, 2019
CMakeLists.txt Update CMake stuff Jan 1, 2020
LICENSE Initial version Dec 8, 2019
README.md Update README.md Jan 12, 2020

README.md

imtui

Actions Status

ImTui is an immediate mode text-based user interface library. Supports 256 ANSI colors and mouse/keyboard input.

imtui-sample

imtui-screenshot-0

imtui-screenshot-1

Live demo in the browser

Eventhough this library is supposed to be used in the terminal, for convenience here is an Emscripten build to demonstrate what it would look like, by simulating a console in the browser:

Note: the demos work best with Chrome

Details

This library is 99.9% based on the popular Dear ImGui library. ImTui simply provides an ncurses interface in order to draw and interact with widgets in the terminal. The entire Dear ImGui interface is available out-of-the-box.

For basic usage of ImTui, check one of the available samples:

Note: the current implementation is experimental, so don't expect all things to work.

Building

ImTui depends only on libncurses

Linux and Mac:

git clone https://github.com/ggerganov/imtui --recursive
cd imtui
mkdir build && cd build
cmake ..
make

./bin/imtui-example-ncurses0

Emscripten:

git clone https://github.com/ggerganov/imtui --recursive
cd imtui
mkdir build && cd build
emconfigure cmake ..
make
You can’t perform that action at this time.