# willmcgugan/textual

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/willmcgugan-textual).**

36,292 stars · 1,222 forks · Python · MIT

## Links

- GitHub: https://github.com/willmcgugan/textual
- Homepage: https://textual.textualize.io/
- awesome-repositories: https://awesome-repositories.com/repository/willmcgugan-textual.md

## Description

Textual is a Python TUI framework and asynchronous UI library used to build interactive text user interfaces. It provides a component-based architecture for creating cross-platform applications that run in both terminal and web browser environments.

The framework distinguishes itself by utilizing a CSS-based layout engine to apply visual styles to widgets and a command palette interface for discovering and executing application functions. It also supports hosting terminal-based interfaces on the web to enable remote access via a standard browser.

The toolkit covers a broad range of capabilities including asynchronous UI programming, widget-based layout composition, and terminal emulation. It includes observability tools for console debugging that allow system messages and events to be captured in a separate terminal instance.

## Tags

### User Interface & Experience

- [Terminal User Interfaces](https://awesome-repositories.com/f/user-interface-experience/terminal-user-interfaces.md) — A comprehensive framework for building, styling, and managing interactive text-based interfaces within a terminal.
- [Component Hierarchies](https://awesome-repositories.com/f/user-interface-experience/component-hierarchies.md) — Organizes the user interface as a tree of nested widgets that propagate styling and layout constraints.
- [Asynchronous Component Libraries](https://awesome-repositories.com/f/user-interface-experience/component-libraries/component-based-ui-libraries/asynchronous-component-libraries.md) — Provides a component-based interface system built on an asynchronous core for non-blocking application execution.
- [Cross-Platform TUI Frameworks](https://awesome-repositories.com/f/user-interface-experience/cross-platform-tui-frameworks.md) — Provides a component-based architecture for creating text-based user interfaces that run in both terminal and web environments. ([source](https://github.com/willmcgugan/textual#readme))
- [Layout Composition Frameworks](https://awesome-repositories.com/f/user-interface-experience/layout-composition-frameworks.md) — Provides a system for nesting and structuring UI components within containers to build complex terminal and web interfaces. ([source](https://github.com/willmcgugan/textual#readme))
- [Terminal UI Frameworks](https://awesome-repositories.com/f/user-interface-experience/python-based-ui-frameworks/terminal-ui-frameworks.md) — A framework for building interactive text user interfaces in terminal and web browser environments using Python.
- [CSS Layout Systems](https://awesome-repositories.com/f/user-interface-experience/styling-theming-systems/css-layout-systems.md) — Uses a CSS-based layout engine to calculate element positions and sizes for terminal widgets.
- [Command Palettes](https://awesome-repositories.com/f/user-interface-experience/command-palettes.md) — Ships a fuzzy-searchable interface for discovering and executing built-in or custom application commands. ([source](https://github.com/willmcgugan/textual#readme))

### Development Tools & Productivity

- [Cross-Platform Terminal Utilities](https://awesome-repositories.com/f/development-tools-productivity/cross-platform-terminal-utilities.md) — Ensures consistent rendering and behavior of sophisticated terminal applications across different operating systems.
- [In-App Debugging Consoles](https://awesome-repositories.com/f/development-tools-productivity/debugging-profiling-testing/debugging-diagnostics/in-app-debugging-consoles.md) — Provides a separate console for real-time access to application logs and system events during runtime. ([source](https://github.com/willmcgugan/textual#readme))
- [Terminal Debugging Tools](https://awesome-repositories.com/f/development-tools-productivity/terminal-debugging-tools.md) — Includes tools for real-time logging and event monitoring specifically for TUI applications.

### Programming Languages & Runtimes

- [Asynchronous Event Loops](https://awesome-repositories.com/f/programming-languages-runtimes/language-features-paradigms/concurrency-models/asynchronous-event-loops.md) — Implements an asynchronous event loop to drive the user interface and ensure non-blocking execution.
- [Asynchronous Programming](https://awesome-repositories.com/f/programming-languages-runtimes/runtime-execution-environments/runtime-environments/runtimes/asynchronous-execution-engines/asynchronous-programming.md) — Provides a framework for building responsive user interfaces using asynchronous programming patterns.

### Web Development

- [Terminal UI Layouts](https://awesome-repositories.com/f/web-development/terminal-ui-layouts.md) — Offers a flexible system for arranging interface elements and organizing data in terminal-based applications.
- [Web-Based Terminal Emulators](https://awesome-repositories.com/f/web-development/web-based-terminal-emulators.md) — Provides terminal emulation that allows text-based interfaces to be rendered and interacted with in a web browser.
- [Hosted Web Interfaces](https://awesome-repositories.com/f/web-development/web-infrastructure-deployment/hosted-web-interfaces.md) — Facilitates hosting terminal-based interfaces as publicly accessible web portals for remote browser access. ([source](https://github.com/willmcgugan/textual#readme))

### Part of an Awesome List

- [TUI Libraries](https://awesome-repositories.com/f/awesome-lists/devtools/tui-libraries.md) — TUI framework for Python.
