XenoAtom.Terminal
1.5.1
Prefix Reserved
dotnet add package XenoAtom.Terminal --version 1.5.1
NuGet\Install-Package XenoAtom.Terminal -Version 1.5.1
<PackageReference Include="XenoAtom.Terminal" Version="1.5.1" />
<PackageVersion Include="XenoAtom.Terminal" Version="1.5.1" />
<PackageReference Include="XenoAtom.Terminal" />
paket add XenoAtom.Terminal --version 1.5.1
#r "nuget: XenoAtom.Terminal, 1.5.1"
#:package XenoAtom.Terminal@1.5.1
#addin nuget:?package=XenoAtom.Terminal&version=1.5.1
#tool nuget:?package=XenoAtom.Terminal&version=1.5.1
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
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
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.5.1 | 35 | 1/25/2026 |
| 1.5.0 | 46 | 1/24/2026 |
| 1.4.0 | 37 | 1/24/2026 |
| 1.3.0 | 99 | 1/18/2026 |
| 1.2.0 | 99 | 1/16/2026 |
| 1.1.1 | 104 | 1/9/2026 |
| 1.1.0 | 99 | 1/7/2026 |
| 1.0.0 | 102 | 1/4/2026 |
| 1.0.0-preview.4 | 44 | 1/4/2026 |
| 1.0.0-preview.3 | 42 | 1/3/2026 |
| 1.0.0-preview.2 | 42 | 1/3/2026 |
| 1.0.0-preview.1 | 43 | 1/2/2026 |