textual-autocomplete
Easily add autocomplete dropdowns to your Textual apps.
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-autocompleteuv
uv add textual-autocompletepoetry
poetry add textual-autocompleteInstalling 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
Tags
More Terminals packages
Wraps any iterable to display a real-time…
copyleft · top 100 on PyPI
richRich renders styled text, tables, progress…
permissive · top 100 on PyPI
coloramaColorama makes ANSI escape sequences for…
permissive · top 100 on PyPI
wcwidthMeasures the displayed width of Unicode strings…
permissive · top 1,000 on PyPI
ptyprocessRun a subprocess in a pseudo terminal (pty) and…
permissive · top 1,000 on PyPI
pexpectPexpect spawns and controls interactive console…
permissive · top 1,000 on PyPI
textualTextual is a Python framework for building…
permissive · top 100 on PyPI
textual-universal-directorytreeProvides a DirectoryTree widget for Textual…
permissive · top 15,000 on PyPI
trogonTrogon auto-generates a terminal user interface…
permissive · top 15,000 on PyPI
textual-plotextWraps the Plotext plotting library as a Textual…
permissive · top 15,000 on PyPI
textual-imageRenders images directly in terminal emulators…
copyleft · top 15,000 on PyPI
pickpick provides a Python library to create…
permissive · top 15,000 on PyPI
textual-devtextual-dev provides a command-line tool for…
permissive · top 15,000 on PyPI
textual-serveRuns any Textual terminal application in a web…
permissive · top 5,000 on PyPI
django-select2Provides custom autocomplete form fields for…
permissive · top 15,000 on PyPI
ascii-colorsUnified terminal UI library providing colored…
permissive · top 15,000 on PyPI