Skip to content

FTXUI

A C++ library for building terminal user interfaces with no dependencies.

Stars
10.9k
Forks
628
Licence
MIT
Language
C++
Last update
5 days ago
Type
Library

What it is

FTXUI is a C++ library that lets programmers draw interactive interfaces inside a terminal window, with layouts, colors, borders, buttons and mouse or keyboard input. It uses a functional style where the interface is described as a tree of elements. It is meant for building text-based tools that run in a console rather than in a graphical window.

  • Build a terminal dashboard that shows gauges and bordered boxes
  • Create a menu or form with keyboard and mouse navigation
  • Draw simple animations or canvas graphics inside a console app
  • Package a text-based C++ tool as a single amalgamated source file

Great for

  • C++ developers who want interactive text-based tools in the terminal
  • Developers who want a library with no external dependencies
  • Projects that need layouts like boxes, grids, and flexible spacing in a console
  • Developers who want to use the library through CMake, Bazel, vcpkg, or Conan

Not ideal for

  • People who are not writing C++ code, since the README describes only a C++ library
  • Projects needing a graphical desktop window, because FTXUI renders to the terminal
  • Teams that need Windows support as a primary target, since the README lists Linux and macOS as the main targets with Windows added by contributors
Step-by-step guide: how to use FTXUIInstall, first run, examples, tips and FAQs

How to get it

  1. 1

    Clone and build from source

    You'll need: A C++ compiler · CMake or Bazel or Meson

    Clone the repository

    git clone https://github.com/ArthurSonzogni/FTXUI
  2. 2

    Run it

    • Start from the starter CMake project linked in the README
    • Include the header #include <ftxui/ftxui.hpp> in your C++ file
    • Link the ftxui::ftxui CMake target
    • Build and run the example program that prints a bordered layout with gauges
  3. 3

    Get the most out of it

    • Use the pipe operator, for example element | border | flex, to decorate elements
    • Use the component module for keyboard and mouse input and the main loop
    • Try the animation and canvas examples listed in the documentation
    • Use the CMake FetchContent method, which the README marks as preferred

Downloads

Strengths

  • The README states it has no dependencies
  • It is available through many package managers and build systems, including CMake FetchContent
  • It includes examples, documentation, tests, and a WebAssembly build of its examples

Trade-offs

  • It is a C++ library, so you need to be comfortable with C++ and a build system
  • The README describes Windows support as added by contributors rather than as a main target
  • The README is truncated here, so details about the full API and stability are not confirmed

How it compares

ProjectStarsTypeLevelUpdatedBest for
FTXUI (this)10.9kLibraryintermediate5 days agoC++ developers who want interactive text-based tools in the terminal
textual37.6kFrameworkbeginner28 days agoPython developers who want a terminal app with buttons, tables and forms
Terminal.Gui11.3kLibraryintermediate6 days agoC# / .NET developers building terminal tools with forms, tables or menus
ratatui23.1kLibraryintermediate5 days agoRust developers building interactive command-line tools or dashboards
DearPyGui15.7kLibrarybeginner18 days agoPython developers who want a desktop GUI for a script or internal tool
tview14.1kLibraryintermediate3 months agoGo developers building interactive command-line tools with menus, forms, or tables

Stats synced from GitHub. The assessment above was drafted with AI from the project's README on 2026-10-29 and may miss recent changes — check the README before relying on a command. MIT licence: free to use, modify and distribute, including commercially, as long as you keep the copyright notice.