Skip to main content
net10.0

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.

Published
Jan 2, 2026
9mo ago
Total Downloads
21.0K
21,002

Install

dotnet add package XenoAtom.Terminal --version 1.0.0-preview.1
ProductVersions
.NET
net10.0

README

XenoAtom.Terminal ci NuGet

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.Console replacement (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/HelloTerminal prints all input events (key/mouse/resize/text/signal) and demonstrates scopes.
  • samples/LogTerminal prints 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.

This version is marked prerelease. Validate its API and upgrade path before production use.Compatibility metadata lists 1 target framework; confirm the exact target used by your application.

Related Guides & Workflows

Learn how to evaluate, integrate, or audit this package in your .NET project.