Что такое Gum и зачем это нужно
Gum (Bubble Gum) — это набор готовых утилит для shell-скриптов, которые позволяют создавать визуально привлекательные и интерактивные интерфейсы прямо в терминале. Главная особенность инструмента: разработчикам не нужно писать код на Go. Gum использует мощь библиотек Bubbles (для UI-компонентов) и Lip Gloss (для стилизации), предоставляя готовые команды, которые можно вызывать из bash, zsh или других оболочек.
Это решает проблему «скучных» скриптов, где пользователь просто вводит текст в пустоту. Gum добавляет структуру: выпадающие списки, подтверждение действий, фильтрацию с fuzzy-search и красивое форматирование вывода.
Ключевые возможности и команды
Инструмент предлагает широкий спектр команд для взаимодействия с пользователем. Ниже приведена таблица основных функций:
| Команда | Функционал | Пример использования |
|---|---|---|
choose |
Выбор опции из списка | Выбор типа коммита (fix, feat, docs) |
input |
Запрос текстового ввода | Ввод имени файла или переменной |
filter |
Фильтрация списка с fuzzy-поиском | Поиск файла в дереве каталогов |
confirm |
Подтверждение действия (Yes/No) | Безопасное удаление файлов |
table |
Рендеринг табличных данных | Просмотр CSV или структурированного вывода |
style |
Стилизация текста (цвета, рамки) | Выделение важной информации в логах |
format |
Обработка Markdown, шаблонов, эмодзи | Рендеринг README.md прямо в терминале |
Реальные сценарии применения
Один из самых наглядных примеров — упрощение процесса создания коммитов по Conventional Commits. Вместо ручного ввода заголовка и описания, скрипт может последовательно запрашивать тип изменения, область (scope) и детали, используя gum choose и gum input, а затем автоматически формировать команду git commit.
Другой частый кейс — навигация по сессиям tmux. Команда gum filter позволяет быстро найти нужную сессию из списка, используя fuzzy-поиск, что значительно быстрее, чем пролистывать длинный вывод tmux list-sessions.
Кроссплатформенность и установка
Gum поддерживает практически все основные операционные системы. Установка доступна через популярные менеджеры пакетов:
- macOS/Linux:
brew install gum - Arch Linux:
pacman -S gum - Windows:
winget install charmbracelet.gumилиscoop install charm-gum - Debian/Ubuntu: Доступен официальный репозиторий с GPG-ключом.
Также доступна установка через Go: go install github.com/charmbracelet/gum@latest. Все бинарные файлы доступны для Linux, macOS, Windows, FreeBSD, OpenBSD и NetBSD.
Почему это важно для разработчиков
Gum снижает порог входа для создания удобных DevOps-инструментов и скриптов автоматизации. Раньше для создания красивого CLI требовалось писать код на Go или использовать сложные обертки. Теперь, используя всего пару строк shell-кода, можно получить профессиональный UI с поддержкой тем, цветовых схем и анимаций (например, спиннеры через gum spin). Это делает скрипты более дружелюбными для пользователей и профессиональными на вид.
Источник: Github ↗
