Textualize/textual

Pythontextual.textualize.io

The lean application framework for Python. Build sophisticated user interfaces with a simple Python API. Run your apps in the terminal and a web browser.

terminalpythontuirichcliframework
스타 성장
스타
37.2k
포크
1.3k
주간 성장
+64
이슈
238
10k20k30k
2022년 1월2023년 7월2025년 2월2026년 9월
아티팩트PyPI
README

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.

관련 저장소
ohmyzsh/ohmyzsh

🙃 A delightful community-driven (with 2,500+ contributors) framework for managing your zsh configuration. Includes 300+ optional plugins (rails, git, macOS, hub, docker, homebrew, node, php, python, etc), 140+ themes to spice up your morning, and an auto-update tool that makes it easy to keep up with the latest updates from the community.

ShellcliMIT Licenseshellzsh-configuration
ohmyz.sh
189.6k26.6k
microsoft/terminal

The new Windows Terminal and the original Windows console host, all in the same place!

C++cliMIT Licenseconsoleterminal
104.8k9.6k
jesseduffield/lazygit

simple terminal UI for git commands

GoGo ModulescliMIT Licensecligit
82.1k3k
Eugeny/tabby

A terminal for a more modern age

TypeScriptnpmcliMIT Licenseterminal-emulatorsterminal
tabby.sh
74.4k4.2k
alacritty/alacritty

A cross-platform, OpenGL terminal emulator.

Rustcrates.iocliApache License 2.0terminal-emulatorsopengl
alacritty.org
65.7k3.6k
warpdotdev/warp

Warp is an agentic development environment, born out of the terminal.

Rustcrates.iocliGNU Affero General Public License v3.0rustlinux
warp.dev
64.9k5.5k
warpdotdev/Warp

Warp is a modern, Rust-based terminal with AI built in so you and your team can build great software, faster.

cliOtherrustlinux
warp.dev
64.7k5.5k
stablyai/orca

Orca is the ADE for working with a fleet of parallel agents. Run any coding agent with your own subscription. Available on desktop, mobile and remote runtime.

TypeScriptnpmcliMIT Licenseclaude-codecodex
onorca.dev
64.4k4.3k
tldr-pages/tldr

Collaborative cheatsheets for console commands 📚.

MarkdowntutorialOthershellman-page
tldr.sh
63.6k5.4k
termux/termux-app

Termux - a terminal emulator application for Android OS extendible by variety of packages.

JavaMavencliOtherandroidterminal
f-droid.org/en/packages/com.termux
60.5k7.5k
sharkdp/bat

A cat(1) clone with wings.

Rustcrates.iocliApache License 2.0command-linetool
60.4k1.6k
Textualize/rich

Rich is a Python library for rich text and beautiful formatting in the terminal.

PythonPyPIcliMIT Licensepythonpython3
rich.readthedocs.io/en/latest/
57.3k2.3k