Repolode
Textualize

Textualize/textual

A Python framework for building terminal and web user interfaces with a simple, component-based API.

Stars
37,497
Forks
1,366
Open issues
369
Last commit
12 days ago

What is it?

Textual is a Python framework for building interactive user interfaces. The same app can run inside a terminal or be served to a web browser, so developers write one codebase instead of separate terminal and web front ends.

Apps are built from a library of widgets such as buttons, trees, data tables, inputs and text areas, arranged with a flexible layout system and styled with CSS-like rules. Predefined themes give apps a reasonable look without extra work. The framework is asynchronous internally but does not require async code from the developer.

Textual also ships tooling around the core library. The textual-dev package provides a dev console that shows logs and print output from a running app in a separate terminal, and the framework includes a command palette and a testing framework for maintaining apps over time. Apps can be served with the textual serve command.

Key features

  • 01Build terminal and web apps from the same Python code.
  • 02Includes a library of widgets such as buttons, data tables, trees and text areas.
  • 03Flexible layout system with CSS-like styling and predefined themes.
  • 04Dev console shows logs and print output from a running app in another terminal.
  • 05Built-in fuzzy-search command palette that can be extended with custom commands.
  • 06Testing framework for keeping apps maintainable.

Use cases

  • Building internal command-line tools that need a richer interactive interface than plain prompts.
  • Creating terminal dashboards or monitoring tools with tables and live-updating widgets.
  • Sharing a Python utility as a web app with textual serve, without writing a separate front end.

Quick start

  1. 1

    Install Textual with pip

    pip install textual textual-dev
  2. 2

    Run the built-in demo to see what Textual can do

    python -m textual

Topics

FAQ

What is textual?
A Python framework for building terminal and web user interfaces with a simple, component-based API. Textual is a Python framework for building interactive user interfaces. The same app can run inside a terminal or be served to a web browser, so developers write one codebase instead of separate terminal and web front ends.
Is textual free to use? What license does it have?
textual is open source under the MIT license. Check the license terms before using it in commercial products.
Is textual still maintained?
Actively maintained. The last commit to textual was on Oct 9, 2026.
What can I use textual for?
Building internal command-line tools that need a richer interactive interface than plain prompts. Creating terminal dashboards or monitoring tools with tables and live-updating widgets. Sharing a Python utility as a web app with textual serve, without writing a separate front end.
How do I install textual?
Install Textual with pip: pip install textual textual-dev Run the built-in demo to see what Textual can do: python -m textual
Where can I get textual?
The source code and installation instructions are on GitHub: https://github.com/Textualize/textual

Summary generated by AI from the project's README. GitHub stats refresh daily.

Related projects