ConnectOnionConnectOnion
DocsTUI Components

TUI Components

Terminal UI components from connectonion.tui

Quick Start

main.py
1from connectonion.tui import pick, Input, StatusBar 2from rich.console import Console 3 4console = Console() 5 6# Single-select menu 7choice = pick("Select model:", ["gpt-4", "claude-3", "gemini-pro"]) 8 9# Text input with file autocomplete 10from connectonion.tui import FileProvider 11text = Input(triggers={"@": FileProvider()}).run() 12 13# Status bar 14status = StatusBar([ 15 ("model", "gpt-4", "magenta"), 16 ("tokens", "1.2k", "green"), 17]) 18console.print(status.render())

Architecture

User Input → TUI Component → Terminal (Rich) → User
     ↑                              ↓
     └──── Keyboard Events ────────┘

Components use Rich for terminal rendering, raw mode for keyboard capture, and ANSI codes for styling.

Quick Reference

ComponentPurposeImport
InputText input with autocompletefrom connectonion.tui import Input
pickSingle-select menufrom connectonion.tui import pick
DropdownDropdown menusfrom connectonion.tui import Dropdown
StatusBarPowerline-style statusfrom connectonion.tui import StatusBar
FooterFooter with help textfrom connectonion.tui import Footer
DividerVisual dividersfrom connectonion.tui import Divider
fuzzyFuzzy matchingfrom connectonion.tui import fuzzy_match
keysKeyboard inputfrom connectonion.tui import getch
providersAutocomplete data sourcesfrom connectonion.tui import FileProvider