Gum
Drop-in prompts, menus, spinners and formatting for shell scripts, so a bash script can have a decent interface.
These buttons open the developer's own site, repository or store listing in a new tab. wares.gg does not host downloads.
1 more ways to get Gum
Package managers
- Homebrew
brew install gum
About Gum
Gum is a set of small commands that each provide one piece of interface: `gum choose` for a menu, `gum confirm` for a yes or no, `gum input` for a prompt, `gum file` for a file picker, `gum filter` for fuzzy selection, `gum spin` for a spinner around a long task, and `gum format` for styled output.
Each prints to stdout, so you capture the result in a variable and carry on with ordinary shell scripting. The effect is that a dotfile alias or a deployment script can have a genuinely usable interface without writing any Go, which is what the Bubble Tea library underneath it would otherwise require.
Strengths
- Each command does one interface job and prints to stdout, so it composes with normal shell scripting
- Menus, confirmations, file pickers, fuzzy filters, spinners and styled text
- No Go code needed to get the look of a Bubble Tea application
- Packages for Debian, RPM and Alpine, binaries for Linux, macOS, Windows and the BSDs
Limitations
- Adds an external dependency to any script that uses it
- Interactive commands need a real terminal, so they break in non-interactive CI
- Styling options are extensive enough to become their own time sink
- Not a full TUI framework; for that you need Bubble Tea itself
Details
- Pricing
- FreeFree and open source under the MIT licence.
- License
- MIT
- Developer
- Charmbracelet
- Platforms
- Windows, macOS, Linux, Command line
- How it runs
- Downloadable app
- Account
- Not required
- Works offline
- Yes
- Best suited for
- Adding menus and prompts to shell scripts without writing a program
- Categories
- CLI tools
- Last verified
- Added
- Provenance
- Selected from the TechWalrus downloads catalog (Dev Tools); facts checked against the developer's own pages, 3 sources on file.