skillfed

textual-autocomplete

Easily add autocomplete dropdowns to your Textual apps.

textual-autocomplete v4.0.6 719.3K downloads/30d#5,241 on PyPI
Permissive license MIT AGING released

What it is and what it does

textual-autocomplete is a dropdown widget for Textual terminal applications that attaches to Input widgets and displays matching suggestions as the user types. It implements fuzzy matching so typos don't break completion, supports arrow-key and Tab navigation, and can be styled via Textual CSS. Candidates can be supplied as a static list, as DropdownItem objects with metadata columns and rich markup, or via a callback function that runs on each keystroke to generate dynamic suggestions.

The package includes a specialized PathAutoComplete widget for filesystem path completion with directory caching. It's designed to integrate seamlessly into Textual apps with minimal setup—typically just instantiating AutoComplete with a target input widget and a candidate list. The library is typed, supports Python 3.9 through 3.13, and carries no known security vulnerabilities.

Use it for:

  • Add command or option name completion to terminal CLI tools built with Textual.
  • Build a file browser or path selector with filesystem autocomplete in a terminal UI.
  • Create a search interface where users can filter from a large list of items with fuzzy matching.
  • Display language, color, or category names with emoji or styled metadata columns as users type.
  • Implement dynamic suggestions from a database or API by supplying a callback function.

Worth the install?

AI-flagged interpretation of the facts on this page — verify before relying

Adds fuzzy-matching autocomplete dropdowns to Textual terminal UI input widgets, with keyboard navigation, styling options, and support for dynamic candidate lists or filesystem paths.

Yes, if you're building a Textual terminal application and need autocomplete on input fields. The package is stable, has low install friction, carries no vulnerabilities, and the MIT license poses no restrictions. The aging maintenance status (no release in 324 days) is a minor concern for long-term support, but the feature set is complete and the library is marked Production/Stable.

Install

textual-autocomplete on PyPI

pip

pip install textual-autocomplete

uv

uv add textual-autocomplete

poetry

poetry add textual-autocomplete

Installing textual-autocomplete

Before you install

Low friction: pure Python wheel with only two runtime dependencies (textual and typing-extensions). Maintenance status is aging—last release was 324 days ago—but the package is marked Production/Stable and carries no known vulnerabilities.

License in practice

MIT license (permissive): you can use, modify, and distribute this package freely in commercial and open-source projects with minimal restrictions.

Quickstart

from textual.app import App, ComposeResult
from textual.widgets import Input
from textual_autocomplete import AutoComplete

class MyApp(App):
    def compose(self) -> ComposeResult:
        text_input = Input(placeholder="Type...")
        yield text_input
        yield AutoComplete(text_input, candidates=["Red", "Green", "Blue"])

app = MyApp()
app.run()

Requires Textual 2.0 or above; Python 3.9 or later.

Verify before relying

  • Whether the callback-based dynamic candidate system performs acceptably with large datasets or high-frequency updates.
  • Real-world performance characteristics of fuzzy matching on very long candidate lists.

Package facts

License MIT (permissive)
Python support supports the current Python release (>=3.9.0)
Install friction low — pure-Python wheel
Runtime dependencies 2 — textual, typing-extensions
Maintenance aging — 324 days since the last release
First released
Downloads 719,301/month — #5,241 on PyPI (30-day window, as of 2026-08-14)
Known vulnerabilities none known (OSV.dev, checked 2026-08-14)

Evidence: textual_autocomplete-4.0.6-py3-none-any.whl

Development Status :: 5 - Production/StableEnvironment :: ConsoleIntended Audience :: DevelopersLicense :: OSI Approved :: MIT LicenseProgramming Language :: Python :: 3.10Programming Language :: Python :: 3.11Programming Language :: Python :: 3.12Programming Language :: Python :: 3.13Programming Language :: Python :: 3.9Typing :: Typed

Tags

textual input autocompleteterminal ui dropdown completionfuzzy matching text inputtextual widget autocompletekeyboard-navigable suggestionsterminal autocomplete librarypath completion terminal
terminal-uitextual-widgetfuzzy-search

More Terminals packages