Terminal.Gui  by gui-cs

Cross-platform TUI toolkit for .NET applications

Created 8 years ago
11,015 stars

Top 4.7% on SourcePulse

GitHubView on GitHub
Project Summary

Summary Terminal.Gui is a robust, cross-platform toolkit designed for building sophisticated terminal user interfaces (TUIs) within the .NET ecosystem. It empowers developers to craft modern, responsive console applications that rival graphical interfaces in complexity and user experience. By providing a rich set of pre-built components and a flexible layout system, Terminal.Gui enables the creation of performant and scalable applications for Windows, macOS, and Linux environments.

How It Works The library's core innovation lies in its responsive layout system, which allows TUI elements to dynamically adjust to terminal window resizing, offering a fluid experience comparable to responsive web design. Rendering is optimized through double-buffering, ensuring high performance and smooth updates, particularly crucial for complex views like Tables and Tree Views. These data-centric components are designed for scalability, supporting virtually infinite elements with integrated sorting and filtering capabilities. Terminal.Gui adopts a dual interaction model, prioritizing both keyboard-first navigation and comprehensive mouse support for versatile user input.

Quick Start & Requirements Getting started is streamlined via the .NET CLI:

  1. Install the project templates: dotnet new install Terminal.Gui.Templates
  2. Create a new simple TUI application: dotnet new tui-simple -n myproj
  3. Navigate into the project directory and run: cd myproj && dotnet run Explore all controls via the UI Catalog demo: dotnet run --project Examples/UICatalog/UICatalog.csproj. Comprehensive documentation, including a Getting Started guide and API reference, is available at gui-cs.github.io/Terminal.Gui. The primary requirement is a functional .NET SDK installation.

Highlighted Details

  • Responsive Layout System: Enables TUIs to adapt dynamically to terminal dimensions.
  • Performance & Scalability: Features fast, double-buffered rendering and highly scalable data views (Tables, Tree Views) with sorting/filtering.
  • Rich Widget Library: Offers a comprehensive set of controls including advanced text editors (Unicode, clipboard, undo/redo), buttons, menus, charts, graphs, file/directory browsers (with Nerdfonts and coloring), and wizards.
  • TrueColor Support: Facilitates advanced color rendering for visually appealing interfaces.
  • Extensive Customization: Supports configurable themes, key bindings, and persistent settings.
  • Cross-Platform Consistency: Delivers a uniform user experience across Windows, macOS, and Linux.
  • Flexible Application Modes: Applications can operate either in-line with other terminal output or occupy the full screen.

Maintenance & Community Contributions are actively encouraged, with contribution guidelines provided in CONTRIBUTING.md. Project history and origins are accessible via the gui-cs GitHub organization. The provided README does not specify dedicated community channels such as Discord or Slack, nor does it link to a public roadmap.

Licensing & Compatibility The specific open-source license governing Terminal.Gui is not explicitly stated within the provided README content. Consequently, definitive information regarding compatibility for commercial use or integration within closed-source applications cannot be ascertained from this documentation alone.

Limitations & Caveats The README does not explicitly mention any current limitations, known bugs, or the project's development stage (e.g., alpha, beta). The documentation focuses primarily on the features and capabilities introduced with version 2.0.

Health Check
Last Commit

18 hours ago

Responsiveness

Inactive

Pull Requests (30d)
201
Issues (30d)
128
Star History
102 stars in the last 30 days

Explore Similar Projects

Starred by Chip Huyen Chip Huyen(Author of "AI Engineering", "Designing Machine Learning Systems").

muxy by muxy-app

35.1%
2k
Lightweight terminal for macOS and iOS
Created 1 month ago
Updated 21 hours ago
Feedback? Help us improve.