Textual Когда терминал становится графическим интерфейсом

30 Jun, 2026
36,485
🔱 1,244
👥 182

Давайте признаем: классические CLI-приложения с их монотонными списками опций и лаконичным выводом иногда хочется оживить. Но кто сказал, что терминальные программы должны быть скучными?

textual-splash

Что такое Textual и кому он пригодится

Textual — это фреймворк для Python, который позволяет создавать богатые пользовательские интерфейсы прямо в терминале. Но не просто цветной текст, а настоящие интерактивные элементы: кнопки, списки, таблицы, поля ввода и даже деревья данных.

Этот проект особенно оценят:

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

Живые примеры вместо слов

Вот как выглядит простейшее приложение — цифровые часы:

Реклама
from datetime import datetime
from textual.app import App, ComposeResult
from textual.widgets import Digits

class ClockApp(App):
    CSS = """
    Screen { align: center middle; }
    Digits { width: auto; }
    """

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

    def on_ready(self) -> None:
        self.update_clock()
        self.set_interval(1, self.update_clock)

    def update_clock(self) -> None:
        clock = datetime.now().time()
        self.query_one(Digits).update(f"{clock:%T}")

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

Всего несколько строк кода — и у вас работающие часы в терминале с автоматическим обновлением!

Пять причин попробовать Textual

1. Богатая библиотека виджетов

Textual предлагает готовые компоненты для любых нужд:

buttons

  • Кнопки и переключатели
  • Деревья данных и списки
  • Таблицы с сортировкой
  • Поля ввода и текстовые редакторы
  • Прогресс-бары и многое другое

2. Командная палитра как в VS Code

Нажатие Ctrl+P открывает удобную палитру команд с fuzzy-поиском. И вы можете легко добавлять свои команды!

3. Разработка с комфортом

Встроенные dev-тулзы позволяют отлаживать приложение прямо в терминале. Вам не придется гадать, что происходит внутри.

4. Веб-режим из коробки

Хотите поделиться своим терминальным приложением? Textual может запустить его как веб-сервис одной командой:

textual serve "python -m textual"

5. Гибкость без сложностей

Textual работает как с синхронным, так и с асинхронным кодом. Вам не обязательно разбираться в asyncio, чтобы начать.

Где это можно применить?

  1. Админские панели для управления серверами
  2. Интерактивные конфигураторы сложных утилит
  3. Дашборды для мониторинга данных
  4. Прототипирование UI перед созданием GUI
  5. Образовательные программы по Python

Под капотом

Textual построен на:

  • Современном Python (3.7+)
  • Асинхронной архитектуре (но не требует её использования)
  • CSS-подобном стилевом языке для оформления
  • Реактивной модели данных

Стоит ли пробовать?

Если вы пишете на Python и хоть раз задумывались, что вашему CLI-инструменту не хватает интерактивности — однозначно да! Textual делает создание терминальных интерфейсов почти таким же простым, как верстка веб-страниц.

Для новичков в UI-разработке это отличный способ начать, не погружаясь в сложные GUI-фреймворки. Опытные разработчики оценят гибкость и производительность.

Установить можно за секунду:

pip install textual textual-dev

А начать можно с демо-приложения:

python -m textual

Textual — это свежий взгляд на то, какими могут быть терминальные приложения. Попробуйте и, возможно, вы больше никогда не вернетесь к традиционным CLI.

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