charmbracelet/gum

Published on Oct 17, 2026
★ 24.6k Go MIT

Build interactive shell scripts with inputs, selects, and spinners

Turn ugly bash scripts into gorgeous interactive terminal apps.

Replace clunky echo statements with keyboard-driven choose menus.

First, interactive choices. Instead of asking users to type numbers or strings, gum choose gives you a full keyboard-driven select menu with customizable cursor colors and multi-select support.

gum choose · keyboard navigation and multi-select

Collect user input with masked passwords and multiline editors.

Second, structured inputs. Use gum input for single-line text with placeholders and password masking, or gum write for full multi-line markdown editing directly in your shell script.

gum input & write · masked fields and multiline editor

Safeguard destructive operations with vibrant confirmation prompts.

Third, safe workflows. Stop catastrophic mistakes with gum confirm. It renders an affirmative Yes or No prompt that returns standard shell exit codes, making conditional logic clean and foolproof.

gum confirm · exit-code-based conditional branches

Display elegant spinning animations while background tasks execute.

Fourth, visual feedback. Wrap any slow command inside gum spin. It displays smooth, configurable spinners while your build or deployment finishes, eliminating frozen terminal confusion.

gum spin · dot and line animations for long-running jobs

Gum brings Charm's Bubble Tea ecosystem to every Unix shell.

With over 24,000 GitHub stars and an MIT license, Gum turns everyday automation into delightful developer tools. Install it via brew or clone the repo to upgrade your scripts.

24.5k stars · MIT licensed · built by Charmbracelet