Skip to content

Terminal.Gui

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

Stars
11.3k
Forks
792
Licence
MIT
Language
C#
Last update
6 days ago
Type
Library

What it is

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.

  • Build a terminal form with text fields, checkboxes and buttons
  • Create a file browser or directory picker inside a console app
  • Display sortable, filterable tables or tree views
  • Make a multi-step wizard with navigation and validation

Great for

  • 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

Not ideal for

  • 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
Step-by-step guide: how to use Terminal.GuiInstall, first run, examples, tips and FAQs

How to get it

  1. 1

    Install with a package manager

    You'll need: .NET SDK (version not specified in the README)

    Add the library to a .NET project

    dotnet add package Terminal.Gui

    Install the project templates

    dotnet new install Terminal.Gui.Templates
  2. 2

    Run it

    • Install the Terminal.Gui.Templates package
    • Create a new app with: dotnet new tui-simple -n myproj
    • Change into the folder and run: dotnet run
    • Press Esc to quit the sample window
  3. 3

    Get the most out of it

    • Run the UI Catalog example (dotnet run --project Examples/UICatalog/UICatalog.csproj) to see every control in action
    • Read the Views Overview to choose the right controls
    • Use the Configuration docs to set up persistent themes and key bindings
    • Review the Layout System docs for responsive positioning and sizing
    • Check the Showcase page for real applications built with the library

Downloads

Strengths

  • 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

Trade-offs

  • 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

How it compares

ProjectStarsTypeLevelUpdatedBest for
Terminal.Gui (this)11.3kLibraryintermediate6 days agoC# / .NET developers building terminal tools with forms, tables or menus
spectre.console11.7kLibrarybeginner11 days agoC# or .NET developers writing command-line tools
FTXUI10.9kLibraryintermediate4 days agoC++ developers who want interactive text-based tools in the terminal
Avalonia31.7kFrameworkintermediate4 days agoC# developers who already know XAML or WPF
bottom14.1kCLIbeginner4 days agoPeople who like watching system activity from a terminal instead of a graphical window
chalk23.3kLibrarybeginner14 days agoNode.js developers building command-line tools that print colored output

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.