DocsTUI Components
TUI Components
Terminal UI components from connectonion.tui
Quick Start
main.py
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.
Input Components
Interactive input elements
Chat
ChatFull chat interface with agent integration
Chat(agent=agent).run()pick
pickSingle-select menu with keyboard navigation
pick("Select model", ["gpt-4", "claude-3"])Input
InputSmart text input with trigger-based autocomplete
Input(triggers={"@": FileProvider()}).run()Dropdown
DropdownSelection list component for autocomplete menus
Dropdown(items, max_visible=5)Display Components
Visual layout elements
Utilities
Helper functions and providers
Fuzzy Matching
fuzzy_matchFuzzy matching utilities for autocomplete
fuzzy_match("gp", "gpt-4")Keyboard Input
getch / read_keyLow-level keyboard input primitives
key = read_key() # "up", "down", etc.Autocomplete Providers
ProvidersData providers for autocomplete (FileProvider, StaticProvider)
FileProvider(root="src/")Quick Reference
| Component | Purpose | Import |
|---|---|---|
| Chat | Full chat interface with agent | from connectonion.tui import Chat |
| Input | Text input with autocomplete | from connectonion.tui import Input |
| pick | Single-select menu | from connectonion.tui import pick |
| Dropdown | Dropdown menus | from connectonion.tui import Dropdown |
| StatusBar | Powerline-style status | from connectonion.tui import StatusBar |
| Footer | Footer with help text | from connectonion.tui import Footer |
| Divider | Visual dividers | from connectonion.tui import Divider |
| fuzzy | Fuzzy matching | from connectonion.tui import fuzzy_match |
| keys | Keyboard input | from connectonion.tui import getch |
| providers | Autocomplete data sources | from connectonion.tui import FileProvider |
