A high-performance, WPF-inspired text user interface framework for .NET 10. Define the UI once — in XAML or in code — and host the identical character-cell grid anywhere.
Terminal · Blazor · WPF · Avalonia · WinUI 3 · .NET MAUI
<!-- app.xaml — runs unchanged on every host -->
<TuiWindow>
<Border BoxStyle="Double" BorderColor="Cyan">
<StackPanel Orientation="Vertical">
<TextBlock Text="Hello Tedd.TUI!" Foreground="Cyan"/>
<TextBox x:Name="NameBox" Width="30"/>
<Button Content="Submit" Click="OnSubmit"/>
</StackPanel>
</Border>
</TuiWindow>
// …or build the same tree in C#
var window = new TuiWindow
{
Content = new Border
{
BoxStyle = BoxStyle.Double,
BorderColor = TuiColor.Cyan,
Child = new StackPanel { /* … */ }
}
};
// terminal:
new TuiApp(window).Run();
Truecolor VT rendering with double-buffered diffing, mouse support and inline images (Sixel/Kitty/iTerm2). Near-zero CPU while idle.
Tedd.TUI.Platform.Console + WindowsTerminal / LinuxTerminalCanvas or DOM surface in any browser. Author in Razor components or drop in <TuiXamlView Source="app.xaml"/>.
TuiHostElement paints the real cell grid — including inside the Visual Studio XAML designer, for live-preview TUI editing.
TuiHostControl renders via SkiaSharp on Windows, macOS and Linux with full HiDPI support.
TuiHostControl on an SkiaSharp canvas inside Windows App SDK applications.
TuiHostView brings the grid to Android, iOS, Mac Catalyst and Windows; touch maps to TUI mouse events.
MarkdownView live-parses markdown into styled character cells:
headings, bold text, bullet lists, quotes, tables, inline code and hyperlinks.
Fenced code blocks run through the syntax highlighter automatically, image
references become real inline images, and every color and style comes from a
swappable MarkdownTheme.
CodeDocument tokenizes source with a PrismJS-style grammar engine
and renders it as colored cells — standalone or inside markdown code fences.
27 grammars ship in the box: ASM 6502, ASP.NET, Bash, BASIC, Batch, C#,
CIL, C-like, cshtml/Razor, CSS, CSV, Diff, JSON, JSON5, Lua, Markdown, NASM,
Perl, PowerShell, Python, Regex, Rust, SQL, URI, WASM, XML/HTML and YAML —
all themable per token type.
The Image control puts real bitmaps into the cell grid. Terminals
with graphics support get pixel-perfect output — Sixel
(Windows Terminal 1.22+ and VT340-style terminals), Kitty
graphics, and the iTerm2 protocol (iTerm2, WezTerm, Ghostty).
GUI and browser hosts composite the bitmap directly, and every other terminal
falls back to truecolor half-block art. PNG, JPEG, GIF, WebP and more decode
via Tedd.TUI.Imaging (Magick.NET), from disk or HTTP.
Border, Button, Canvas, CheckBox, CodeDocument, ComboBox, ContentControl, DataGrid, DialogBox, DockPanel, Expander, Grid, GridSplitter, GroupBox, Image, ItemsControl, ListBox, MarkdownView, MenuBar, MenuItem, PasswordBox, ProgressBar, RadioButton, ScrollBar, ScrollViewer, Separator, Slider, StackPanel, TabControl, TabItem, Table, TextBlock, TextBox, TextEditor, ToggleButton, TreeView, TreeViewItem, TuiWindow, UniformGrid, WrapPanel
…plus WPF-style data binding, routed events, control templates, triggers, focus management, overlays and a mouse-aware input pipeline.


dotnet add package Tedd.TUI # core: controls, layout, XAML
dotnet add package Tedd.TUI.Platform.Console # terminal host
dotnet add package Tedd.TUI.Platform.Blazor # browser host
dotnet add package Tedd.TUI.Platform.Wpf # WPF host + designer preview
dotnet add package Tedd.TUI.Platform.Avalonia # Avalonia host
dotnet add package Tedd.TUI.Platform.WinUI # WinUI 3 host
dotnet add package Tedd.TUI.Platform.Maui # .NET MAUI host
| Feature | Where |
|---|---|
| WPF-style control suite (40+ controls) | Tedd.TUI |
| Grid/StackPanel/DockPanel/WrapPanel layout, data binding, routed events | Tedd.TUI |
Markdown viewer (MarkdownView) & syntax-highlighted code view (CodeDocument, 27 grammars) | Tedd.TUI |
| Inline images: Sixel · Kitty · iTerm2 in terminals, real bitmaps on GUI hosts, half-block fallback | Tedd.TUI.Imaging + hosts |
| Shared Skia cell painter | Tedd.TUI.Surface.Skia |