Terminal.Gui - Cross Platform Terminal UI Toolkit for .NET
Terminal.Gui is a cross-platform UI toolkit for building sophisticated terminal UI (TUI) applications on Windows, macOS, and Linux/Unix.

Quick Start
Install the Terminal.Gui.Templates, create a new TUI app, and run it:
dotnet new install Terminal.Gui.Templates
dotnet new tui-simple -n myproj
cd myproj
dotnet run
Simple Example
using Terminal.Gui.App;
using Terminal.Gui.ViewBase;
using Terminal.Gui.Views;
using IApplication app = Application.Create ();
app.Init ();
using Window window = new () { Title = "Hello World (Esc to quit)" };
Label label = new ()
{
Text = "Hello, Terminal.Gui v2!",
X = Pos.Center (),
Y = Pos.Center ()
};
window.Add (label);
app.Run (window);
See the Examples directory for more.
Build Powerful Terminal Applications
Terminal.Gui enables building sophisticated console applications with modern UIs:
- Rich Forms and Dialogs - Text fields, buttons, checkboxes, radio buttons, and data validation
- Interactive Data Views - Tables, lists, and trees with sorting, filtering, and in-place editing
- Visualizations - Charts, graphs, progress indicators, and color pickers with TrueColor support
- Text Editors - Full-featured text editing with clipboard, undo/redo, and Unicode support
- File Management - File and directory browsers with search and filtering
- Wizards and Multi-Step Processes - Guided workflows with navigation and validation
- System Monitoring Tools - Real-time dashboards with scrollable, resizable views
- Configuration UIs - Settings editors with persistent themes and user preferences
- Cross-Platform CLI Tools - Consistent experience on Windows, macOS, and Linux
- Server Management Interfaces - SSH-compatible UIs for remote administration
Key Features
Dozens of Built-in Views - Rich set of controls for building complex user interfaces
Cross Platform - Windows, Mac, and Linux with terminal drivers that work on color and monochrome terminals, including over SSH
Powerful Layout Engine - Relative positioning, automatic sizing, and dynamic terminal UIs
Keyboard and Mouse Input - Complete input handling with simple event-based API
Configuration System - Machine, user, and app-level settings with themes and key bindings
Clipboard Support - Cut, Copy, and Paste across platforms
Multi-tasking - Event processing, idle handlers, timers, and thread-safe classes
Reactive Extensions - MVVM pattern support with ReactiveUI data bindings
Installing
v2 Alpha (Recommended for new projects)
dotnet add package Terminal.Gui --version "2.0.0-alpha.*"
v2 Develop (Latest)
dotnet add package Terminal.Gui --version "2.0.0-develop.*"
Or use the Terminal.Gui.Templates:
dotnet new install Terminal.Gui.Templates
Documentation
- Getting Started - Create your first Terminal.Gui application
- What's New in v2 - New features and architectural improvements
- Migrating from v1 - Complete migration guide
- Views Overview - All built-in views and controls
- Deep Dives - Comprehensive guides and deep dives
- API Reference - Complete API documentation
Contributing
Contributions welcome! See CONTRIBUTING.md.
History
See gui-cs for project history and origins.