textual 6.4.0


pip install textual

  Latest version

Released: Oct 22, 2025


Meta
Author: Will McGugan
Requires Python: >=3.9,<4.0

Classifiers

Development Status
  • 5 - Production/Stable

Environment
  • Console

Intended Audience
  • Developers

License
  • OSI Approved :: MIT License

Operating System
  • MacOS
  • Microsoft :: Windows :: Windows 10
  • Microsoft :: Windows :: Windows 11
  • POSIX :: Linux

Programming Language
  • Python :: 3
  • Python :: 3.9
  • Python :: 3.10
  • Python :: 3.11
  • Python :: 3.12
  • Python :: 3.13
  • Python :: 3.14

Typing
  • Typed

Discord Supported Python Versions PyPI version OS support

textual-splash

Textual

clock

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.

"""
An App to show the current time.
"""

from datetime import datetime

from textual.app import App, ComposeResult
from textual.widgets import Digits


class ClockApp(App):
    CSS = """
    Screen { align: center middle; }
    Digits { width: auto; }
    """

    def compose(self) -> ComposeResult:
        yield Digits("")

    def on_ready(self) -> None:
        self.update_clock()
        self.set_interval(1, self.update_clock)

    def update_clock(self) -> None:
        clock = datetime.now().time()
        self.query_one(Digits).update(f"{clock:%T}")


if __name__ == "__main__":
    app = ClockApp()
    app.run()

[!TIP] Textual is an asynchronous framework under the hood. Which means you can integrate your apps with async libraries — if you want to. If you don't want or need to use async, Textual won't force it on you.

Widgets

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.

buttons

tree

datatables

inputs

listview

textarea

Installing

Install Textual via pip:

pip install textual textual-dev

See getting started for details.

Demo

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

Dev Console

devtools

How do you debug an app in the terminal that is also running in the terminal?

The textual-dev package supplies a dev console that connects to your application from another terminal. In addition to system messages and events, your logged messages and print statements will appear in the dev console.

See the guide for other helpful tools provided by the textual-dev package.

Command Palette

Textual apps have a fuzzy search command palette. Hit ctrl+p to open the command palette.

It is easy to extend the command palette with custom commands for your application.

Command Palette

Textual ❤️ Web

textual-serve

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 into a connected device. No desktop required!

Join us on Discord

Join the Textual developers and community on our Discord Server.

