Runtime And Screen Options
Tessera separates application-loop configuration from terminal-facing screen configuration.
That split is easy to miss in the current docs, so treat it as a core concept:
TesseraRuntimeOptions- controls the runtime loop, input behavior, resize handling, and themes
ScreenOptions- controls terminal-facing behavior such as alternate screen, paste, mouse tracking, and title
Typical configured startup
csharp.cs
var app = TesseraApplication.CreateBuilder()
.UseApp<MyApp>()
.ConfigureRuntime(static runtime =>
{
runtime.MaxFps = 60;
runtime.PointerActivationPolicy = PointerActivationPolicy.SingleClick;
runtime.Theme = TesseraThemes.Catppuccin(CatppuccinVariant.Mocha);
runtime.Screen = new ScreenOptions
{
AltScreen = true,
WindowTitle = "MyApp",
EnableFocusReporting = true,
EnableBracketedPaste = true,
MouseTracking = MouseTrackingMode.AllMotion
};
})
.Build();Use TesseraRuntimeOptions for
MaxFpsAdaptiveFramePacingDisableRendererDisableInputUseConsoleKeyEventsCatchEffectExceptionsEscapeTimeoutPointerActivationPolicyDoubleClickTimeoutDoubleClickSlopEnableResizeSignalsResizePollIntervalMinResizePollIntervalThemeThemeOverridesScreen
Use ScreenOptions for
AltScreenEnableBracketedPasteEnableFocusReportingEnableSynchronizedUpdatesMouseTrackingCursorColorForegroundColorBackgroundColorWindowTitleFontSpecFontFamilyFontSizeIterm2Profile
Defaults worth knowing
PointerActivationPolicydefaults toDoubleClick- the first click still transfers focus
- set
SingleClickfor pointer-friendly product apps
MaxFpsdefaults to60AdaptiveFramePacingdefaults totrue- resize monitoring is enabled by default
Recommended starting profile
Most product-like apps should begin with:
PointerActivationPolicy.SingleClickAltScreen = trueWindowTitlesetEnableFocusReporting = trueEnableBracketedPaste = trueMouseTracking = MouseTrackingMode.AllMotion
That is the profile used by the starter examples.
Theme configuration lives here
Global theme selection belongs on TesseraRuntimeOptions:
csharp.cs
runtime.Theme = TesseraThemes.Catppuccin(CatppuccinVariant.Mocha);
runtime.ThemeOverrides = myOverrides;Use theme-system for the token and override model itself.
Common mistakes
- setting pointer behavior on
ScreenOptions- pointer activation policy belongs on
TesseraRuntimeOptions
- pointer activation policy belongs on
- expecting
ScreenOptionsto control app state or message flow- it only controls terminal/screen behavior
- skipping
AltScreenand then thinking Tessera is “breaking” the terminal- decide explicitly whether you want alternate-screen behavior
Next step
- theming and overrides: theme-system
- terminal caveats: terminal-font-capability-matrix
- problem symptoms and fixes: troubleshooting