explaingit

gui-cs/terminal.gui

10,987C#Audience · developerComplexity · 2/5LicenseSetup · easy

TLDR

A .NET toolkit with 50+ ready-made controls for building full-featured applications that run inside a terminal window on Windows, macOS, and Linux.

Mindmap

mindmap
  root((Terminal.Gui))
    What it does
      Terminal UI toolkit
      50+ controls
      Cross-platform
    Controls
      Text editors
      Tables and trees
      File browsers
      Charts and graphs
    Tech stack
      C#
      .NET
    Features
      TrueColor support
      Mouse input
      Unicode support
      Responsive layout
Click or tap to explore — scroll the page freely

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

Things people build with this

USE CASE 1

Build a full-screen terminal app with menus, tables, and file browsers that runs on any platform without a web browser.

USE CASE 2

Create an interactive command-line tool with a text editor, progress bars, and mouse support for server administration tasks.

USE CASE 3

Build a data entry form or multi-step guided workflow that runs entirely inside a terminal window.

USE CASE 4

Add an in-line interactive mode to an existing CLI tool so users can browse and filter large datasets.

Tech stack

C#.NET

Getting it running

Difficulty · easy Time to first run · 30min
Free to use for any purpose including commercial projects, MIT license.

In plain English

Terminal.Gui is a toolkit for .NET developers who want to build applications that run inside a terminal window rather than in a web browser or desktop window. These are sometimes called TUI apps (terminal user interfaces), and they look similar to the kind of text-based programs you might have seen in old operating systems or server administration tools. With Terminal.Gui, you can build something that looks and behaves like a real application while still running entirely in a command-line window. The toolkit ships with over 50 ready-made interface elements called views. These include text editors with clipboard and undo support, buttons, checkboxes, file and directory browsers, tables that can sort and filter large amounts of data, tree views, progress bars, color pickers, menus, and more. There is also chart and graph support for displaying data visually inside the terminal. You can combine these pieces to build multi-step guided workflows, data entry forms, or full-screen utilities. It runs on Windows, macOS, and Linux without changes to your code. The rendering uses a double-buffering approach so the screen updates smoothly. It supports TrueColor, Unicode characters, and mouse input, so users are not limited to keyboard-only interaction. You can also build apps that run in-line inside the terminal, scrolling with normal output rather than taking over the full screen, which suits command-line tools that need a quick interactive mode. Installing it is straightforward through the standard .NET package manager. The project includes a UI Catalog demo that lets you browse all the available controls live in your terminal. Version 2.0 (the current release) brought a new layout system inspired by responsive web design, allowing interface elements to resize and reflow based on the terminal window size, along with faster rendering and an updated application architecture. The project is MIT-licensed, has over 10,000 GitHub stars, and has been downloaded more than 1.7 million times.

Copy-paste prompts

Prompt 1
Using Terminal.Gui in C#, create a simple text editor app that runs in the terminal with a menu bar, file open dialog, and clipboard support.
Prompt 2
Show me how to build a table view in Terminal.Gui that displays a list of items and lets users sort by clicking a column header.
Prompt 3
I want to build a file browser TUI in C# with Terminal.Gui, show me how to use the directory browser view and display file details.
Prompt 4
How do I add a progress bar and status bar to a Terminal.Gui app that updates in real time while a background task runs?
Prompt 5
Create a Terminal.Gui app with a responsive layout that reflows and resizes controls when the terminal window is made smaller.
Open on GitHub → Explain another repo

← gui-cs on gitmyhub — every repo by this author, as a profile.

Verify against the repo before relying on details.