6.4.0 Oct 22, 2025
6.3.0 Oct 11, 2025
6.2.1 Oct 01, 2025
6.2.0 Sep 30, 2025
6.1.0 Sep 02, 2025
6.0.0 Aug 31, 2025
5.3.0 Aug 07, 2025
5.2.0 Aug 01, 2025
5.1.1 Jul 31, 2025
5.1.0 Jul 31, 2025
5.0.1 Jul 25, 2025
5.0.0 Jul 25, 2025
4.1.0 Jul 25, 2025
4.0.0 Jul 12, 2025
3.7.1 Jul 09, 2025
3.7.0 Jul 07, 2025
3.6.0 Jul 06, 2025
3.5.0 Jun 20, 2025
3.4.0 Jun 14, 2025
3.3.0 Jun 01, 2025
3.2.0 May 02, 2025
3.1.1 Apr 22, 2025
3.1.0 Apr 12, 2025
3.0.1 Apr 01, 2025
3.0.0 Mar 27, 2025
2.1.2 Feb 26, 2025
2.1.1 Feb 22, 2025
2.1.0 Feb 19, 2025
2.0.4 Feb 17, 2025
2.0.3 Feb 16, 2025
2.0.2 Feb 16, 2025
2.0.1 Feb 16, 2025
2.0.0 Feb 16, 2025
1.0.0 Dec 12, 2024
0.89.1 Dec 05, 2024
0.89.0 Dec 05, 2024
0.88.1 Nov 30, 2024
0.88.0 Nov 29, 2024
0.87.1 Nov 24, 2024
0.87.0 Nov 24, 2024
0.86.3 Nov 19, 2024
0.86.2 Nov 18, 2024
0.86.1 Nov 16, 2024
0.86.0 Nov 16, 2024
0.85.2 Nov 02, 2024
0.85.1 Oct 26, 2024
0.85.0 Oct 25, 2024
0.84.0 Oct 22, 2024
0.83.0 Oct 10, 2024
0.82.0 Oct 03, 2024
0.81.0 Sep 25, 2024
0.80.1 Sep 24, 2024
0.80.0 Sep 23, 2024
0.79.1 Aug 31, 2024
0.79.0 Aug 30, 2024
0.78.0 Aug 27, 2024
0.77.0 Aug 22, 2024
0.76.0 Aug 09, 2024
0.75.1 Aug 02, 2024
0.75.0 Aug 01, 2024
0.74.0 Jul 25, 2024
0.73.0 Jul 18, 2024
0.72.0 Jul 09, 2024
0.72.0a1 Jul 09, 2024
0.72.0a0 Jul 09, 2024
0.71.0 Jun 29, 2024
0.70.0 Jun 19, 2024
0.69.0 Jun 16, 2024
0.68.0 Jun 14, 2024
0.67.1 Jun 11, 2024
0.67.0 Jun 11, 2024
0.66.0 Jun 08, 2024
0.65.2 Jun 06, 2024
0.65.1 Jun 05, 2024
0.65.0 Jun 05, 2024
0.64.0 Jun 03, 2024
0.63.6 May 29, 2024
0.63.5 May 28, 2024
0.63.4 May 26, 2024
0.63.3 May 24, 2024
0.63.2 May 23, 2024
0.63.1 May 22, 2024
0.63.0 May 22, 2024
0.62.0 May 20, 2024
0.61.1 May 19, 2024
0.61.0 May 18, 2024
0.60.1 May 15, 2024
0.60.0 May 14, 2024
0.59.0 May 11, 2024
0.58.1 May 01, 2024
0.58.0 Apr 25, 2024
0.57.1 Apr 20, 2024
0.57.0 Apr 19, 2024
0.56.4 Apr 09, 2024
0.56.3 Apr 08, 2024
0.56.2 Apr 07, 2024
0.56.1 Apr 07, 2024
0.56.0 Apr 06, 2024
0.55.1 Apr 02, 2024
0.55.0 Apr 01, 2024
0.54.0 Mar 26, 2024
0.53.1 Mar 18, 2024
0.53.0 Mar 18, 2024
0.52.1 Feb 20, 2024
0.52.0 Feb 19, 2024
0.51.0 Feb 15, 2024
0.50.1 Feb 09, 2024
0.50.0 Feb 08, 2024
0.49.0 Feb 07, 2024
0.48.2 Feb 02, 2024
0.48.1 Feb 01, 2024
0.48.0 Feb 01, 2024
0.47.1 Jan 05, 2024
0.47.0 Jan 04, 2024
0.46.0 Dec 17, 2023
0.45.1 Dec 12, 2023
0.45.0 Dec 12, 2023
0.44.1 Dec 04, 2023
0.44.0 Dec 01, 2023
0.43.2 Nov 29, 2023
0.43.1 Nov 29, 2023
0.43.0 Nov 28, 2023
0.42.0 Nov 22, 2023
0.41.0 Oct 31, 2023
0.40.0 Oct 11, 2023
0.39.0 Oct 10, 2023
0.38.1 Sep 21, 2023
0.38.1a0 Sep 21, 2023
0.38.0 Sep 21, 2023
0.37.1 Sep 16, 2023
0.37.0 Sep 15, 2023
0.36.0 Sep 05, 2023
0.35.1 Aug 27, 2023
0.35.0 Aug 26, 2023
0.35.0a1 Aug 22, 2023
0.34.0 Aug 22, 2023
0.33.0 Aug 15, 2023
0.32.0 Aug 03, 2023
0.31.0 Aug 01, 2023
0.30.0 Jul 17, 2023
0.29.0 Jul 03, 2023
0.29.0a2 Jul 03, 2023
0.29.0a1 Jun 27, 2023
0.28.1 Jun 20, 2023
0.28.0 Jun 19, 2023
0.27.0 Jun 01, 2023
0.26.0 May 20, 2023
0.25.0 May 17, 2023
0.24.1 May 08, 2023
0.24.0 May 08, 2023
0.23.0 May 03, 2023
0.22.3 Apr 28, 2023
0.22.2 Apr 28, 2023
0.22.1 Apr 28, 2023
0.22.0 Apr 27, 2023
0.21.0 Apr 26, 2023
0.20.1 Apr 18, 2023
0.20.0 Apr 18, 2023
0.19.1 Apr 10, 2023
0.19.0 Apr 07, 2023
0.18.0 Apr 04, 2023
0.17.3 Apr 02, 2023
0.17.2 Apr 02, 2023
0.17.1 Mar 30, 2023
0.17.0 Mar 29, 2023
0.16.0 Mar 22, 2023
0.15.1 Mar 14, 2023
0.15.0 Mar 13, 2023
0.14.0 Mar 09, 2023
0.13.0 Mar 02, 2023
0.12.1 Feb 25, 2023
0.12.0 Feb 24, 2023
0.11.1 Feb 17, 2023
0.11.0 Feb 15, 2023
0.10.1 Jan 20, 2023
0.10.0 Jan 19, 2023
0.9.1 Dec 30, 2022
0.9.0 Dec 30, 2022
0.8.2 Dec 28, 2022
0.8.1 Dec 25, 2022
0.8.0 Dec 22, 2022
0.7.0 Dec 17, 2022
0.6.0 Dec 11, 2022
0.5.0 Nov 20, 2022
0.4.0 Nov 08, 2022
0.4.0a3 Nov 07, 2022
0.4.0a1 Nov 07, 2022
0.3.0 Oct 31, 2022
0.2.1 Oct 22, 2022
0.2.0 Oct 22, 2022
0.2.0rc1 Oct 22, 2022
0.2.0b12 Oct 22, 2022
0.2.0b11 Oct 22, 2022
0.2.0b10 Oct 22, 2022
0.2.0b9 Oct 22, 2022
0.2.0b8 Oct 20, 2022
0.2.0b7 Oct 17, 2022
0.2.0b6 Oct 17, 2022
0.2.0b5 Oct 06, 2022
0.2.0b4 Oct 05, 2022
0.2.0b3 Oct 05, 2022
0.2.0b2 Oct 05, 2022
0.2.0b1 Oct 05, 2022
0.1.18 Apr 30, 2022
0.1.17 Mar 10, 2022
0.1.16 Mar 10, 2022
0.1.15 Jan 31, 2022
0.1.14 Jan 09, 2022
0.1.13 Jan 01, 2022
0.1.12 Sep 20, 2021
0.1.11 Sep 12, 2021
0.1.10 Aug 25, 2021
0.1.9 Aug 06, 2021
0.1.8 Jul 17, 2021
0.1.7 Jul 14, 2021
0.1.6 Jul 12, 2021
0.1.5 Jul 05, 2021
0.1.4 Jul 05, 2021
0.1.3 Jul 05, 2021
0.1.2 Jun 24, 2021
0.1.1 Jun 19, 2021
0.1.0 Jun 03, 2021

Wheel compatibility matrix

Platform Python 3
any

Files in release

Extras:
Dependencies:
markdown-it-py[linkify] (>=2.1.0)
mdit-py-plugins
platformdirs (<5,>=3.6.0)
pygments (<3.0.0,>=2.19.2)
rich (>=14.2.0)
typing-extensions (<5.0.0,>=4.4.0)