Textual Когда терминал становится удобным интерфейсом

29 июл 2025
37,100
1,324
184
2 месяца

Помните те времена, когда консольные приложения выглядели как монотонные строки текста? Сегодня терминал может быть не менее удобным, чем графические интерфейсы, благодаря Textual — Python-фреймворку для создания красивых TUI (Text User Interface) приложений.

Что такое Textual?

Textual — это фреймворк от создателей популярной библиотеки Rich, который позволяет строить интерактивные приложения для терминала с современным интерфейсом. Но самое интересное — эти же приложения можно запускать и в браузере!

# Простейший пример — часы в терминале
from textual.app import App, ComposeResult
from textual.widgets import Digits

class ClockApp(App):
    def compose(self) -> ComposeResult:
        yield Digits("")

    def on_ready(self):
        self.update_clock()
        self.set_interval(1, self.update_clock)

    def update_clock(self):
        from datetime import datetime
        self.query_one(Digits).update(f"{datetime.now().time():%T}")

if __name__ == "__main__":
    app = ClockApp()
    app.run()

Почему это круто?

  1. Кроссплатформенность — работает на macOS, Linux и Windows
  2. Готовые виджеты — кнопки, таблицы, деревья, поля ввода и многое другое
  3. CSS-подобное оформление — стилизуйте интерфейс знакомым способом
  4. Асинхронность — но не обязательна, если вам она не нужна
  5. Веб-режим — запускайте терминальные приложения в браузере

Кому это пригодится?

  • Разработчикам CLI-инструментов, которые хотят улучшить UX
  • Администраторам систем, создающим свои утилиты для мониторинга
  • Всем, кто пишет Python-скрипты и хочет добавить удобный интерфейс
  • Тем, кому нужно быстро прототипировать идеи без тяжелых GUI-фреймворков

Как начать?

Установка проще некуда:

pip install textual textual-dev

А посмотреть демо можно командой:

python -m textual

Что внутри?

Textual предлагает богатый набор возможностей:

Реклама
  • Готовые виджеты — от простых кнопок до сложных таблиц данных
  • Гибкая компоновка — располагайте элементы как в вебе
  • Темы оформления — несколько вариантов "из коробки"
  • DevTools — консоль разработчика прямо в терминале
  • Командная палитра — быстрый доступ к функциям (Ctrl+P)

Веб-режим — фишка, которая удивляет

Любое Textual-приложение можно запустить как веб-приложение:

textual serve "python -m textual"

Это открывает потрясающие возможности для:

  • Демонстрации инструментов коллегам
  • Создания внутренних веб-интерфейсов
  • Быстрого прототипирования идей

Когда стоит попробовать Textual?

Если вы:

  • Устали от неудобных консольных интерфейсов
  • Хотите добавить интерактивность своим скриптам
  • Ищете легкий способ создать инструмент с UI
  • Цените Python и хотите оставаться в его экосистеме

Textual — это свежий взгляд на то, какими могут быть терминальные приложения. Он сочетает простоту Python с мощью современных интерфейсов, и при этом не требует изучения сложных GUI-фреймворков.

А вы уже пробовали создавать интерфейсы в терминале? Какой инструмент используете?

🍪 Мы используем файлы cookie и сервис аналитики Яндекс.Метрика, чтобы сайт работал лучше. Продолжая пользоваться devtrends.ru, вы соглашаетесь с обработкой данных согласно Политике конфиденциальности.