TUIProviders
DocsTUIProviders

Autocomplete Providers

Data providers for autocomplete in Input and CommandPalette

Quick Start

main.py
from connectonion.tui import Input, FileProvider, StaticProvider # File autocomplete text = Input(triggers={"@": FileProvider()}).run() # Command autocomplete commands = StaticProvider([ ("/today", "/today", "Daily briefing"), ("/inbox", "/inbox", "Show emails"), ]) text = Input(triggers={"/": commands}).run()

StaticProvider

Provider for static list of items:

Simple (display, value)

main.py
from connectonion.tui import StaticProvider provider = StaticProvider([ ("/today", "/today"), ("/inbox", "/inbox"), ])

With Descriptions

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

With Icons

main.py
provider = StaticProvider([ ("/today", "/today", "Daily briefing", "๐Ÿ“…"), ("/inbox", "/inbox", "Show emails", "๐Ÿ“ฅ"), ])

FileProvider

Provider for filesystem autocomplete:

main.py
from connectonion.tui import FileProvider # Default: current directory provider = FileProvider() # Custom root provider = FileProvider(root="src/") # Results include: # - Folders with ๐Ÿ“ icon # - Files with type-specific icons # - Fuzzy matched against query

Custom Provider

Implement the Provider protocol:

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

Provider Protocol

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

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

Star us on GitHub

If ConnectOnion saves you time, a โญ goes a long way โ€” and earns you a coffee chat with our founder.