Modern TUI with Textual in Python: Building Monokl
- Track:
- Tooling, Packaging, Developer Productivity
- Type:
- Talk
- Level:
- beginner
- Duration:
- 30 minutes
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, andWidget. - 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
@reactiveattributes to create a UI that stays in sync with background data.