What tui provides today. It is a library with one dependency (wcwidth); every capability below is importable from the package.
Engine
Diffs frames and repaints only changed lines with synchronized output — no flicker.
No alternate screen; scrollback and history are preserved.
Anchored, sized, margined floating panels with focus capture.
~30 fps loop with resize detection and tick callbacks.
A CURSOR_MARKER APC sequence positions the real terminal cursor for focused inputs.
Input
xterm + Kitty keyboard protocol, press/repeat/release, modifiers, function keys, backtab.
Scoped KeybindingManager mapping key events to named actions.
fuzzy_match / fuzzy_filter for pickers and command palettes.
AutocompleteEngine with filesystem and slash-command providers.
Components
Multi-line editor with undo/redo (UndoStack) and an emacs kill-ring.
Markdown rendering and a unified-diff component for tool output.
Kitty / iTerm2 protocols with pure-Python PNG/JPEG/GIF/WebP sizing.
SelectList and SettingsList for menus and configuration UIs.
wcwidth-based width handling for CJK and emoji.