Ivy.Widgets.Xterm
1.3.8
See the version list below for details.
dotnet add package Ivy.Widgets.Xterm --version 1.3.8
NuGet\Install-Package Ivy.Widgets.Xterm -Version 1.3.8
<PackageReference Include="Ivy.Widgets.Xterm" Version="1.3.8" />
<PackageVersion Include="Ivy.Widgets.Xterm" Version="1.3.8" />
<PackageReference Include="Ivy.Widgets.Xterm" />
paket add Ivy.Widgets.Xterm --version 1.3.8
#r "nuget: Ivy.Widgets.Xterm, 1.3.8"
#:package Ivy.Widgets.Xterm@1.3.8
#addin nuget:?package=Ivy.Widgets.Xterm&version=1.3.8
#tool nuget:?package=Ivy.Widgets.Xterm&version=1.3.8
Ivy.Widgets.Xterm
A terminal emulator widget for Ivy Framework powered by xterm.js.
Installation
dotnet add package Ivy.Widgets.Xterm
Widgets
Terminal
A fully-featured terminal emulator component.
External React Libraries Used:
- @xterm/xterm - Terminal emulator
- @xterm/addon-fit - Auto-fit terminal to container
- @xterm/addon-web-links - Clickable URLs
Basic Usage
using Ivy.Widgets.Xterm;
// Simple terminal with default settings
new Terminal()
// Terminal with dark theme and custom font
new Terminal()
.DarkTheme()
.FontSize(16)
.CursorBlink(true)
// Terminal with initial content
new Terminal()
.InitialContent("Welcome!\r\n$ ")
// Terminal with a loading overlay shown until the attached
// process writes its first output to the stream
new Terminal()
.Stream(pty.Stream)
.Loading("Starting Claude Code...")
// Terminal with event handlers
new Terminal()
.HandleData(data => Console.WriteLine($"User typed: {data}"))
.HandleResize((cols, rows) => Console.WriteLine($"Resized: {cols}x{rows}"))
Props
| Prop | Type | Default | Description |
|---|---|---|---|
Cols |
int? |
null |
Fixed column count (auto-fit if not set) |
Rows |
int? |
null |
Fixed row count (auto-fit if not set) |
FontSize |
int |
14 |
Font size in pixels |
FontFamily |
string |
"Menlo, Monaco, 'Courier New', monospace" |
Font family |
LineHeight |
double |
1.0 |
Line height multiplier |
CursorBlink |
bool |
true |
Enable cursor blinking |
CursorStyle |
CursorStyle |
Block |
Cursor style (Block, Underline, Bar) |
Scrollback |
int |
1000 |
Lines to keep in scrollback buffer |
Theme |
TerminalTheme? |
Dark theme | Terminal color theme |
InitialContent |
string? |
null |
Initial content to display |
AutoFocus |
bool |
true |
Automatically focus the terminal on mount so it receives keyboard input |
Loading |
bool |
false |
Show a loading overlay (spinner + text) until the first stream data arrives |
LoadingText |
string? |
"Loading..." |
Text shown in the loading overlay |
Events
| Event | Args | Description |
|---|---|---|
OnData |
string |
Fired when user types in the terminal |
OnResize |
int cols, int rows |
Fired when terminal dimensions change |
OnTitleChange |
string |
Fired when terminal title changes (via OSC sequences) |
Themes
Built-in themes are available:
// Dark theme (VS Code-like)
new Terminal().DarkTheme()
// Light theme
new Terminal().LightTheme()
// Custom theme
new Terminal().Theme(new TerminalTheme
{
Background = "#000000",
Foreground = "#00ff00",
Cursor = "#00ff00",
// ... other colors
})
TerminalTheme Properties
All color properties accept CSS color strings (hex, rgb, rgba):
Background,Foreground,Cursor,CursorAccent,SelectionBlack,Red,Green,Yellow,Blue,Magenta,Cyan,WhiteBrightBlack,BrightRed,BrightGreen,BrightYellow,BrightBlue,BrightMagenta,BrightCyan,BrightWhite
Development
Building
Install frontend dependencies:
cd frontend npm installBuild the frontend:
npm run buildBuild the project from the root folder:
dotnet build
Running Samples
cd .samples
dotnet run
The sample server uses an app shell with multiple demo apps (in .samples/Apps/):
- Shell — an interactive system shell (
cmdon Windows,bashotherwise) - Hello Console — runs the Spectre.Console demo app from
.console/HelloApp - Claude Code — runs the
claudeCLI in the terminal (requires Claude Code to be installed and onPATH)
Creating New Widgets
See CLAUDE.md for detailed instructions on creating new external widgets.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net10.0 is compatible. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net10.0
- Ivy (>= 1.3.8)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories (1)
Showing the top 1 popular GitHub repositories that depend on Ivy.Widgets.Xterm:
| Repository | Stars |
|---|---|
|
Ivy-Interactive/Ivy-Tendril
Open-source software factory for enterprise-grade software
|
| Version | Downloads | Last Updated |
|---|---|---|
| 1.3.21 | 36 | 8/18/2026 |
| 1.3.20 | 93 | 8/13/2026 |
| 1.3.17 | 154 | 8/2/2026 |
| 1.3.16 | 438 | 7/28/2026 |
| 1.3.15 | 151 | 7/26/2026 |
| 1.3.13 | 135 | 7/25/2026 |
| 1.3.12 | 114 | 7/23/2026 |
| 1.3.11 | 103 | 7/23/2026 |
| 1.3.10 | 107 | 7/18/2026 |
| 1.3.9 | 106 | 7/14/2026 |
| 1.3.8 | 191 | 7/10/2026 |
| 1.3.7 | 110 | 7/10/2026 |
| 1.3.6 | 124 | 7/3/2026 |
| 1.3.5 | 137 | 7/3/2026 |
| 1.3.4 | 144 | 7/2/2026 |
| 1.3.3 | 115 | 7/2/2026 |
| 1.3.2 | 105 | 7/2/2026 |
| 1.3.1 | 161 | 6/29/2026 |
| 1.3.0 | 123 | 6/29/2026 |
| 1.2.72 | 137 | 6/27/2026 |