vtcode-tui
Reusable terminal UI primitives and session APIs for Rust CLI/TUI applications.
Status
vtcode-tui is self-contained and can be used without vtcode-core or vtcode-config.
The crate focuses on terminal UI primitives and session rendering only (no auth/provider logic).
The full implementation lives in src/core_tui/.
The public API is split into:
vtcode_tui::core— reusable TUI foundation (core session + widgets)vtcode_tui::app— VT Code–specific overlays and behaviors
For integrations, use the app-layer options API:
vtcode_tui::app::SessionOptionsvtcode_tui::app::SessionSurfacevtcode_tui::app::KeyboardProtocolSettingsvtcode_tui::app::spawn_session_with_optionsvtcode_tui::app::spawn_session_with_host
Host-injected customization in SessionOptions:
slash_commands: command palette metadataappearance: optional UI appearance override (SessionAppearanceConfig)app_name: terminal title/app branding textnon_interactive_hint: custom message when no interactive TTY is available
Quick Start
use ;
#
Public API Highlights
- Core layer:
vtcode_tui::core::{CoreSession, CoreHandle, CoreCommand, CoreEvent} - App layer:
vtcode_tui::app::{InlineSession, InlineHandle, InlineCommand, InlineEvent} - Session lifecycle:
vtcode_tui::app::{spawn_session_with_options, spawn_session_with_host} - UI models: plans, diff previews, modal/list/wizard selection types
- Theme/style helpers:
vtcode_tui::core::{theme_from_styles, convert_style}
Examples
examples/minimal_session.rsexamples/custom_theme_and_widgets.rsexamples/host_adapter_integration.rs