
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
How to get it
- 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.GuiInstall the project templates
dotnet new install Terminal.Gui.Templates - 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
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
| Project | Stars | Type | Level | Updated | Best for |
|---|---|---|---|---|---|
| Terminal.Gui (this) | 11.3k | Library | intermediate | 6 days ago | C# / .NET developers building terminal tools with forms, tables or menus |
| spectre.console | 11.7k | Library | beginner | 11 days ago | C# or .NET developers writing command-line tools |
| FTXUI | 10.9k | Library | intermediate | 5 days ago | C++ developers who want interactive text-based tools in the terminal |
| Avalonia | 31.7k | Framework | intermediate | 4 days ago | C# developers who already know XAML or WPF |
| bottom | 14.1k | CLI | beginner | 4 days ago | People who like watching system activity from a terminal instead of a graphical window |
| chalk | 23.3k | Library | beginner | 14 days ago | Node.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.