Skip to content

FTXUI vs Terminal.Gui

Which should you use? A side-by-side look at what each one does, who it suits, what it costs, how hard it is to set up, and where each falls short.

FTXUI

Open source · MIT

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

Terminal.Gui

Open source · MIT

A C# toolkit for building text-based (terminal) user interface apps that run on Windows, macOS and Linux.

The short answer

Choose FTXUI if you need…

  • 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

Choose Terminal.Gui if you need…

  • C# / .NET developers building terminal tools with forms, tables or menus
  • Teams writing internal admin or configuration tools that run over SSH
  • Developers who want a built-in set of widgets rather than assembling their own
  • Developers building CLI tools that need an in-line or full-screen interface

Side-by-side

FTXUITerminal.Gui
TypeLibraryLibrary
PriceFree and open sourceFree and open source
LicenceMITMIT
GitHub stars10.9k11.3k
Setup difficultyIntermediateIntermediate
How you get itClone and build from sourceInstall with a package manager
Main languageC++C#
Last code update5 days ago7 days ago

What each one is

FTXUI

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.

Terminal.Gui

Terminal.Gui is a library for .NET that lets developers build interactive apps that run inside a terminal window, with widgets such as buttons, text fields, tables, trees, menus and dialogs. It aims to work the same on Windows, macOS and Linux, and supports both keyboard and mouse input. People use it when they want a richer interface than plain command-line output without leaving the terminal.

Best for

FTXUI

  • 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

Terminal.Gui

  • C# / .NET developers building terminal tools with forms, tables or menus
  • Teams writing internal admin or configuration tools that run over SSH
  • Developers who want a built-in set of widgets rather than assembling their own
  • Developers building CLI tools that need an in-line or full-screen interface

Strengths

FTXUI

  • 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

Terminal.Gui

  • Cross-platform: the README says it targets Windows, macOS and Linux/Unix with a consistent experience
  • Large built-in widget set, including text editors, charts and color pickers
  • Installable via NuGet and has a project template for quick starts

Not ideal for

FTXUI

  • 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

Terminal.Gui

  • People who want a finished app to use directly; this is a toolkit for building apps
  • Developers working in Python, JavaScript or other non-.NET languages, since it is a C# library
  • Projects that need a graphical (non-terminal) interface

Trade-offs

FTXUI

  • 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

Terminal.Gui

  • Requires learning the .NET ecosystem and its v2 API; the README points to a migration guide for v1 users
  • Terminal rendering and input behavior can vary by terminal emulator, which the README does not dig into

Getting started

FTXUI

Clone the repository

git clone https://github.com/ArthurSonzogni/FTXUI
Step-by-step guide: how to use FTXUI

Terminal.Gui

Add the library to a .NET project

dotnet add package Terminal.Gui

Install the project templates

dotnet new install Terminal.Gui.Templates
Step-by-step guide: how to use Terminal.Gui

Frequently asked questions

What is the difference between FTXUI and Terminal.Gui?

FTXUI: A C++ library for building terminal user interfaces with no dependencies. Terminal.Gui: A C# toolkit for building text-based (terminal) user interface apps that run on Windows, macOS and Linux. FTXUI suits c++ developers who want interactive text-based tools in the terminal, while Terminal.Gui suits c# / .net developers building terminal tools with forms, tables or menus.

Are FTXUI and Terminal.Gui free?

FTXUI: Free and open source. Terminal.Gui: Free and open source.

Is FTXUI or Terminal.Gui more popular?

Terminal.Gui has more GitHub stars (11.3k) than FTXUI (10.9k). Popularity isn't the same as fit — check which one matches your use case above.

What are other alternatives to FTXUI and Terminal.Gui?

Other options people compare them with include Textual, tview, CustomTkinter, xterm.js, Spectre.Console.

Keep comparing

Built from our catalogue entries for both products: open-source details come from each project's README (AI-assisted, refreshed weekly) and GitHub data; AI-tool details are editorial. Spotted something wrong? Let us know from either product's page.