XenoAtom.Terminal
1.6.0
Prefix Reserved
dotnet add package XenoAtom.Terminal --version 1.6.0
NuGet\Install-Package XenoAtom.Terminal -Version 1.6.0
<PackageReference Include="XenoAtom.Terminal" Version="1.6.0" />
<PackageVersion Include="XenoAtom.Terminal" Version="1.6.0" />
<PackageReference Include="XenoAtom.Terminal" />
paket add XenoAtom.Terminal --version 1.6.0
#r "nuget: XenoAtom.Terminal, 1.6.0"
#:package XenoAtom.Terminal@1.6.0
#addin nuget:?package=XenoAtom.Terminal&version=1.6.0
#tool nuget:?package=XenoAtom.Terminal&version=1.6.0
XenoAtom.Terminal

<img align="right" width="256px" height="256px" src="https://raw.githubusercontent.com/XenoAtom/XenoAtom.Terminal/main/img/XenoAtom.Terminal.png">
XenoAtom.Terminal is a modern replacement for System.Console designed for TUI/CLI apps: serialized output, rich ANSI/markup rendering, unified input events, and deterministic tests.
๐ Quick start
using XenoAtom.Terminal;
Terminal.WriteLine("Hello");
Terminal.WriteMarkup("[bold green]Hello[/] [gray]world[/]!");
โจ Features
- Console-compatible API surface: Title, cursor, window,
ReadKey/ReadLine-style workflows - Output (ANSI-safe):
- Serialized writers prevent interleaved escape sequences across threads
- Atomic writes for multi-step output without tearing
- Markup + ANSI styling (powered by XenoAtom.Ansi)
- Custom markup tokens via
Terminal.MarkupStyles/Terminal.SetMarkupStyle
- Input (unified events):
- Single event stream for keys, text, mouse, resize, signals
- Async + cancellation-friendly APIs for TUI loops
- Interactive ReadLine editor:
- Cursor movement, mid-line insert/delete, word navigation/delete
- Grapheme cluster-aware editing (emoji/ZWJ/combining sequences)
- Undo/redo + reverse incremental history search
- Selection by keyboard (Shift) and mouse click/drag
- History stored on the
TerminalReadLineOptionsinstance (shareable, not global) - Completion + extensibility via custom key/mouse handlers (
TerminalReadLineController) - Clipboard-friendly shortcuts (Ctrl+C/Ctrl+X/Ctrl+V) when available
- Readable control-char helpers via
TerminalChar(e.g.TerminalChar.CtrlC) - Gesture formatting/parsing via
TerminalKeyGesture(e.g.CTRL+R) - Styled prompt (
PromptMarkup) + custom line rendering (MarkupRenderer)
- Scopes + state management:
- Reliable scopes: alternate screen, raw/cbreak mode, bracketed paste, mouse reporting, hide cursor
- State tracking: style/colors/decorations, title, cursor position/visibility, window size
- Clipboard: cross-platform text copy/paste (including OSC 52 for remote shells)
- CI + testing:
- CI-aware backend keeps colors when output is redirected
- In-memory backend for deterministic tests (capture output + inject events)
- Cross-platform + AOT: Windows Console + Unix (Linux/macOS),
net10.0+ and NativeAOT-friendly design - Unix terminfo detection: uses terminfo + environment hints for colors (16/256/truecolor) and related capabilities (alternate screen/cursor visibility)
Screenshot of the interactive sample HelloReadLine demo:

XenoAtom.Terminal is a terminal API, not a widget/UI framework. It provides safe I/O, terminal state/scopes, and input events; higher-level libraries can build screen buffers, widgets, and layouts on top.
๐ User Guide
For more details on how to use XenoAtom.Terminal, please visit the user guide.
๐งช Sample
samples/HelloTerminalprints all input events (key/mouse/resize/text/signal) and demonstrates scopes.samples/HelloReadLinedemonstrates the interactiveReadLineeditor (history, selection, completion, and markup rendering).samples/LogTerminalprints colored pseudo log lines (timestamp/level/category/message) and is run in CI to validate ANSI output.
๐ชช License
This software is released under the BSD-2-Clause license.
๐ค Author
Alexandre Mutel aka xoofx.
| 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
- XenoAtom.Ansi (>= 1.5.0)
NuGet packages (1)
Showing the top 1 NuGet packages that depend on XenoAtom.Terminal:
| Package | Downloads |
|---|---|
|
XenoAtom.Terminal.UI
A modern, reactive retained-mode terminal UI framework for .NET |
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 1.6.0 | 303 | 2/4/2026 |
| 1.5.1 | 116 | 1/25/2026 |
| 1.5.0 | 130 | 1/24/2026 |
| 1.4.0 | 96 | 1/24/2026 |
| 1.3.0 | 104 | 1/18/2026 |
| 1.2.0 | 103 | 1/16/2026 |
| 1.1.1 | 108 | 1/9/2026 |
| 1.1.0 | 110 | 1/7/2026 |
| 1.0.0 | 107 | 1/4/2026 |
| 1.0.0-preview.4 | 49 | 1/4/2026 |
| 1.0.0-preview.3 | 46 | 1/3/2026 |
| 1.0.0-preview.2 | 46 | 1/3/2026 |
| 1.0.0-preview.1 | 46 | 1/2/2026 |