textual
Modern Text User Interface framework
Install
textual on PyPI
pip
pip install textualuv
uv add textualpoetry
poetry add textualPackage facts
| License | MIT (permissive) |
| Python support | supports the current Python release (<4.0,>=3.9) |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | 6 — markdown-it-py, mdit-py-plugins, platformdirs, pygments, rich, typing-extensions |
| Maintenance | actively maintained — 44 days since the last release |
| Last repo commit | |
| First released | |
| Popularity | one of the 100 most-downloaded packages on PyPI (30-day window, as of 2026-08-13) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-13) |
Evidence: textual-8.2.8-py3-none-any.whl
About textual
from the package's own PyPI description — quoted content, verbatim
Discord (image) Supported Python Versions (image) PyPI version (image) OS support (image)
Textual
<img align="right" width="250" alt="clock" src="https://github.com/user-attachments/assets/63e839c3-5b8e-478d-b78e-cf7647eb85e8" />
Build cross-platform user interfaces with a simple Python API. Run your apps in the terminal or a web browser.
Textual's API combines modern Python with the best of developments from the web world, for a lean app development experience. De-coupled components and an advanced testing framework ensure you can maintain your app for the long-term.
Want some more examples? See the examples directory.
```python """ An App to show the current time. """
from...
Read as markdown · JSON record · Source repository · Homepage · Docs
AI interpretation — verify before relying
AI-generated interpretation of the package facts above; every digit, version, license, or vulnerability id it cites is grounded in the facts already shown on this page
Textual is a framework for building cross-platform terminal and web user interfaces in Python with a modern API, widgets, and layout system.
Low friction install with six well-maintained runtime dependencies including rich, pygments, and platformdirs. Active project with recent releases (44 days since last) and strong community signal. Supports Python 3.9–3.14.
MIT license permits commercial and private use with minimal restrictions; you must include a copy of the license and copyright notice in distributions.
Usage
pip install textual
from textual.app import App, ComposeResult
from textual.widgets import Static
class HelloApp(App):
def compose(self) -> ComposeResult:
yield Static("Hello, Textual!")
if __name__ == "__main__":
app = HelloApp()
app.run()
Requires Python 3.9 or later; terminal or web browser environment to run the app.
Verdict: Textual is a mature, actively maintained framework (Production/Stable status, no known vulnerabilities) with low install friction and permissive licensing. Its top-100 popularity and rich widget library make it a solid choice for terminal and web UI development in Python.
Needs verification
- Whether the six runtime dependencies (markdown-it-py, mdit-py-plugins, platformdirs, pygments, rich, typing-extensions) have their own known vulnerabilities or maintenance concerns.
- Performance characteristics and resource overhead when deploying to resource-constrained environments.
Similar packages
permissive · top 1,000 on PyPI
rich-toolkitpermissive · top 1,000 on PyPI
litellmpermissive · top 100 on PyPI
holidayspermissive · top 1,000 on PyPI
ruamel.yaml.clibpermissive · top 1,000 on PyPI
plotlypermissive · top 1,000 on PyPI
fastmcp-slimpermissive · top 1,000 on PyPI
ipywidgetspermissive · top 1,000 on PyPI
fastmcppermissive · top 1,000 on PyPI
pillowpermissive · top 100 on PyPI