The Real Python Podcast Episode #80 Artwork

Episode 80: Make Your Python App Interactive With a Text User Interface (TUI)

The Real Python Podcast

Oct 01, 2021 1h 2m

Have you wanted to create a Python application that goes further than a command-line interface? You would like it to have a friendly interface but don’t want to make a GUI (Graphical User Interface) or web application. Maybe a TUI (Text User Interface)would be a perfect fit for the project. This week on the show, we have Will McGugan to talk about his projects Textual and Rich.

Episode Sponsor:

Rich is a Python library for writing rich text to the terminal with color and style. It’s a great tool if you want to display advanced content such as tables, markdown, and syntax-highlighted code. We talk about how Will started on the project and how it’s developed over the years.

We also talk about Will’s new project Textual, a TUI using much of Rich at its core. He shares how the project is coming along and what are challenges in developing this type of application. We discuss how a TUI has more in common with CSS and web development than command line or graphical interfaces.

We also have a quick announcement at the top of the show from CPython Developer in Residence Łukasz Langa about next week’s release of Python 3.10.


  • 00:00:00 – Introduction
  • 00:02:08 – Python 3.10 Release Party - Announcement
  • 00:03:32 – Will McGugan and the background of the Rich library
  • 00:10:11 – Moya framework
  • 00:21:38 – Sponsor: DataStax Astra DB
  • 00:22:10 – The spark that started Textual
  • 00:26:31 – Needing AsyncIO for a TUI
  • 00:28:07 – Describing a TUI (Text User Interface)
  • 00:33:57 – Scrolling, resizing, and similarities with CSS
  • 00:36:37 – Video Course Spotlight
  • 00:38:03 – What areas were difficult in developing Textual?
  • 00:39:42 – Similarities to game development
  • 00:41:47 – Testing across different terminals
  • 00:45:01 – What were you excited to include in the project?
  • 00:47:04 – Are there particular uses you foresee for Textual?
  • 00:49:21 – Career changes and open source reviewing
  • 00:54:21 – Version numbers and Textual
  • 00:55:49 – What are you excited about in the world of Python?
  • 00:58:27 – What do you want to learn next?
  • 01:00:57 – Shoutouts and plugs
  • 01:01:47 – Thanks and goodbye

Show Links