XenoAtom.Terminal.UI 1.0.0-preview.4

Prefix Reserved
This is a prerelease version of XenoAtom.Terminal.UI.
dotnet add package XenoAtom.Terminal.UI --version 1.0.0-preview.4
                    
NuGet\Install-Package XenoAtom.Terminal.UI -Version 1.0.0-preview.4
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="XenoAtom.Terminal.UI" Version="1.0.0-preview.4" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="XenoAtom.Terminal.UI" Version="1.0.0-preview.4" />
                    
Directory.Packages.props
<PackageReference Include="XenoAtom.Terminal.UI" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add XenoAtom.Terminal.UI --version 1.0.0-preview.4
                    
#r "nuget: XenoAtom.Terminal.UI, 1.0.0-preview.4"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package XenoAtom.Terminal.UI@1.0.0-preview.4
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=XenoAtom.Terminal.UI&version=1.0.0-preview.4&prerelease
                    
Install as a Cake Addin
#tool nuget:?package=XenoAtom.Terminal.UI&version=1.0.0-preview.4&prerelease
                    
Install as a Cake Tool

XenoAtom.Terminal.UI ci NuGet

<img align="right" width="256px" height="256px" src="https://raw.githubusercontent.com/XenoAtom/XenoAtom.Terminal.UI/main/img/XenoAtom.Terminal.UI.png">

XenoAtom.Terminal.UI is a modern, reactive retained-mode terminal UI framework for .NET, built on top of XenoAtom.Terminal. It provides a rich set of controls (TextBox, TextArea, lists, tables, dialogs…), a consistent layout system, a styling/theming model, and a binding system designed for smooth live UIs.

This library is in early 1.0 preview. The API is mostly stable but may still see breaking changes before the final 1.0 release. Feedback welcome!

✨ Features

  • Two hosting models:
    • Inline widgets via Terminal.Write(...) and Terminal.Live(...)
    • Fullscreen apps via Terminal.Run(...) (alternate screen + input loop)
  • Modern control library (50+ built-in controls):
    • Buttons, toggles, lists, tables, tabs, menus, dialogs/popups, toasts, charts, progress, spinners, tooltips…
    • Text editing: TextBox, TextArea, MaskedInput, NumberBox (undo/redo: Ctrl+Z / Ctrl+R)
    • Advanced widgets: LogControl, CommandPalette, BreakdownChart, ColorPicker
  • Binding-first UI:
    • Bindable properties, State<T>, automatic dependency tracking, minimal boilerplate
  • Layout system: consistent measure/arrange protocol (integer cell UI), panels and containers
  • Styling, themes, and color schemes:
    • Theme + per-control styles, ColorScheme palettes (terminal-native and RGB themes)
    • RootLoops-powered color scheme generator (https://rootloops.sh) with many built-in schemes
  • Input:
    • Keyboard, mouse, resize events; focus navigation; routed events where appropriate
  • Commands & key hints:
    • Context-aware commands with single-stroke gestures and multi-stroke sequences
    • CommandBar control for discoverable shortcuts
  • Rendering:
    • Cell-buffer renderer + diffing, efficient batched output, synchronized output (DEC 2026)
    • Alpha-aware colors (RGBA) with blending support for modern UI effects
  • Debug overlay:
    • Built-in performance overlay (toggle with F12) to inspect frame timings, invalidation, and diff output
  • Cross-platform + AOT-friendly: net10.0 and NativeAOT-oriented design (built on XenoAtom.Terminal)

XenoAtom.Terminal.UI Fullscreen Demo

XenoAtom.Terminal.UI depends on XenoAtom.Terminal. The two libraries are designed to be used together: Terminal handles safe ANSI/markup output and unified input events; Terminal.UI builds a widget/layout system on top.

🚀 Quick start

using XenoAtom.Terminal;
using XenoAtom.Terminal.UI;
using XenoAtom.Terminal.UI.Controls;

Terminal.Write(new Group("Welcome")
    .Content(new VStack("Hello", "from", "Terminal.UI").Spacing(1))
);

Inline “live” widget (updates without clearing your output):

using XenoAtom.Terminal;
using XenoAtom.Terminal.UI;
using XenoAtom.Terminal.UI.Controls;

var work = new ProgressTask("Work");

Terminal.Live(
    new ProgressTaskGroup().Tasks([work]),
    onUpdate: () =>
    {
        work.Value = Math.Min(1, work.Value + 0.01);
        return work.Value < 1
            ? TerminalLoopResult.Continue
            : TerminalLoopResult.StopAndKeepVisual;
    });

Fullscreen app:

using XenoAtom.Terminal;
using XenoAtom.Terminal.UI;
using XenoAtom.Terminal.UI.Controls;

State<string?> text = new("Type here");
State<bool> exit = new(false);

Terminal.Run(
    new VStack(
        new TextBox(text),
        new TextBlock(() => $"The text typed is: {text.Value}"),
        new Button("Exit").Click(() => exit.Value = true)
    ),
    onUpdate: () => exit.Value
        ? TerminalLoopResult.StopAndKeepVisual 
        : TerminalLoopResult.Continue
    );

🧩 Controls included

The library ships with a large set of built-in controls. See Controls Reference for the full reference.

Highlights:

  • Text input: TextBox, TextArea, MaskedInput, NumberBox, ValidationPresenter
  • Lists: ListBox, OptionList, SelectionList, Select<T>, TreeView
  • Data: Table, DataGridControl
  • Layout: VStack, HStack, Grid, DockLayout, Splitters, Border, Group, Padder
  • Overlays: Popup, Dialog, TooltipHost, Backdrop
  • Toasts: Toast, ToastHost (overlay notifications)
  • Visualization: BarChart, LineChart, Sparkline, Canvas, BreakdownChart, TextFiglet
  • Progress: ProgressBar, ProgressTaskGroup, Spinner

📖 User guide

For details, see the dedicated website.

🧪 Samples

  • samples/ControlsDemo: catalog-style demo of controls and styles.
  • samples/FullscreenDemo: fullscreen UI showcase.
  • samples/InlineLiveDemo: inline/live demo (interactive).

🪪 License

This software is released under the BSD-2-Clause license.

🤗 Author

Alexandre Mutel aka xoofx.

Product 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. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

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
1.0.0-preview.4 0 2/7/2026
1.0.0-preview.3 0 2/6/2026
1.0.0-preview.2 31 2/6/2026
1.0.0-preview.1 34 2/5/2026