Terminal.Gui.Cli
0.2.1
dotnet add package Terminal.Gui.Cli --version 0.2.1
NuGet\Install-Package Terminal.Gui.Cli -Version 0.2.1
<PackageReference Include="Terminal.Gui.Cli" Version="0.2.1" />
<PackageVersion Include="Terminal.Gui.Cli" Version="0.2.1" />
<PackageReference Include="Terminal.Gui.Cli" />
paket add Terminal.Gui.Cli --version 0.2.1
#r "nuget: Terminal.Gui.Cli, 0.2.1"
#:package Terminal.Gui.Cli@0.2.1
#addin nuget:?package=Terminal.Gui.Cli&version=0.2.1
#tool nuget:?package=Terminal.Gui.Cli&version=0.2.1
Terminal.Gui.Cli
A .NET library that turns Terminal.Gui apps into scriptable CLI tools — with typed JSON output, POSIX exit codes, and built-in AI-agent discoverability.
Why
Terminal.Gui gives you rich TUI applications. Terminal.Gui.Cli lets those same apps participate in scripts, pipelines, and agentic workflows — no separate CLI layer needed.
One NuGet package. One CliHost. All your views become commands.
Features
| Capability | How |
|---|---|
| CLI parsing | Positional command dispatch, typed options, --initial pre-fill |
| Structured output | --json emits a versioned JsonEnvelope |
| Headless rendering | --cat renders viewer content without a TUI |
| AI discoverability | --opencli metadata + agent-guide embedded Markdown |
| Built-in help | --help via pluggable IHelpProvider |
| Exit codes | Deterministic POSIX codes from CommandResult |
Quickstart
dotnet add package Terminal.Gui.Cli
using Terminal.Gui.Cli;
CliHost host = new (options =>
{
options.ApplicationName = "my-app";
options.Version = "1.0.0";
});
host.Registry.Register (new GreetCommand ());
return await host.RunAsync (args);
Then run it:
my-app greet --initial "World" # interactive TUI
my-app greet --initial "World" --json # → {"schemaVersion":1,"status":"ok","value":"Hello, World!"}
my-app info --cat # headless viewer output
my-app --opencli # machine-readable command metadata
my-app agent-guide # embedded agent guidance (Markdown)
Command model
| Kind | Interface | Description |
|---|---|---|
| Input | ICliCommand<T> |
Launches a Terminal.Gui UI, returns a typed result |
| Viewer | IViewerCommand |
Displays content; supports --cat for headless rendering |
Commands register explicitly (no reflection scanning) and resolve by case-insensitive alias.
Global options
Every command inherits these from the host:
| Option | Description |
|---|---|
--help / -h |
Show help |
--version |
Show version |
--opencli |
Emit OpenCLI metadata JSON |
--json |
Wrap output in JSON envelope |
--initial <value> |
Pre-fill input value (non-interactive mode) |
--timeout <duration> |
Cancel after duration (e.g., 30s, 5m) |
--output <path> / -o |
Write output to file |
--cat |
Headless render (viewer commands only) |
Repository layout
src/ Terminal.Gui.Cli library
tests/ Unit, integration, and smoke tests
examples/ Example console app (see hero GIF above)
specs/ Constitution and library specification
scripts/ Tooling and recording scripts
docs/ Images and documentation assets
Building from source
Requires .NET 10 SDK. Solution: Terminal.Gui.Cli.slnx.
dotnet restore Terminal.Gui.Cli.slnx
dotnet build Terminal.Gui.Cli.slnx
# Run all test tiers
dotnet run --project tests/Terminal.Gui.Cli.Tests
dotnet run --project tests/Terminal.Gui.Cli.IntegrationTests
dotnet run --project tests/Terminal.Gui.Cli.SmokeTests
# Try the example app
dotnet run --project examples/greet -- greet --initial "World" --json
Status
Alpha — 0.1.0-develop pre-release. API surface is stabilizing; breaking changes possible.
Contributing
See specs/constitution.md for architectural rules and PR requirements.
License
MIT — see LICENSE.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net10.0 is compatible. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net10.0
- Terminal.Gui (>= 2.4.3)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 0.2.1 | 45 | 6/11/2026 |
| 0.2.1-develop.19 | 38 | 6/12/2026 |
| 0.2.1-develop.18 | 31 | 6/11/2026 |
| 0.2.1-develop.16 | 33 | 6/11/2026 |
| 0.2.0 | 45 | 6/11/2026 |
| 0.2.0-develop.15 | 36 | 6/11/2026 |
| 0.2.0-develop.14 | 36 | 6/11/2026 |
| 0.2.0-develop.12 | 32 | 6/11/2026 |
| 0.1.0-develop.11 | 35 | 6/11/2026 |
| 0.1.0-develop.10 | 36 | 6/11/2026 |
| 0.1.0-develop.7 | 92 | 5/28/2026 |
| 0.1.0-develop.6 | 52 | 5/27/2026 |
| 0.1.0-develop.5 | 472 | 5/26/2026 |
| 0.1.0-develop.4 | 46 | 5/26/2026 |
| 0.1.0-develop.3 | 46 | 5/26/2026 |
| 0.1.0-develop.2 | 70 | 5/24/2026 |
| 0.1.0-develop.1 | 51 | 5/24/2026 |
| 0.1.0-beta.1 | 46 | 6/11/2026 |