Shell UI CLI for adding prompts, pickers, spinners, styling, and logs to shell scripts.
$brew install gum
Agent Compatibility
JSON Output
Agent Skill
MCP Support
AI Analysis
Gum is a shell UI CLI that packages prompts, selectors, spinners, styling, and lightweight formatting helpers as subcommands for shell scripts and aliases. It is most useful when you want a human-friendly terminal flow around an existing script, not when you need a service API client or headless automation primitive.
What It Enables
- Add confirms, text inputs, choosers, fuzzy filters, file pickers, and multi-line editors to shell scripts, returning selections on stdout or via exit codes.
- Wrap long-running commands with spinners, styled logs, formatted markdown or code output, tables, and joined layouts for terminal-facing workflows.
- Build lightweight interactive helpers for tasks like writing commit messages, selecting branches or packages, opening files, and reviewing long text in the terminal.
Agent Fit
- Commands compose through stdin, stdout, and exit codes, and
gum logcan emit JSON with--formatter jsonfor structured log output. - Most high-value commands open Bubble Tea TUIs and expect a human at the keyboard, so unattended agent use is limited.
- Best fit as a UX layer for scripts a person will run or supervise; weaker as a direct inspect or change primitive for autonomous agents.
Caveats
- Many commands need a real TTY; in CI or non-interactive shells they either fail or lose most of their value.
- Structured output support is narrow; outside
gum log, outputs are usually plain text selections or styled terminal content.