XenoAtom.Terminal
1.0.0-preview.4
Prefix Reserved
See the version list below for details.
dotnet add package XenoAtom.Terminal --version 1.0.0-preview.4
NuGet\Install-Package XenoAtom.Terminal -Version 1.0.0-preview.4
<PackageReference Include="XenoAtom.Terminal" Version="1.0.0-preview.4" />
<PackageVersion Include="XenoAtom.Terminal" Version="1.0.0-preview.4" />
<PackageReference Include="XenoAtom.Terminal" />
paket add XenoAtom.Terminal --version 1.0.0-preview.4
#r "nuget: XenoAtom.Terminal, 1.0.0-preview.4"
#:package XenoAtom.Terminal@1.0.0-preview.4
#addin nuget:?package=XenoAtom.Terminal&version=1.0.0-preview.4&prerelease
#tool nuget:?package=XenoAtom.Terminal&version=1.0.0-preview.4&prerelease
XenoAtom.Terminal

<img align="right" width="160px" height="160px" 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.
This project is under development and in pre-release status. The API may change before reaching a stable 1.0.0 version.
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
- 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.2.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.2.0 | 895 | 5/16/2026 |
| 2.1.1 | 873 | 5/14/2026 |
| 2.1.0 | 2,297 | 4/27/2026 |
| 2.0.1 | 427 | 4/25/2026 |
| 2.0.0 | 882 | 4/3/2026 |
| 1.8.0 | 1,496 | 3/6/2026 |
| 1.7.1 | 149 | 2/26/2026 |
| 1.7.0 | 1,292 | 2/14/2026 |
| 1.6.0 | 779 | 2/4/2026 |
| 1.5.1 | 226 | 1/25/2026 |
| 1.5.0 | 164 | 1/24/2026 |
| 1.4.0 | 127 | 1/24/2026 |
| 1.3.0 | 141 | 1/18/2026 |
| 1.2.0 | 140 | 1/16/2026 |
| 1.1.1 | 144 | 1/9/2026 |
| 1.1.0 | 150 | 1/7/2026 |
| 1.0.0 | 144 | 1/4/2026 |
| 1.0.0-preview.4 | 80 | 1/4/2026 |
| 1.0.0-preview.3 | 79 | 1/3/2026 |
| 1.0.0-preview.2 | 79 | 1/3/2026 |