Offline

Modern TUI with Textual in Python: Building Monokl

Track:
Tooling, Packaging, Developer Productivity
Type:
Talk
Level:
beginner
Duration:
30 minutes
View in the schedule

Abstract

As developers, our daily workflow is scattered across dozens of platforms: GitHub for PRs and issues, Jira or Linear for tasks, GitLab for CI/CD, and Todoist for personal focus. Constant "context switching" between browser tabs is a productivity killer. To solve this, I built Monokl - a unified terminal dashboard that aggregates these services into a single, high-performance interface.

In this talk, we explore how to build complex, API-driven applications using Textual, the rapid application development framework for Python. We will dive into the real-world challenges of building Monokl, including:

  • Async integration: How to fetch data from multiple APIs (GitHub, Atlassian, GitLab, Linear) without freezing the UI.
  • Component architecture: Designing reusable widgets for task lists, progress bars, and status feeds.
  • Reactive UI: Using Textual’s reactive traits to ensure your dashboard updates not long after a PR is approved or a task is completed.
  • The TUI advantage: Why a terminal interface is often faster and more focused than a web-based aggregator.

Attendees will walk away with a clear blueprint for building their own interactive terminal tools and a deep understanding of the Textual framework.

Learning Outcomes

  • Learning Textual: Understand the core architecture of App, Screen, and Widget.
  • Managing async data: Learn patterns for integrating multiple external APIs/CLIs into a single event loop.
  • Modern layouts: How to use TCSS (Textual CSS) to create beautiful, responsive terminal layouts.
  • State & reactivity: How to use @reactive attributes to create a UI that stays in sync with background data.