Shell scripting UI CLI for prompts, selectors, spinners, styled output, and lightweight terminal formatting.
$brew install gum
Agent Compatibility
JSON Output
Agent Skill
MCP Support
AI Analysis
Gum is a shell scripting UI toolkit packaged as one CLI, with commands for prompts, selectors, file pickers, spinners, tables, styling, and text formatting. It helps turn plain shell scripts into guided terminal workflows without building a custom TUI in Go.
What It Enables
- Prompt for short or multi-line input, confirmations, file choices, and single- or multi-select menus, then capture the result on stdout or in exit codes.
- Wrap existing shell commands with spinners, pagers, tables, and styled or joined text so scripts can guide a user through a workflow.
- Build human-in-the-loop helpers such as commit message wizards, Git branch cleanup, package removal menus, or tmux and editor pickers.
Agent Fit
- Commands compose with the shell through stdout, stderr, and exit codes, which is enough for simple wrappers and operator-facing scripts.
- Structured output exists only on
gum log --formatter json; the main selection and prompt commands return plain text or exit codes. - Useful when an agent is generating or driving a human-facing terminal workflow; weak when the goal is unattended inspection or direct service control.
Caveats
- Many high-value commands require a real terminal and user input, so they are awkward in CI or fully headless runs.
- The CLI does not talk to external services itself; it is mainly a UX layer around other commands and shell logic.