Repolode
ArthurSonzogni

ArthurSonzogni/FTXUI

A header-based C++ library for building terminal user interfaces with a functional, component-driven style, with no external dependencies.

Stars
10,829
Forks
628
Open issues
34
Last commit
10 hours ago

What is it?

FTXUI is a C++ library for building terminal user interfaces. It lets developers describe layouts as a tree of elements combined with functions such as hbox, vbox, and gridbox, and it renders them to the terminal. Interactive widgets such as buttons, menus, inputs, sliders, checkboxes, and dropdowns are provided as components that respond to keyboard, mouse, and resize events.

The library is organized into three modules: screen for low-level rendering of colors and characters, dom for layout and styling, and component for user interaction and the main event loop. It supports UTF-8 and fullwidth characters, colors, text decorations, canvas drawing with braille or block characters, and animations. It has no dependencies and can be consumed through CMake FetchContent, Bazel, Meson, vcpkg, Conan, or as an amalgamated single-header build, and it supports C++20 modules. Cross-platform targets include Linux and macOS, WebAssembly, and Windows.

Key features

  • 01Functional, component-based API for composing layouts and interactive widgets
  • 02Keyboard and mouse navigation with built-in widgets such as menus, inputs, and sliders
  • 03Flexible layout with hbox, vbox, gridbox, and flexbox
  • 04Canvas drawing using braille, block, or simple characters
  • 05UTF-8 and fullwidth character support, with no external dependencies

Use cases

  • Building interactive command-line tools with menus, forms, or dashboards
  • Writing terminal games or animated text-mode visualizations
  • Creating system monitors or log viewers that adapt to terminal size

Quick start

  1. 1

    Add FTXUI to your C++ project with CMake FetchContent, the preferred method in the README

  2. 2

    Include the header <ftxui/ftxui.hpp> and link the CMake target ftxui::ftxui

Things to know

  • Linux and macOS are the main targets; Windows support comes from contributors.

Topics

FAQ

What is FTXUI?
A header-based C++ library for building terminal user interfaces with a functional, component-driven style, with no external dependencies. FTXUI is a C++ library for building terminal user interfaces. It lets developers describe layouts as a tree of elements combined with functions such as hbox, vbox, and gridbox, and it renders them to the terminal. Interactive widgets such as buttons, menus, inputs, sliders, checkboxes, and dropdowns are provided as components that respond to keyboard, mouse, and resize events.
Is FTXUI free to use? What license does it have?
FTXUI is open source under the MIT license. Check the license terms before using it in commercial products.
Is FTXUI still maintained?
Actively maintained. The last commit to FTXUI was on Oct 21, 2026.
What can I use FTXUI for?
Building interactive command-line tools with menus, forms, or dashboards Writing terminal games or animated text-mode visualizations Creating system monitors or log viewers that adapt to terminal size
How do I install FTXUI?
Add FTXUI to your C++ project with CMake FetchContent, the preferred method in the README Include the header <ftxui/ftxui.hpp> and link the CMake target ftxui::ftxui
Where can I get FTXUI?
The source code and installation instructions are on GitHub: https://github.com/ArthurSonzogni/FTXUI

Summary generated by AI from the project's README. GitHub stats refresh daily.

Related projects