One TUI. Every surface.

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

Tedd.TUI demo window rendered as a character grid

Write it once

<!-- 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();

Host it anywhere

Terminal

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 / LinuxTerminal

Blazor

Canvas or DOM surface in any browser. Author in Razor components or drop in <TuiXamlView Source="app.xaml"/>.

Tedd.TUI.Platform.Blazor

WPF

TuiHostElement paints the real cell grid — including inside the Visual Studio XAML designer, for live-preview TUI editing.

Tedd.TUI.Platform.Wpf

Avalonia

TuiHostControl renders via SkiaSharp on Windows, macOS and Linux with full HiDPI support.

Tedd.TUI.Platform.Avalonia

WinUI 3

TuiHostControl on an SkiaSharp canvas inside Windows App SDK applications.

Tedd.TUI.Platform.WinUI

.NET MAUI

TuiHostView brings the grid to Android, iOS, Mac Catalyst and Windows; touch maps to TUI mouse events.

Tedd.TUI.Platform.Maui

Markdown, code & images — right in the console

Markdown rendering

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.

MarkdownView rendering a heading, styled paragraph, bullet list, quote and table as character cells

Code highlighting

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.

CodeDocument showing syntax-highlighted C# and JSON panes side by side

Image rendering

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.

The same photo rendered as an inline bitmap and as truecolor half-block cells

40+ controls in the box

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.

Screenshots

Install

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
FeatureWhere
WPF-style control suite (40+ controls)Tedd.TUI
Grid/StackPanel/DockPanel/WrapPanel layout, data binding, routed eventsTedd.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 fallbackTedd.TUI.Imaging + hosts
Shared Skia cell painterTedd.TUI.Surface.Skia