Termdash Создаем профессиональные дашборды в терминале с помощью Go
Когда последний раз вы видели по-настоящему удобный и информативный интерфейс в терминале? Обычно CLI-приложения ограничиваются скучным текстовым выводом, но с Termdash всё меняется. Этот Go-фреймворк позволяет создавать полноценные интерактивные дашборды прямо в терминале — с графиками, кнопками, формами ввода и другими элементами интерфейса.
Что такое Termdash и кому он пригодится?
Termdash — это кроссплатформенная библиотека для Go, которая превращает обычный терминал в мощную площадку для визуализации данных. Проект вдохновлен termui и blessed-contrib, но сделан с упором на читаемость кода, поддерживаемость и тестируемость.
Кому это нужно? В первую очередь:
- Разработчикам системных утилит, которые хотят улучшить UX
- DevOps-инженерам для мониторинга серверов
- Аналитикам, работающим с данными в терминале
- Всем, кто устал от скучных текстовых интерфейсов
Главные возможности Termdash
1. Богатая библиотека виджетов
Termdash предлагает целый арсенал готовых элементов:
- Кнопки с callback-функциями
go run widgets/button/buttondemo/buttondemo.go

- Формы ввода с поддержкой клавиатурной навигации
- Графики (линейные, столбчатые, спарклайны)
- Индикаторы прогресса (шкалы, донут-чарты)
- Текстовые блоки с прокруткой
2. Гибкая система компоновки
Вы можете:
- Использовать древовидную или grid-структуру
- Настраивать отступы, границы, цвета
- Динамически менять layout во время работы
3. Полноценная интерактивность
Поддержка:
- Обработки клавиатурного ввода
- Реагирования на мышь
- Фокусировки между элементами
Как это работает под капотом?
Termdash написан на чистом Go и не требует дополнительных зависимостей. Архитектура проекта продумана для:
- Легкой расширяемости (можно добавлять свои виджеты)
- Стабильной работы при изменении размеров терминала
- Эффективного обновления экрана (периодического или по событиям)
Проект активно развивается — 2900+ звезд на GitHub, регулярные обновления и хорошее покрытие тестами (судите по значкам CI в README).
Где это можно применить?
Вот несколько реальных примеров:
- Мониторинг серверов — вывод CPU/RAM/дисков в реальном времени
- Интерактивные CLI-утилиты — с формами настроек
- Визуализация данных — графики прямо в терминале
- Игровые интерфейсы — для roguelike игр
Уже существуют проекты, использующие Termdash:
- datadash — визуализация потоковых данных
- grafterm — дашборды для метрик
- perfstat — анализ узких мест в Linux
Стоит ли попробовать?
Definitely yes, если:
- Вы пишете на Go
- Хотите улучшить UX ваших терминальных приложений
- Нужна визуализация данных без тяжелых GUI
Начать просто:
go get -u github.com/mum4k/termdash
А чтобы увидеть все возможности в действии:
go run termdashdemo/termdashdemo.go
Termdash — это тот случай, когда функциональность сочетается с элегантностью. Попробуйте, и ваши консольные приложения уже никогда не будут прежними!
