XenoAtom.Terminal
A modern, cross-platform replacement for System.Console: unified input events (keys/mouse/resize), rich ANSI/markup output (XenoAtom.Ansi), thread-safe atomic writes, CI-friendly colors, and an in-memory backend for deterministic tests.
Install
| Product | Versions |
|---|---|
| .NET |
README
XenoAtom.Terminal

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
- Modern
System.Consolereplacement (same “feel”, more capabilities) - Unified input events for TUIs: keys, text, mouse, resize, signals
- Rich output: ANSI styling + markup rendering (powered by XenoAtom.Ansi)
- Thread-safe output: serialized writers to avoid interleaved escape sequences
- Atomic writes: build multi-step output without tearing between threads
- Portable terminal state: style/colors/decorations, title, cursor, window size (best effort)
- Reliable scopes: alternate screen, raw/cbreak mode, mouse reporting, bracketed paste, hide cursor
- CI-friendly: detects popular CI terminals and keeps colors when output is redirected
- Deterministic tests: in-memory backend to capture output and inject input events
- Cross-platform backends: Windows Console + Unix (Linux/macOS)
net10.0+ and NativeAOT-friendly design
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/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.
Adoption Assessment
A verified publisher signal is available. Assess fit from the package's supported frameworks, license and dependency graph rather than popularity alone.
Related Guides & Workflows
Learn how to evaluate, integrate, or audit this package in your .NET project.