ConnectOnionConnectOnion
DocsTUIProviders

Autocomplete Providers

Data providers for autocomplete in Input and CommandPalette

Quick Start

main.py
1from connectonion.tui import Input, FileProvider, StaticProvider 2 3# File autocomplete 4text = Input(triggers={"@": FileProvider()}).run() 5 6# Command autocomplete 7commands = StaticProvider([ 8 ("/today", "/today", "Daily briefing"), 9 ("/inbox", "/inbox", "Show emails"), 10]) 11text = Input(triggers={"/": commands}).run()

StaticProvider

Provider for static list of items:

Simple (display, value)

main.py
1from connectonion.tui import StaticProvider 2 3provider = StaticProvider([ 4 ("/today", "/today"), 5 ("/inbox", "/inbox"), 6])

With Descriptions

main.py
1provider = StaticProvider([ 2 ("/today", "/today", "Daily email briefing"), 3 ("/inbox", "/inbox", "Show recent emails"), 4])

With Icons

main.py
1provider = StaticProvider([ 2 ("/today", "/today", "Daily briefing", "📅"), 3 ("/inbox", "/inbox", "Show emails", "📥"), 4])

FileProvider

Provider for filesystem autocomplete:

main.py
1from connectonion.tui import FileProvider 2 3# Default: current directory 4provider = FileProvider() 5 6# Custom root 7provider = FileProvider(root="src/") 8 9# Results include: 10# - Folders with 📁 icon 11# - Files with type-specific icons 12# - Fuzzy matched against query

Custom Provider

Implement the Provider protocol:

main.py
1from connectonion.tui import DropdownItem 2 3class MyProvider: 4 def search(self, query: str) -> list[DropdownItem]: 5 # Return matching items 6 return [ 7 DropdownItem(display="Result", value="result"), 8 ]

Provider Protocol

main.py
1class Provider(Protocol): 2 def search(self, query: str) -> list[DropdownItem]: 3 ...

Returns list of DropdownItem or tuples (display, value, score, positions).

Built-in Providers

FileProvider

Browse filesystem with type-specific icons

StaticProvider

Static list of options with optional metadata

Related