-
Home
-
Docs
Terminal User Guide
XenoAtom.Terminal.UI is a modern retained-mode terminal UI framework built on top of XenoAtom.Terminal.
It supports both:
- Inline widgets that render as part of normal terminal output (
Terminal.Write, Terminal.Live)
- Fullscreen applications (alternate screen, focus navigation, routed input, dialogs, etc.)
This guide documents the concepts, features, and controls of the library.

Quick start
Ecosystem
Terminal.UI is built on:
- XenoAtom.Terminal - terminal I/O, input events, hosting (inline + fullscreen)
- XenoAtom.Ansi - ANSI/VT primitives and markup used by the
Markup control and parsers
See also:
Hosting & integration
- Hosting (inline vs fullscreen, update loops)
- Prompts (inline prompts built on top of
Terminal.Live)
Core concepts
- Visual Tree (Visuals, fluent API, dynamic composition)
- Binding (
State<T>, bindable properties, dependency tracking)
- Data Templating (DataTemplates, DataPresenter, item templates)
- Culture (culture-aware value formatting)
- Layout (layout protocol, alignment, margin/padding)
- Input (keyboard/mouse, focus, routed events, capture)
- Commands (commands, key sequences, key hints with CommandBar)
- Styling (Theme, styles, environment)
- Rendering (cell buffer, diff renderer, performance)
- Scrolling (ScrollViewer, scroll models, scrollbars)
- Text Editing (TextBox/TextArea/MaskedInput and the text subsystem)
- Undo/Redo (undo/redo for text editors)
- Markup (markup syntax, semantic tokens,
MarkupTextParser)
- Debugging (debug overlay, performance metrics)
Controls reference
Samples
The samples folder contains end-to-end demos:
- Demos (screenshots, videos, and GitHub links)
samples/FullscreenDemo: fullscreen UI showcase.
samples/ControlsDemo: catalog-style demo.
samples/InlineLiveDemo: inline/live example (interactive).
Specs and design notes
The site/docs/specs folder contains deeper design documents and implementation notes used during development: