
FTXUI
A C++ library for building terminal user interfaces with no dependencies.
- Stars
- 10.9k
- Forks
- 628
- Licence
- MIT
- Language
- C++
- Last update
- 4 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
How to get it
- 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
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
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
| Project | Stars | Type | Level | Updated | Best for |
|---|---|---|---|---|---|
| FTXUI (this) | 10.9k | Library | intermediate | 4 days ago | C++ developers who want interactive text-based tools in the terminal |
| textual | 37.6k | Framework | beginner | 27 days ago | Python developers who want a terminal app with buttons, tables and forms |
| Terminal.Gui | 11.3k | Library | intermediate | 6 days ago | C# / .NET developers building terminal tools with forms, tables or menus |
| ratatui | 23.1k | Library | intermediate | 5 days ago | Rust developers building interactive command-line tools or dashboards |
| DearPyGui | 15.7k | Library | beginner | 17 days ago | Python developers who want a desktop GUI for a script or internal tool |
| tview | 14.1k | Library | intermediate | 3 months ago | Go 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.