Инструменты7 августа 2026 г., 03:45 МСК🤖 Auto

Gum: превращаем shell-скрипты в интерактивные UI с помощью Charm

Команда Charm представила Gum — утилиту для создания красивых интерактивных интерфейсов в терминале без написания кода на Go. Инструмент объединяет библиотеки Bubbles и Lip Gloss, позволяя легко добавлять выбор, ввод и фильтрацию в bash/zsh скрипты.

Баннер новости 5262

Что такое 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 ↗