Build cross-platform user interfaces with a simple Python API.
Run your apps in the terminal or a web browser.
Textual's library of widgets covers everything from buttons, tree controls, data tables, inputs, text areas, and more… Combined with a flexible layout system, you can realize any User Interface you need.
Predefined themes ensure your apps will look good out of the box.
Install Textual via pip:
pip install textual textual-dev
See getting started for details.
Run the following command to see a little of what Textual can do:
python -m textual
Or try the textual demo without installing (requires uv):
uvx --python 3.12 textual-demo
Textual apps are equally at home in the browser as they are the terminal.
Any Textual app may be served with textual serve
— so you can share your creations on the web.
Here's how to serve the demo app:
textual serve "python -m textual"
In addition to serving your apps locally, you can serve apps with Textual-Web.
Textual Web's firewall-busting technology can serve an unlimited number of applications.
Since Textual apps have low system requirements, you can install them anywhere Python also runs. Turning any device in to a connected device. No desktop required!
Head over to the Textual documentation to start building.
Join the Textual developers and community on our Discord Server.