
Interactive CLI components for shell scripts with styled inputs, menus, confirmations, and text formatting
Gum is a collection of interactive CLI components designed for use in shell scripts and dotfiles. It provides ready-to-use utilities like input prompts, multi-choice menus, confirmation dialogs, file pickers, and text formatters that can be combined to create interactive shell workflows without writing Go code.
The tool includes 13 core commands covering common script interaction patterns: input for text prompts, choose for selection menus, confirm for yes/no dialogs, filter for fuzzy searching lists, file for file tree navigation, write for multi-line text entry, pager for scrolling through documents, and spin for progress indicators. Additional commands handle text presentation with style for colored/bordered text, join for layouts, format for markdown/code highlighting, table for tabular data selection, and log for structured output.
All components are highly customizable through command-line flags and environment variables, supporting styling options like colors, borders, spacing, and dimensions. The tool is built on the Bubbles TUI framework and Lip Gloss styling library, providing consistent terminal UI patterns. Gum outputs selections to stdout, making it easy to capture results in shell variables or pipe to other commands for building complete interactive scripts.
# via Homebrew
brew install gum
# via Go
go install github.com/charmbracelet/gum@latest
# via Package Manager
pacman -S gum


