site: rename "finds" superposts → "bundles" + 2026-05-06 capture run
Collection rename: src/content/finds/ → src/content/bundles/, URLs /finds/<slug>/ → /bundles/<slug>/, internal symbols (FindsPost → Bundle, findListMosaic → bundleMosaic, findsReferencing → bundlesReferencing, Entry.type 'finds' → 'bundle'). Skills build-finds/cluster-finds renamed to build-bundle/cluster-bundles. The `find` collection (individual items) is unchanged. New content: 4 reviews graduated (finalist, gum-shell, tablepro, valchoose-barf-bags) and 6 bundles for 2026-05-06 (constrain-the-surface, menu-bar-singletons, on-device-by-design, six-american-detours, six-lines-six-origins, things-in-the-terminal). Adds EntryGrid component.
This commit is contained in:
@@ -0,0 +1,25 @@
|
||||
---
|
||||
name: "gum"
|
||||
subtitle: "Polished shell-script UI components — choose, input, spinner, confirm"
|
||||
date: 2026-05-06
|
||||
category: terminal
|
||||
tags: [shell, terminal, scripting, open-source, charm, cli]
|
||||
link: "https://github.com/charmbracelet/gum"
|
||||
description: "A Charm toolkit that gives bash and zsh scripts proper TUI components — fuzzy menus, password inputs, spinners — composable with pipes."
|
||||
source: "One Thing Well"
|
||||
fromFind: "gum-shell"
|
||||
---
|
||||
|
||||

|
||||
|
||||
*Gum's `choose` component as a drop-in replacement for `read` and `select` — arrow-key fuzzy menu, no Go required.*
|
||||
|
||||
> A toolkit from Charm that turns bash and zsh scripts into things you'd actually want to share — fuzzy choosers, password prompts, spinners, multi-line confirmations — composable with pipes.
|
||||
|
||||
The shell's built-in interaction primitives stop at `read` and `select`. They've been there since the 1970s and they look it. Anything fancier traditionally meant rewriting your fifty-line script in Go, Python, or Node — and watching it grow into a thousand-line project nobody else on the team can reach into. Gum is the alternative: a small statically-linked binary, called like any other shell command, that gives you a Charm-quality TUI inside whatever script you've already written.
|
||||
|
||||
The components are the whole product: `gum choose` for menus, `gum input` for text fields (with a `--password` flag), `gum spin` for progress, `gum confirm` for yes/no, `gum filter` for fuzzy pickers, `gum write` for multi-line text, `gum format` for styled output. Each writes its result to stdout, so they pipe naturally — `gum choose option1 option2 | xargs -I {} gum confirm "Do {}?"` reads like a sentence rather than a Bash maze. The styling matches Glow, Lazygit, and the rest of the Charm catalog — rounded borders, subtle colors, restrained motion — with config cascading from CLI flags to environment variables to a `.gum.toml`.
|
||||
|
||||
Install via `brew install gum`, `apt-get install gum`, `go install`, or grab the static binary; no runtime dependency. Open source, MIT-licensed.
|
||||
|
||||
Honest limitation: it's a hard dependency in your script. Anyone running your function or installer needs `gum` on `$PATH`, which means either a bootstrap step at the top of the script or a Homebrew/apt declaration. For internal tools that's fine; for a "curl | bash" public installer it's friction worth weighing against the readability win.
|
||||
Reference in New Issue
Block a user