ConnectOnionConnectOnion
DocsTUIInput

Input

Smart text input with trigger-based autocomplete

Quick Start

main.py
1from connectonion.tui import Input 2 3# Simple input 4text = Input().run() 5 6# With file autocomplete 7from connectonion.tui import FileProvider 8text = Input(triggers={"@": FileProvider()}).run()

Features

Trigger Autocomplete

Type a trigger character to activate autocomplete from a provider:

main.py
1from connectonion.tui import Input, FileProvider, StaticProvider 2 3# @ triggers file browser 4text = Input(triggers={"@": FileProvider()}).run() 5# User types: "edit @src/" → shows file dropdown 6 7# / triggers command palette 8commands = StaticProvider([("/today", "/today"), ("/inbox", "/inbox")]) 9text = Input(triggers={"/": commands}).run()

Hints and Tips

main.py
1text = Input( 2 hints=["/ commands", "@ files", "Enter submit"], 3 tips=["Try /today for briefing", "Join Discord!"], 4 divider=True, 5).run()

API

main.py
1Input( 2 prompt: str = None, # Custom prompt text 3 triggers: dict = None, # {char: Provider} for autocomplete 4 hints: list[str] = None, # Always-visible hints 5 tips: list[str] = None, # Rotating tips 6 divider: bool = False, # Add horizontal dividers 7 max_visible: int = 8, # Max dropdown items 8 console: Console = None, 9 style: str = "modern", # "modern", "minimal", "classic" 10).run() -> str

Styles

modern

Magenta prompt, clean design

minimal

Bare bones, no decorations

classic

Traditional input style

Related