XenoAtom.Terminal
1.2.0
Prefix Reserved
See the version list below for details.
dotnet add package XenoAtom.Terminal --version 1.2.0
NuGet\Install-Package XenoAtom.Terminal -Version 1.2.0
<PackageReference Include="XenoAtom.Terminal" Version="1.2.0" />
<PackageVersion Include="XenoAtom.Terminal" Version="1.2.0" />
<PackageReference Include="XenoAtom.Terminal" />
paket add XenoAtom.Terminal --version 1.2.0
#r "nuget: XenoAtom.Terminal, 1.2.0"
#:package XenoAtom.Terminal@1.2.0
#addin nuget:?package=XenoAtom.Terminal&version=1.2.0
#tool nuget:?package=XenoAtom.Terminal&version=1.2.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)
- 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
- 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.3.0)
NuGet packages (6)
Showing the top 5 NuGet packages that depend on XenoAtom.Terminal:
| Package | Downloads |
|---|---|
|
XenoAtom.Terminal.UI
A modern, reactive retained-mode terminal UI framework for .NET |
|
|
XenoAtom.Terminal.UI.Extensions.Markdown
Markdown rendering for XenoAtom.Terminal.UI (powered by Markdig) |
|
|
XenoAtom.Terminal.UI.Extensions.Screenshot
Raster screenshot export for XenoAtom.Terminal.UI powered by SkiaSharp |
|
|
XenoAtom.Terminal.UI.Extensions.CodeEditor.TextMateSharp
TextMateSharp-backed syntax highlighting for XenoAtom.Terminal.UI CodeEditor and Markdown fenced code blocks. |
|
|
XenoAtom.Terminal.UI.Graphics
Terminal image controls and presenters for XenoAtom.Terminal.UI |
GitHub repositories (2)
Showing the top 2 popular GitHub repositories that depend on XenoAtom.Terminal:
| Repository | Stars |
|---|---|
|
xoofx/dotnet-releaser
Easily build, run tests and coverage, cross-compile, package and publish your .NET library or application to NuGet and GitHub.
|
|
|
XenoAtom/XenoAtom.Terminal.UI
XenoAtom.Terminal.UI is a modern, reactive retained-mode terminal UI framework for .NET
|
| Version | Downloads | Last Updated |
|---|---|---|
| 2.1.0 | 247 | 4/27/2026 |
| 2.0.1 | 303 | 4/25/2026 |
| 2.0.0 | 819 | 4/3/2026 |
| 1.8.0 | 1,307 | 3/6/2026 |
| 1.7.1 | 135 | 2/26/2026 |
| 1.7.0 | 1,257 | 2/14/2026 |
| 1.6.0 | 744 | 2/4/2026 |
| 1.5.1 | 218 | 1/25/2026 |
| 1.5.0 | 155 | 1/24/2026 |
| 1.4.0 | 120 | 1/24/2026 |
| 1.3.0 | 130 | 1/18/2026 |
| 1.2.0 | 131 | 1/16/2026 |
| 1.1.1 | 134 | 1/9/2026 |
| 1.1.0 | 141 | 1/7/2026 |
| 1.0.0 | 131 | 1/4/2026 |
| 1.0.0-preview.4 | 72 | 1/4/2026 |
| 1.0.0-preview.3 | 69 | 1/3/2026 |
| 1.0.0-preview.2 | 71 | 1/3/2026 |
| 1.0.0-preview.1 | 70 | 1/2/2026 |