Skip to Content
ReferenceEnvironment variables

Environment Variables

FrankenTUI honors a small set of environment variables that control the harness, runtime, deterministic E2E runs, telemetry export, and terminal- capability detection. This is the canonical list.

Env vars are checked at startup or at the point of use (never polled). Unless noted otherwise, unset is equivalent to the default.

Harness (ftui-harness / demo showcase)

These vars configure the reference harness and the demo showcase.

VarDefaultValuesPurposeReferenced by
FTUI_HARNESS_SCREEN_MODEinlineinline | altWhich screen mode the harness starts inftui-harness, ftui-demo-showcase
FTUI_HARNESS_UI_HEIGHT12integer rowsRows reserved for the pinned UI region (inline mode)ftui-harness, ftui-demo-showcase
FTUI_HARNESS_VIEWview name (e.g. dashboard)Pick a specific demo viewftui-demo-showcase
FTUI_HARNESS_ENABLE_MOUSEfalsetrue | falseEnable mouse captureftui-harness
FTUI_HARNESS_ENABLE_FOCUSfalsetrue | falseEnable focus event reportingftui-harness
FTUI_HARNESS_LOG_LINES25integerNumber of log lines visible above the UI regionftui-harness
FTUI_HARNESS_LOG_MARKUPfalsetrue | falseRender Pango-like markup in log linesftui-harness
FTUI_HARNESS_LOG_FILEpathWrite log output to a file in addition to the UIftui-harness
FTUI_HARNESS_EXIT_AFTER_MS0integer msAuto-exit the harness after N ms (0 disables)ftui-harness

Example:

FTUI_HARNESS_VIEW=dashboard cargo run -p ftui-demo-showcase FTUI_HARNESS_VIEW=visual_effects cargo run -p ftui-demo-showcase

See /demo-showcase/overview for the full screen catalog.

Runtime Rollout

VarDefaultValuesPurposeReferenced by
FTUI_RUNTIME_LANEstructuredlegacy | structured | asupersyncSelect the execution backend (see rollout lanes)ftui-runtime
FTUI_ROLLOUT_POLICYoffoff | shadow | enabledRollout behavior — shadow runs both lanes and comparesftui-runtime

Pair FTUI_ROLLOUT_POLICY=shadow with FTUI_RUNTIME_LANE=asupersync to run the new lane alongside the current one and emit a rollout scorecard.

Deterministic E2E

VarDefaultValuesPurposeReferenced by
E2E_DETERMINISTIC00 | 1Enable deterministic fixtures (fixed seed + stepped virtual clock)ftui-harness, scripts/
E2E_SEED0u64Seed for all PRNGs and simulatorsftui-harness, scripts/
E2E_TIME_STEP_MS16integer msVirtual clock step per frameftui-harness, scripts/

Example:

E2E_DETERMINISTIC=1 E2E_SEED=0 E2E_TIME_STEP_MS=100 ./scripts/e2e_test.sh E2E_DETERMINISTIC=1 E2E_SEED=42 ./scripts/demo_showcase_e2e.sh

See /testing/determinism-fixtures for the full determinism contract.

Telemetry (OpenTelemetry)

VarDefaultValuesPurposeReferenced by
OTEL_EXPORTER_OTLP_ENDPOINTURLOTLP endpoint for spans + eventsftui-runtime/telemetry
OTEL_SERVICE_NAMEftui-runtimestringOverrides the service.name attributeftui-runtime/telemetry
FTUI_TELEMETRY_VERBOSEfalsetrue | falseEnable verbose (soft-redacted) fieldsftui-runtime/telemetry

Only active when the ftui-runtime/telemetry feature is enabled. See /reference/feature-flags and /reference/telemetry-events.

Terminal Probes

Standard vars used by the terminal capabilities probe.

VarDefaultValuesPurposeReferenced by
TERMe.g. xterm-256color, screen-256colorTerminal type (informs color capability guess)ftui-core
COLORTERMtruecolor, 24bit24-bit color advertisementftui-core
NO_COLORany non-emptyDisable color output unconditionallyftui-core
TMUXset by tmuxDetection: running under tmuxftui-core
STYset by GNU screenDetection: running under GNU screenftui-core
ZELLIJset by zellijDetection: running under zellijftui-core
KITTY_WINDOW_IDset by KittyDetection: running under Kittyftui-core

These drive TerminalCapabilities and the inline-mode strategy selector in ADR-001.

GPU / Visual FX

VarDefaultValuesPurposeReferenced by
FTUI_FX_GPU_DISABLE00 | 1Force CPU FX path even when fx-gpu is enabledftui-extras
FTUI_FX_GPU_FORCE_FAIL00 | 1Test hook: simulate GPU init failureftui-extras (tests)

Glyph Policy Overrides

Deterministic glyph selection — applied before rendering.

VarDefaultValuesPurposeReferenced by
FTUI_GLYPH_MODEautounicode | asciiForce overall glyph modeftui-render
FTUI_GLYPH_EMOJIauto0 | 1Enable/disable emoji (ignored in ASCII mode)ftui-render
FTUI_NO_EMOJI0 | 1Legacy alias (1 disables emoji)ftui-render
FTUI_GLYPH_LINE_DRAWINGauto0 | 1Enable/disable Unicode box drawing glyphsftui-render
FTUI_GLYPH_ARROWSauto0 | 1Enable/disable Unicode arrows/symbolsftui-render
FTUI_GLYPH_DOUBLE_WIDTHauto0 | 1Override double-width glyph supportftui-render

Notes:

  • Overrides are deterministic and applied before rendering.
  • FTUI_GLYPH_MODE=ascii forces line drawing, arrows, and emoji off regardless of other flags.
  • If double-width is disabled, emoji defaults off unless explicitly overridden.

Test Profiles

VarDefaultValuesPurposeReferenced by
FTUI_TEST_PROFILEprofile nameSelect a simulated capability profileftui-harness
FTUI_TEST_PROFILE_COMPAREreport | strictCompare profiles in one runftui-harness

Profile names include dumb, screen, tmux, windows-console. Snapshot filenames are suffixed with __<profile> so each profile keeps its own baselines. See /reference/terminal-compatibility for the quirk catalog.

Snapshot Blessing

VarDefaultValuesPurposeReferenced by
BLESS00 | 1Update .txt / .jsonl snapshots instead of comparingftui-harness, CI
BLESS=1 cargo test -p ftui-harness

See /testing/snapshot-tests.

See Also