GUM(1)

πŸ’… GUM πŸ’…

okay so you've pulled up the manual page for gum β€” yes, that gum, the one from section 1 of the manual, bestie. Subtitle on the tin: A tool for glamorous shell scripts. Which, like, is the whole personality. Let's get into it 🫢


✨ NAME ✨

gum β€” A tool for glamorous shell scripts. that's it, that's the name, and honestly it ate πŸ’…

🌸 SYNOPSIS 🌸

gum [options...] [argument...]

πŸ¦‹ DESCRIPTION πŸ¦‹

so, funny thing: this section is literally empty in the original page 😭 no cap, nothing in there. the vibes are doing all the work. moving on πŸ’€

πŸŽ€ OPTIONS πŸŽ€

  • -h, --help β€” shows you the help, but like, context-sensitive help, so it actually knows where you are πŸ‘‘
  • -v, --version β€” prints the version number, so you can flex how up-to-date you are ✨

🌈 COMMANDS 🌈

🌟 choose [<options> ...] [flags]

pick one (or more, we don't judge) from a list of choices. this is the main character of the commands, fr fr πŸ‘‘

πŸ’– OPTIONS πŸ’–

  • --cursor-prefix="β€’ " β€” the prefix that shows up on the cursor item (it goes hidden if limit is 1)
  • --cursor.align="left" β€” text alignment
  • --cursor.background="" β€” background color
  • --cursor.bold β€” bold text
  • --cursor.border-background="" β€” border background color
  • --cursor.border-foreground="" β€” border foreground color
  • --cursor.border="none" β€” border style
  • --cursor.faint β€” faint text
  • --cursor.foreground="212" β€” foreground color
  • --cursor.height=0 β€” text height
  • --cursor.italic β€” italicize text
  • --cursor.margin="0 0" β€” text margin
  • --cursor.padding="0 0" β€” text padding
  • --cursor.strikethrough β€” strikethrough text
  • --cursor.underline β€” underline text
  • --cursor.width=0 β€” text width
  • --cursor="> " β€” the prefix on the item that matches where the cursor is sitting rn
  • --header.align="left" β€” text alignment
  • --header.background="" β€” background color
  • --header.bold β€” bold text
  • --header.border-background="" β€” border background color
  • --header.border-foreground="" β€” border foreground color
  • --header.border="none" β€” border style
  • --header.faint β€” faint text
  • --header.foreground="99" β€” foreground color
  • --header.height=0 β€” text height
  • --header.italic β€” italicize text
  • --header.margin="0 0" β€” text margin
  • --header.padding="0 0" β€” text padding
  • --header.strikethrough β€” strikethrough text
  • --header.underline β€” underline text
  • --header.width=0 β€” text width
  • --header="Choose:" β€” what the header actually says
  • --height=10 β€” how tall the list is
  • --input-delimiter="\n" β€” the delimiter used for options when it's reading from STDIN
  • --item.align="left" β€” text alignment
  • --item.background="" β€” background color
  • --item.bold β€” bold text
  • --item.border-background="" β€” border background color
  • --item.border-foreground="" β€” border foreground color
  • --item.border="none" β€” border style
  • --item.faint β€” faint text
  • --item.foreground="" β€” foreground color
  • --item.height=0 β€” text height
  • --item.italic β€” italicize text
  • --item.margin="0 0" β€” text margin
  • --item.padding="0 0" β€” text padding
  • --item.strikethrough β€” strikethrough text
  • --item.underline β€” underline text
  • --item.width=0 β€” text width
  • --label-delimiter="" β€” lets you set a delimiter so options can be written as label:value, iconic
  • --limit=1 β€” max number of options you're allowed to pick
  • --no-limit β€” pick an unlimited number of options (this straight up ignores limit)
  • --ordered β€” keeps the selected options in the order they were selected, not the order they appeared
  • --output-delimiter="\n" β€” the delimiter used for options when it writes out to STDOUT
  • --padding="0 0" β€” padding
  • --select-if-one β€” auto-selects the option if there's literally only one of them
  • --selected-prefix="βœ“ " β€” the prefix on selected items (hidden if limit is 1)
  • --selected.align="left" β€” text alignment
  • --selected.background="" β€” background color
  • --selected.bold β€” bold text
  • --selected.border-background="" β€” border background color
  • --selected.border-foreground="" β€” border foreground color
  • --selected.border="none" β€” border style
  • --selected.faint β€” faint text
  • --selected.foreground="212" β€” foreground color
  • --selected.height=0 β€” text height
  • --selected.italic β€” italicize text
  • --selected.margin="0 0" β€” text margin
  • --selected.padding="0 0" β€” text padding
  • --selected.strikethrough β€” strikethrough text
  • --selected.underline β€” underline text
  • --selected.width=0 β€” text width
  • --selected=,... β€” options that should start out already selected (pass * and it selects all of them, periodt)
  • --show-help β€” shows the help keybinds
  • --strip-ansi β€” strips ANSI sequences when reading from STDIN
  • --timeout=0s β€” timeout until choose returns the selected element
  • --unselected-prefix="β€’ " β€” the prefix on the unselected items (hidden if limit is 1)

🌟 confirm [<prompt>] [flags]

asks the user to confirm an action. yes/no moment, very dramatic πŸŽ€

πŸ’– OPTIONS πŸ’–

  • --affirmative="Yes" β€” the title of the affirmative action
  • --default β€” the default confirmation action
  • --negative="No" β€” the title of the negative action
  • --padding="0 0" β€” padding
  • --prompt.align="left" β€” text alignment
  • --prompt.background="" β€” background color
  • --prompt.bold β€” bold text
  • --prompt.border-background="" β€” border background color
  • --prompt.border-foreground="" β€” border foreground color
  • --prompt.border="none" β€” border style
  • --prompt.faint β€” faint text
  • --prompt.foreground="#7571F9" β€” foreground color
  • --prompt.height=0 β€” text height
  • --prompt.italic β€” italicize text
  • --prompt.margin="0 0 0 1" β€” text margin
  • --prompt.padding="0 0" β€” text padding
  • --prompt.strikethrough β€” strikethrough text
  • --prompt.underline β€” underline text
  • --prompt.width=0 β€” text width
  • --selected.align="left" β€” text alignment
  • --selected.background="212" β€” background color
  • --selected.bold β€” bold text
  • --selected.border-background="" β€” border background color
  • --selected.border-foreground="" β€” border foreground color
  • --selected.border="none" β€” border style
  • --selected.faint β€” faint text
  • --selected.foreground="230" β€” foreground color
  • --selected.height=0 β€” text height
  • --selected.italic β€” italicize text
  • --selected.margin="0 1" β€” text margin
  • --selected.padding="0 3" β€” text padding
  • --selected.strikethrough β€” strikethrough text
  • --selected.underline β€” underline text
  • --selected.width=0 β€” text width
  • --show-help β€” shows the help key binds
  • --show-output β€” prints the prompt and the chosen action to the output
  • --timeout=0s β€” timeout until confirm returns the selected value, or the default if one was provided
  • --unselected.align="left" β€” text alignment
  • --unselected.background="235" β€” background color
  • --unselected.bold β€” bold text
  • --unselected.border-background="" β€” border background color
  • --unselected.border-foreground="" β€” border foreground color
  • --unselected.border="none" β€” border style
  • --unselected.faint β€” faint text
  • --unselected.foreground="254" β€” foreground color
  • --unselected.height=0 β€” text height
  • --unselected.italic β€” italicize text
  • --unselected.margin="0 1" β€” text margin
  • --unselected.padding="0 3" β€” text padding
  • --unselected.strikethrough β€” strikethrough text
  • --unselected.underline β€” underline text
  • --unselected.width=0 β€” text width

🌟 file [<path>] [flags]

pick a file out of a folder. little file browser moment πŸ“βœ¨

πŸ’– OPTIONS πŸ’–

  • -a, --all β€” show hidden and 'dot' files too, no secrets πŸ‘€
  • --cursor.align="left" β€” text alignment
  • --cursor.background="" β€” background color
  • --cursor.bold β€” bold text
  • --cursor.border-background="" β€” border background color
  • --cursor.border-foreground="" β€” border foreground color
  • --cursor.border="none" β€” border style
  • --cursor.faint β€” faint text
  • --cursor.foreground="212" β€” foreground color
  • --cursor.height=0 β€” text height
  • --cursor.italic β€” italicize text
  • --cursor.margin="0 0" β€” text margin
  • --cursor.padding="0 0" β€” text padding
  • --cursor.strikethrough β€” strikethrough text
  • --cursor.underline β€” underline text
  • --cursor.width=0 β€” text width
  • -c, --cursor=">" β€” the cursor character itself
  • --directory β€” allow directory selection, so folders are fair game
  • --directory.align="left" β€” text alignment
  • --directory.background="" β€” background color
  • --directory.bold β€” bold text
  • --directory.border-background="" β€” border background color
  • --directory.border-foreground="" β€” border foreground color
  • --directory.border="none" β€” border style
  • --directory.faint β€” faint text
  • --directory.foreground="99" β€” foreground color
  • --directory.height=0 β€” text height
  • --directory.italic β€” italicize text
  • --directory.margin="0 0" β€” text margin
  • --directory.padding="0 0" β€” text padding
  • --directory.strikethrough β€” puts a lil strike through the directory text πŸŽ€
  • --directory.underline β€” underlines the directory text, very demure
  • --directory.width=0 β€” text width for the directory column
  • --file β€” yes bestie, this lets you select actual files πŸ’–
  • --file-size.align="right" β€” text alignment for the file size
  • --file-size.background="" β€” background colour
  • --file-size.bold β€” bold text, main character behaviour
  • --file-size.border-background="" β€” border background colour
  • --file-size.border-foreground="" β€” border foreground colour
  • --file-size.border="none" β€” border style
  • --file-size.faint β€” faint text (shy text)
  • --file-size.foreground="240" β€” foreground colour
  • --file-size.height=0 β€” text height
  • --file-size.italic β€” italicize text, fancy fr
  • --file-size.margin="0 0" β€” text margin
  • --file-size.padding="0 0" β€” text padding
  • --file-size.strikethrough β€” strikethrough text
  • --file-size.underline β€” underline text
  • --file-size.width=8 β€” text width
  • --file.align="left" β€” text alignment
  • --file.background="" β€” background colour
  • --file.bold β€” bold text
  • --file.border-background="" β€” border background colour
  • --file.border-foreground="" β€” border foreground colour
  • --file.border="none" β€” border style
  • --file.faint β€” faint text
  • --file.foreground="" β€” foreground colour
  • --file.height=0 β€” text height
  • --file.italic β€” italicize text
  • --file.margin="0 0" β€” text margin
  • --file.padding="0 0" β€” text padding
  • --file.strikethrough β€” strikethrough text
  • --file.underline β€” underline text
  • --file.width=0 β€” text width
  • --header.align="left" β€” text alignment for the header
  • --header.background="" β€” background colour
  • --header.bold β€” bold text
  • --header.border-background="" β€” border background colour
  • --header.border-foreground="" β€” border foreground colour
  • --header.border="none" β€” border style
  • --header.faint β€” faint text
  • --header.foreground="99" β€” foreground colour
  • --header.height=0 β€” text height
  • --header.italic β€” italicize text
  • --header.margin="0 0" β€” text margin
  • --header.padding="0 0" β€” text padding
  • --header.strikethrough β€” strikethrough text
  • --header.underline β€” underline text
  • --header.width=0 β€” text width
  • --header="" β€” the actual header value, like the words at the top ✨
  • --height=10 β€” max number of files to display at once
  • --padding="0 0" β€” padding
  • -p, --permissions β€” show file permissions πŸ‘‘
  • --permissions.align="left" β€” text alignment
  • --permissions.background="" β€” background colour
  • --permissions.bold β€” bold text
  • --permissions.border-background="" β€” border background colour
  • --permissions.border-foreground="" β€” border foreground colour
  • --permissions.border="none" β€” border style
  • --permissions.faint β€” faint text
  • --permissions.foreground="244" β€” foreground colour
  • --permissions.height=0 β€” text height
  • --permissions.italic β€” italicize text
  • --permissions.margin="0 0" β€” text margin
  • --permissions.padding="0 0" β€” text padding
  • --permissions.strikethrough β€” strikethrough text
  • --permissions.underline β€” underline text
  • --permissions.width=0 β€” text width
  • --selected.align="left" β€” text alignment for whatever you've picked
  • --selected.background="" β€” background colour
  • --selected.bold β€” bold text
  • --selected.border-background="" β€” border background colour
  • --selected.border-foreground="" β€” border foreground colour
  • --selected.border="none" β€” border style
  • --selected.faint β€” faint text
  • --selected.foreground="212" β€” foreground colour
  • --selected.height=0 β€” text height
  • --selected.italic β€” italicize text
  • --selected.margin="0 0" β€” text margin
  • --selected.padding="0 0" β€” text padding
  • --selected.strikethrough β€” strikethrough text
  • --selected.underline β€” underline text
  • --selected.width=0 β€” text width
  • --show-help β€” show the help key binds 🫢
  • -s, --size β€” show file size
  • --symlink.align="left" β€” text alignment
  • --symlink.background="" β€” background colour
  • --symlink.bold β€” bold text
  • --symlink.border-background="" β€” border background colour
  • --symlink.border-foreground="" β€” border foreground colour
  • --symlink.border="none" β€” border style
  • --symlink.faint β€” faint text
  • --symlink.foreground="36" β€” foreground colour
  • --symlink.height=0 β€” text height
  • --symlink.italic β€” italicize text
  • --symlink.margin="0 0" β€” text margin
  • --symlink.padding="0 0" β€” text padding
  • --symlink.strikethrough β€” strikethrough text
  • --symlink.underline β€” underline text
  • --symlink.width=0 β€” text width
  • --timeout=0s β€” timeout until the command just gives up and aborts without a selection πŸ’€ (yes, it will simply leave you on read)

πŸ¦‹ filter [<options> ...] [flags]

Filter items from a list β€” like a little sieve for your options, and honestly? iconic.

✨ OPTIONS ✨

  • --cursor-text.align="left" β€” text alignment for the cursor text
  • --cursor-text.background="" β€” background colour
  • --cursor-text.bold β€” bold text
  • --cursor-text.border-background="" β€” border background colour
  • --cursor-text.border-foreground="" β€” border foreground colour
  • --cursor-text.border="none" β€” border style
  • --cursor-text.faint β€” faint text
  • --cursor-text.foreground="" β€” foreground colour
  • --cursor-text.height=0 β€” text height
  • --cursor-text.italic β€” italicize text
  • --cursor-text.margin="0 0" β€” text margin
  • --cursor-text.padding="0 0" β€” text padding
  • --cursor-text.strikethrough β€” strikethrough text
  • --cursor-text.underline β€” underline text
  • --cursor-text.width=0 β€” text width
  • --fuzzy β€” enable fuzzy matching; otherwise it matches from the start of the word πŸ”
  • --fuzzy-sort β€” sort fuzzy results by their scores
  • --header.align="left" β€” text alignment
  • --header.background="" β€” background colour
  • --header.bold β€” bold text
  • --header.border-background="" β€” border background colour
  • --header.border-foreground="" β€” border foreground colour
  • --header.border="none" β€” border style
  • --header.faint β€” faint text
  • --header.foreground="99" β€” foreground colour
  • --header.height=0 β€” text height
  • --header.italic β€” italicize text
  • --header.margin="0 0" β€” text margin
  • --header.padding="0 0" β€” text padding
  • --header.strikethrough β€” strikethrough text
  • --header.underline β€” underline text
  • --header.width=0 β€” text width
  • --header="" β€” header value
  • --height=0 β€” input height
  • --indicator.align="left" β€” text alignment
  • --indicator.background="" β€” background colour
  • --indicator.bold β€” bold text
  • --indicator.border-background="" β€” border background colour
  • --indicator.border-foreground="" β€” border foreground colour
  • --indicator.border="none" β€” border style
  • --indicator.faint β€” faint text
  • --indicator.foreground="212" β€” foreground colour
  • --indicator.height=0 β€” text height
  • --indicator.italic β€” italicize text
  • --indicator.margin="0 0" β€” text margin
  • --indicator.padding="0 0" β€” text padding
  • --indicator.strikethrough β€” strikethrough text
  • --indicator.underline β€” underline text
  • --indicator.width=0 β€” text width
  • --indicator="β€’" β€” the character that marks your selection πŸŽ€
  • --input-delimiter="\n" β€” option delimiter when reading from STDIN
  • --limit=1 β€” maximum number of options to pick
  • --match.align="left" β€” text alignment for the matched bits
  • --match.background="" β€” background colour
  • --match.bold β€” bold text
  • --match.border-background="" β€” border background colour
  • --match.border-foreground="" β€” border foreground colour
  • --match.border="none" β€” border style
  • --match.faint β€” faint text
  • --match.foreground="212" β€” foreground colour
  • --match.height=0 β€” text height
  • --match.italic β€” italicize text
  • --match.margin="0 0" β€” text margin
  • --match.padding="0 0" β€” text padding
  • --match.strikethrough β€” strikethrough text
  • --match.underline β€” underline text
  • --match.width=0 β€” text width
  • --no-limit β€” pick an unlimited number of options (this ignores limit, periodt)
  • --output-delimiter="\n" β€” option delimiter when writing to STDOUT
  • --padding="0 0" β€” padding
  • --placeholder.align="left" β€” text alignment for the placeholder text
  • --placeholder.background="" β€” background colour
  • --placeholder.bold β€” bold text

…and the style parade keeps marching πŸ’… every widget in gum has its own little wardrobe, and the pattern is always the same: <widget>.<property>. Slap a value on it and the widget serves a look. Periodt.

  • --placeholder.border-background="" β€” the background colour behind the placeholder's border 😌 empty by default.
  • --placeholder.border-foreground="" β€” the colour the placeholder's border itself is drawn in. Also empty unless you say otherwise.
  • --placeholder.border="none" β€” what style of border the placeholder gets. Default is none, so no box unless you ask πŸŽ€
  • --placeholder.faint β€” makes the placeholder text faint. Subtle queen behaviour.
  • --placeholder.foreground="240" β€” the placeholder text colour, sitting pretty at 240 by default.
  • --placeholder.height=0 β€” how tall the placeholder is, in text terms. 0 means default, no cap.
  • --placeholder.italic β€” italicises the placeholder. Slanty vibes ✨
  • --placeholder.margin="0 0" β€” margin around the placeholder, 0 0 to start.
  • --placeholder.padding="0 0" β€” padding inside the placeholder, also 0 0 out the gate.
  • --placeholder.strikethrough β€” draws a line through the placeholder text πŸ’€ dramatic but valid.
  • --placeholder.underline β€” underlines the placeholder. Lowkey classic.
  • --placeholder.width=0 β€” width of the placeholder. 0 = default behaviour.
  • --placeholder="Filter..." β€” the actual placeholder text shown when the field is empty. Defaults to Filter... πŸ”

Okay and now the prompt, same energy, different widget πŸ’–

  • --prompt.align="left" β€” where the prompt text lines up. Default left, like a sane person.
  • --prompt.background="" β€” prompt background colour, empty default.
  • --prompt.bold β€” bolds the prompt. Make it loud πŸ“£
  • --prompt.border-background="" β€” background behind the prompt's border. Empty unless set.
  • --prompt.border-foreground="" β€” colour of the prompt's border line.
  • --prompt.border="none" β€” border style for the prompt. none by default 🚫
  • --prompt.faint β€” faint prompt text, whispery.
  • --prompt.foreground="240" β€” prompt text colour, 240 initially.
  • --prompt.height=0 β€” height of the prompt block. 0 = default.
  • --prompt.italic β€” italicises the prompt πŸ¦‹
  • --prompt.margin="0 0" β€” margin around the prompt, 0 0.
  • --prompt.padding="0 0" β€” padding inside the prompt, 0 0.
  • --prompt.strikethrough β€” strikes through the prompt. Chaotic but it's an option.
  • --prompt.underline β€” underlines the prompt, understated slay.
  • --prompt.width=0 β€” prompt width, 0 for default.
  • --prompt="> " β€” the literal prompt string shown to the user. Default is > , and yes the space matters πŸ’…

Then the filter's actual behaviour knobs, which are the主食 of this whole thing:

  • --reverse β€” flips it so stuff displays from the bottom of the screen instead of the top. Main character chaos πŸ™ƒ
  • --select-if-one β€” if there's literally only one option, it just selects it. No need to make the user work for it 🫢
  • --selected-indicator.align="left" β€” alignment of the selected indicator. left.
  • --selected-indicator.background="" β€” its background colour, empty default.
  • --selected-indicator.bold β€” bolds the selected indicator.
  • --selected-indicator.border-background="" β€” background behind its border.
  • --selected-indicator.border-foreground="" β€” colour of its border.
  • --selected-indicator.border="none" β€” border style, none unless changed.
  • --selected-indicator.faint β€” faint rendering for the selected indicator.
  • --selected-indicator.foreground="212" β€” colour of the selected indicator, defaulting to a very cute 212 🌸
  • --selected-indicator.height=0 β€” its height. 0 = default.
  • --selected-indicator.italic β€” italicises it.
  • --selected-indicator.margin="0 0" β€” margin, 0 0.
  • --selected-indicator.padding="0 0" β€” padding, 0 0.
  • --selected-indicator.strikethrough β€” strike it through if that's the vibe.
  • --selected-indicator.underline β€” underline it instead.
  • --selected-indicator.width=0 β€” width, 0 for default.
  • --selected-prefix=" β—‰ " β€” the lil character marking selected items. Default β—‰ β€” and heads up, it's hidden if limit is 1 πŸ™ˆ
  • --selected=,... β€” options that should start out already selected. Give it * and it selects all of them, no cap ⭐
  • --show-help β€” shows the help keybinds so nobody's left guessing.
  • --sort β€” sorts fuzzy results by their scores. Tidy ✨
  • --strict β€” only returns if anything actually matched; otherwise it returns Filter. Choose your fighter.
  • --strip-ansi β€” strips ANSI sequences when reading from STDIN. Clean text only 🧼
  • --text.align="left" β€” text alignment, left by default.
  • --text.background="" β€” text background colour, empty.
  • --text.bold β€” bold text.
  • --text.border-background="" β€” border background colour.
  • --text.border-foreground="" β€” border foreground colour.
  • --text.border="none" β€” border style, none.
  • --text.faint β€” faint text.
  • --text.foreground="" β€” foreground colour. Note this one's empty by default, not 240 πŸ‘€
  • --text.height=0 β€” text height, 0.
  • --text.italic β€” italic text.
  • --text.margin="0 0" β€” margin, 0 0.
  • --text.padding="0 0" β€” padding, 0 0.
  • --text.strikethrough β€” strikethrough text.
  • --text.underline β€” underlined text.
  • --text.width=0 β€” text width, 0.
  • --timeout=0s β€” how long before the filter command gives up and aborts. Default 0s ⏰
  • --unselected-prefix.align="left" β€” alignment for the unselected prefix, left.
  • --unselected-prefix.background="" β€” its background colour, empty.
  • --unselected-prefix.bold β€” bolds it.
  • --unselected-prefix.border-background="" β€” border background colour.
  • --unselected-prefix.border-foreground="" β€” border foreground colour.
  • --unselected-prefix.border="none" β€” border style, none.
  • --unselected-prefix.faint β€” faint rendering.
  • --unselected-prefix.foreground="240" β€” foreground colour, 240.
  • --unselected-prefix.height=0 β€” height, 0.
  • --unselected-prefix.italic β€” italicise it.
  • --unselected-prefix.margin="0 0" β€” margin, 0 0.
  • --unselected-prefix.padding="0 0" β€” padding, 0 0.
  • --unselected-prefix.strikethrough β€” strikethrough.
  • --unselected-prefix.underline β€” underline.
  • --unselected-prefix.width=0 β€” width, 0.
  • --unselected-prefix=" β—‹ " β€” the character that marks unselected items. Default β—‹, and it's hidden if limit is 1 πŸ«₯
  • --value="" β€” the initial filter value, empty by default.
  • --width=0 β€” input width. 0 means default.

πŸŽ€ format [<template> ...] [flags]

This one formats a string using a template. Glow-up for your text, basically πŸ’–

OPTIONS

  • -l, --language="" β€” the programming language to parse code with. Empty by default.
  • --strip-ansi β€” strips ANSI sequences when reading from STDIN. Again, squeaky clean 🧼
  • --theme="pink" β€” the Glamour theme used for markdown formatting. Defaults to pink β€” taste, honestly πŸ’…
  • -t, --type="markdown" β€” which format to use. Options are markdown, template, code, emoji. Default is markdown ✨

🌸 input [flags]

Prompts you for some input. It's giving interactive, it's giving conversation 🫢

OPTIONS

  • --char-limit=400 β€” max length of the value. Set it to 0 for no limit at all. Default is 400.
  • --cursor.align="left" β€” cursor text alignment, left.
  • --cursor.background="" β€” cursor background colour, empty.
  • --cursor.bold β€” bold cursor.
  • --cursor.border-background="" β€” border background colour.
  • --cursor.border-foreground="" β€” border foreground colour.
  • --cursor.border="none" β€” border style, none.
  • --cursor.faint β€” faint cursor.
  • --cursor.foreground="212" β€” cursor colour, that iconic 212 πŸ’œ
  • --cursor.height=0 β€” cursor height, 0.
  • --cursor.italic β€” italic cursor.
  • --cursor.margin="0 0" β€” cursor margin, 0 0.
  • --cursor.mode="blink" β€” the cursor mode. Default is blink πŸ‘οΈ
  • --cursor.padding="0 0" β€” cursor padding, 0 0.
  • --cursor.strikethrough β€” strikethrough cursor.
  • --cursor.underline β€” underlined cursor.
  • --cursor.width=0 β€” cursor width, 0.
  • --header.align="left" β€” header alignment, left.
  • --header.background="" β€” header background colour, empty.
  • --header.bold β€” bold header.
  • --header.border-background="" β€” header border background colour.
  • --header.border-foreground="" β€” header border foreground colour.
  • --header.border="none" β€” header border style, none.
  • --header.faint β€” faint header.
  • --header.foreground="240" β€” header colour, 240.
  • --header.height=0 β€” header height, 0.
  • --header.italic β€” italic header.
  • --header.margin="0 0" β€” header margin, 0 0.
  • --header.padding="0 0" β€” header padding, 0 0.
  • --header.strikethrough β€” strikethrough header.
  • --header.underline β€” underlined header.
  • --header.width=0 β€” header width, 0.
  • --header="" β€” the actual header value. Empty by default.
  • --padding="0 0" β€” padding for the whole thing, 0 0.
  • --password β€” masks the input characters. For when nobody (including your screen) should see πŸ‘€ πŸ”’
  • --placeholder.align="left" β€” placeholder alignment, left.
  • --placeholder.background="" β€” placeholder background colour, empty.
  • --placeholder.bold β€” bold placeholder.
  • --placeholder.border-background="" β€” its border background colour.
  • --placeholder.border-foreground="" β€” its border foreground colour.
  • --placeholder.border="none" β€” its border style, none.
  • --placeholder.faint β€” faint placeholder.
  • --placeholder.foreground="240" β€” placeholder colour, 240.
  • --placeholder.height=0 β€” placeholder height, 0.
  • --placeholder.italic β€” italic placeholder.
  • --placeholder.margin="0 0" β€” placeholder margin, 0 0.
  • --placeholder.padding="0 0" β€” placeholder padding, 0 0.
  • --placeholder.strikethrough β€” strikethrough placeholder.
  • --placeholder.underline β€” underlined placeholder.
  • --placeholder.width=0 β€” placeholder width, 0.
  • --placeholder="Type something..." β€” the placeholder text. Default here is Type something... ✍️
  • --prompt.align="left" β€” prompt alignment, left.
  • --prompt.background="" β€” prompt background colour, empty.
  • --prompt.bold β€” bold prompt.
  • --prompt.border-background="" β€” prompt border background colour.
  • --prompt.border-foreground="" β€” prompt border foreground colour.
  • --prompt.border="none" β€” prompt border style, none.
  • --prompt.faint β€” faint prompt.
  • --prompt.foreground="" β€” prompt colour. Empty default here, not 240 β€” mind the difference 🧐
  • --prompt.height=0 β€” prompt height, 0.
  • --prompt.italic β€” italic prompt.
  • --prompt.margin="0 0" β€” prompt margin, 0 0.
  • --prompt.padding="0 0" β€” prompt padding, 0 0.
  • --prompt.strikethrough β€” strikethrough prompt.
  • --prompt.underline β€” underlined prompt.
  • --prompt.width=0 β€” prompt width, 0.
  • --prompt="> " β€” the prompt string. Defaults to > ⭐
  • --show-help β€” shows the help keybinds.
  • --strip-ansi β€” strips ANSI sequences when reading from STDIN. Yes, again. It's everywhere and we love her πŸ’…
  • --timeout=0s β€” timeout until the input aborts. Default 0s.
  • --value="" β€” initial value. You can also pass it in via stdin 😌
  • --width=0 β€” input width. 0 means it uses the terminal width.

πŸ¦‹ join <text> ... [flags]

Glues your text together β€” vertically or horizontally, dealer's choice 🌈

OPTIONS

  • --align="left" β€” text alignment, left by default.
  • --horizontal β€” joins potentially multi-line strings side by side instead of stacked 🫢
  • --vertical β€” stacks (potentially multi-line) strings vertically, like a lil tower of vibes πŸ—Ό

πŸͺ΅ log <text> ... [flags]

Logs messages to output. That's it, that's the whole thing β€” you feed it text, it writes a log line. Very demure, very mindful. πŸ’…

✨ OPTIONS ✨

  • -o, --file=STRING β€” log to a file instead of just yeeting it at stdout
  • -f, --format β€” formats the message using printf
  • --formatter="text" β€” which log formatter to use (default: "text")

Okay so the next chunk is the styling situation, and it comes in themed gangs: key, level, message, prefix, separator, time, value. Each gang has the exact same set of knobs (except key and level skip nothing, they're all identical), so think of this as one lipstick shade in seven different tubes. πŸ’„ Every single one of them is listed below because we do NOT skip things in this house.


πŸŽ€ the key crew β€” how the key part of your structured log looks:

  • --key.align="left" β€” text alignment (default "left")
  • --key.background="" β€” background color
  • --key.bold β€” bold text
  • --key.border-background="" β€” border background color
  • --key.border-foreground="" β€” border foreground color
  • --key.border="none" β€” border style (default "none", so, no border bestie)
  • --key.faint β€” faint text
  • --key.foreground="" β€” foreground color
  • --key.height=0 β€” text height
  • --key.italic β€” italicize text
  • --key.margin="0 0" β€” text margin
  • --key.padding="0 0" β€” text padding
  • --key.strikethrough β€” ~~strikethrough~~ text
  • --key.underline β€” underline text
  • --key.width=0 β€” text width

🌸 the level crew β€” same energy, now for the log level:

  • --level.align="left" β€” text alignment
  • --level.background="" β€” background color
  • --level.bold β€” bold text
  • --level.border-background="" β€” border background color
  • --level.border-foreground="" β€” border foreground color
  • --level.border="none" β€” border style
  • --level.faint β€” faint text
  • --level.foreground="" β€” foreground color
  • --level.height=0 β€” text height
  • --level.italic β€” italicize text
  • --level.margin="0 0" β€” text margin
  • --level.padding="0 0" β€” text padding
  • --level.strikethrough β€” strikethrough text
  • --level.underline β€” underline text
  • --level.width=0 β€” text width
  • -l, --level="none" β€” the log level to use (default "none")

πŸ¦‹ the message crew β€” for the actual words you're saying:

  • --message.align="left" β€” text alignment
  • --message.background="" β€” background color
  • --message.bold β€” bold text
  • --message.border-background="" β€” border background color
  • --message.border-foreground="" β€” border foreground color
  • --message.border="none" β€” border style
  • --message.faint β€” faint text
  • --message.foreground="" β€” foreground color
  • --message.height=0 β€” text height
  • --message.italic β€” italicize text
  • --message.margin="0 0" β€” text margin
  • --message.padding="0 0" β€” text padding
  • --message.strikethrough β€” strikethrough text
  • --message.underline β€” underline text
  • --message.width=0 β€” text width
  • --min-level="" β€” minimal level to show (default is empty, so everything shows up, no gatekeeping πŸšͺ)

🧚 the prefix crew β€” the little thing that goes before the message:

  • --prefix.align="left" β€” text alignment
  • --prefix.background="" β€” background color
  • --prefix.bold β€” bold text
  • --prefix.border-background="" β€” border background color
  • --prefix.border-foreground="" β€” border foreground color
  • --prefix.border="none" β€” border style
  • --prefix.faint β€” faint text
  • --prefix.foreground="" β€” foreground color
  • --prefix.height=0 β€” text height
  • --prefix.italic β€” italicize text
  • --prefix.margin="0 0" β€” text margin
  • --prefix.padding="0 0" β€” text padding
  • --prefix.strikethrough β€” strikethrough text
  • --prefix.underline β€” underline text
  • --prefix.width=0 β€” text width
  • --prefix=STRING β€” prefix to print before the message

πŸ“ the separator crew β€” the divider between bits:

  • --separator.align="left" β€” text alignment
  • --separator.background="" β€” background color
  • --separator.bold β€” bold text
  • --separator.border-background="" β€” border background color
  • --separator.border-foreground="" β€” border foreground color
  • --separator.border="none" β€” border style
  • --separator.faint β€” faint text
  • --separator.foreground="" β€” foreground color
  • --separator.height=0 β€” text height
  • --separator.italic β€” italicize text
  • --separator.margin="0 0" β€” text margin
  • --separator.padding="0 0" β€” text padding
  • --separator.strikethrough β€” strikethrough text
  • --separator.underline β€” underline text
  • --separator.width=0 β€” text width
  • -s, --structured β€” use structured logging (keys and values, the whole organized moment πŸ‘‘

πŸ’œ the time crew β€” timestamp aesthetics:

  • --time.align="left" β€” text alignment
  • --time.background="" β€” background color
  • --time.bold β€” bold text
  • --time.border-background="" β€” border background color
  • --time.border-foreground="" β€” border foreground color
  • --time.border="none" β€” border style
  • --time.faint β€” faint text
  • --time.foreground="" β€” foreground color
  • --time.height=0 β€” text height
  • --time.italic β€” italicize text
  • --time.margin="0 0" β€” text margin
  • --time.padding="0 0" β€” text padding
  • --time.strikethrough β€” strikethrough text
  • --time.underline β€” underline text
  • --time.width=0 β€” text width
  • -t, --time="" β€” the time format to use (kitchen, layout, ansic, rfc822, etc…)

⭐ the value crew β€” closing out the styling gangs:

  • --value.align="left" β€” text alignment
  • --value.background="" β€” background color
  • --value.bold β€” bold text
  • --value.border-background="" β€” border background color
  • --value.border-foreground="" β€” border foreground color
  • --value.border="none" β€” border style
  • --value.faint β€” faint text
  • --value.foreground="" β€” foreground color
  • --value.height=0 β€” text height
  • --value.italic β€” italicize text
  • --value.margin="0 0" β€” text margin
  • --value.padding="0 0" β€” text padding
  • --value.strikethrough β€” strikethrough text
  • --value.underline β€” underline text
  • --value.width=0 β€” text width

πŸ“œ pager [<content>] [flags]

Scrolls through a file. Cozy little reading nook energy, but make it terminal. πŸ›‹οΈ

✨ OPTIONS ✨

  • --align="left" β€” text alignment
  • --background="" β€” background color
  • --bold β€” bold text
  • --border-background="" β€” border background color
  • --border-foreground="212" β€” border foreground color (default "212", a very cute pink-ish number bestie)
  • --border="rounded" β€” border style (default "rounded", obviously, we're soft here)
  • --faint β€” faint text
  • --foreground="" β€” foreground color
  • --height=0 β€” text height

πŸ™ˆ the help crew β€” for the help text itself:

  • --help.align="left" β€” text alignment
  • --help.background="" β€” background color
  • --help.bold β€” bold text
  • --help.border-background="" β€” border background color
  • --help.border-foreground="" β€” border foreground color
  • --help.border="none" β€” border style
  • --help.faint β€” faint text
  • --help.foreground="241" β€” foreground color (default "241")
  • --help.height=0 β€” text height
  • --help.italic β€” italicize text
  • --help.margin="0 0" β€” text margin
  • --help.padding="0 0" β€” text padding
  • --help.strikethrough β€” strikethrough text
  • --help.underline β€” underline text
  • --help.width=0 β€” text width
  • --italic β€” italicize text

πŸ”’ the line-number crew β€” the numbers down the side:

  • --line-number.align="left" β€” text alignment
  • --line-number.background="" β€” background color
  • --line-number.bold β€” bold text
  • --line-number.border-background="" β€” border background color
  • --line-number.border-foreground="" β€” border foreground color
  • --line-number.border="none" β€” border style
  • --line-number.faint β€” faint text
  • --line-number.foreground="237" β€” foreground color (default "237")
  • --line-number.height=0 β€” text height
  • --line-number.italic β€” italicize text
  • --line-number.margin="0 0" β€” text margin
  • --line-number.padding="0 0" β€” text padding
  • --line-number.strikethrough β€” strikethrough text
  • --line-number.underline β€” underline text
  • --line-number.width=0 β€” text width
  • --margin="0 0" β€” text margin

πŸ”₯ the match-highlight crew β€” for when your search hits, and it HITS:

  • --match-highlight.align="left" β€” text alignment
  • --match-highlight.background="225" β€” background color (default "225")
  • --match-highlight.bold β€” bold text
  • --match-highlight.border-background="" β€” border background color
  • --match-highlight.border-foreground="" β€” border foreground color
  • --match-highlight.border="none" β€” border style
  • --match-highlight.faint β€” faint text
  • --match-highlight.foreground="235" β€” foreground color (default "235")
  • --match-highlight.height=0 β€” text height
  • --match-highlight.italic β€” italicize text
  • --match-highlight.margin="0 0" β€” text margin
  • --match-highlight.padding="0 0" β€” text padding
  • --match-highlight.strikethrough β€” strikethrough text
  • --match-highlight.underline β€” underline text
  • --match-highlight.width=0 β€” text width

πŸ” and the match crew β€” the plain, un-highlighted matches:

  • --match.align="left" β€” text alignment
  • --match.background="" β€” background color
  • --match.bold β€” bold text
  • --match.border-background="" β€” border background color
  • --match.border-foreground="" β€” border foreground color
  • --match.border="none" β€” border style for the match highlight πŸ’…
  • --match.faint β€” faint text for matches
  • --match.foreground="212" β€” foreground color of the match (default 212, she's got taste ✨)
  • --match.height=0 β€” text height
  • --match.italic β€” italicize the match text
  • --match.margin="0 0" β€” text margin
  • --match.padding="0 0" β€” text padding
  • --match.strikethrough β€” strikethrough text
  • --match.underline β€” underline text
  • --match.width=0 β€” text width
  • --padding="0 1" β€” text padding, defaulting to "0 1" πŸŽ€
  • --show-line-numbers β€” show line numbers, lowkey essential ngl
  • --soft-wrap β€” soft wrap those long lines πŸ¦‹
  • --strikethrough β€” strikethrough text
  • --timeout=0s β€” timeout until command exits
  • --underline β€” underline text
  • --width=0 β€” text width

πŸŒ€ spin β€” the "we're working on it bestie" command

spin <command> ... [flags]

Displays a spinner while running a command. It's giving main character energy while your build chugs along in the background πŸ’€

✨ OPTIONS ✨

  • -a, --align="left" β€” alignment of the spinner with regard to the title, default "left"
  • --padding="0 0" β€” padding
  • --show-error β€” show the output of the command only if the command fails πŸ™ˆ
  • --show-output β€” show or pipe the output of the command during execution (shows both STDOUT and STDERR, so you get the whole picture)
  • --show-stderr β€” show STDERR errput (yes, "errput", that's what it says, iconic typo honestly)
  • --show-stdout β€” show STDOUT output
  • --spinner.align="left" β€” text alignment for the spinner itself
  • --spinner.background="" β€” background color
  • --spinner.bold β€” bold text
  • --spinner.border-background="" β€” border background color
  • --spinner.border-foreground="" β€” border foreground color
  • --spinner.border="none" β€” border style
  • --spinner.faint β€” faint text
  • --spinner.foreground="212" β€” foreground color, default "212" πŸ“
  • --spinner.height=0 β€” text height
  • --spinner.italic β€” italicize text
  • --spinner.margin="0 0" β€” text margin
  • --spinner.padding="0 0" β€” text padding
  • --spinner.strikethrough β€” strikethrough text
  • --spinner.underline β€” underline text
  • --spinner.width=0 β€” text width
  • -s, --spinner="dot" β€” spinner type, default "dot" (a literal dot spinning, slay)
  • --timeout=0s β€” timeout until the spin command aborts
  • --title.align="left" β€” text alignment for the title
  • --title.background="" β€” background color
  • --title.bold β€” bold text
  • --title.border-background="" β€” border background color
  • --title.border-foreground="" β€” border foreground color
  • --title.border="none" β€” border style
  • --title.faint β€” faint text
  • --title.foreground="" β€” foreground color
  • --title.height=0 β€” text height
  • --title.italic β€” italicize text
  • --title.margin="0 0" β€” text margin
  • --title.padding="0 0" β€” text padding
  • --title.strikethrough β€” strikethrough text
  • --title.underline β€” underline text
  • --title.width=0 β€” text width
  • --title="Loading..." β€” the text you show the user while spinning, default "Loading..." 🫢

🎨 style β€” make your text pretty

style [<text> ...] [flags]

Apply coloring, borders, spacing to text. This is THE glow-up command, no cap πŸ’…βœ¨

✨ OPTIONS ✨

  • --align="left" β€” text alignment
  • --background="" β€” background color
  • --bold β€” bold text
  • --border-background="" β€” border background color
  • --border-foreground="" β€” border foreground color
  • --border="none" β€” border style
  • --faint β€” faint text
  • --foreground="" β€” foreground color
  • --height=0 β€” text height
  • --italic β€” italicize text
  • --margin="0 0" β€” text margin
  • --padding="0 0" β€” text padding
  • --strikethrough β€” strikethrough text
  • --strip-ansi β€” strip ANSI sequences when reading from STDIN 🧼
  • --trim β€” trim whitespaces on every input line
  • --underline β€” underline text
  • --width=0 β€” text width

πŸ“Š table β€” render a table of data

table [flags]

Render a table of data. Data girlies rise up 🌈

✨ OPTIONS ✨

  • --border.align="left" β€” text alignment
  • --border.background="" β€” background color
  • --border.bold β€” bold text
  • --border.border-background="" β€” border background color
  • --border.border-foreground="" β€” border foreground color
  • --border.border="none" β€” border style
  • --border.faint β€” faint text
  • --border.foreground="" β€” foreground color
  • --border.height=0 β€” text height
  • --border.italic β€” italicize text
  • --border.margin="0 0" β€” text margin
  • --border.padding="0 0" β€” text padding
  • --border.strikethrough β€” strikethrough text
  • --border.underline β€” underline text
  • --border.width=0 β€” text width
  • -b, --border="rounded" β€” border style, default "rounded" (rounded corners are objectively superior, I don't make the rules) πŸŽ€
  • --cell.align="left" β€” text alignment
  • --cell.background="" β€” background color
  • --cell.bold β€” bold text
  • --cell.border-background="" β€” border background color
  • --cell.border-foreground="" β€” border foreground color
  • --cell.border="none" β€” border style
  • --cell.faint β€” faint text
  • --cell.foreground="" β€” foreground color
  • --cell.height=0 β€” text height
  • --cell.italic β€” italicize text
  • --cell.margin="0 0" β€” text margin
  • --cell.padding="0 0" β€” text padding
  • --cell.strikethrough β€” strikethrough text
  • --cell.underline β€” underline text
  • --cell.width=0 β€” text width
  • -c, --columns=COLUMNS,... β€” column names
  • --fields-per-record=0 β€” sets the number of expected fields per record
  • -f, --file="" β€” file path
  • --header.align="left" β€” text alignment
  • --header.background="" β€” background color
  • --header.bold β€” bold text
  • --header.border-background="" β€” border background color
  • --header.border-foreground="" β€” border foreground color
  • --header.border="none" β€” border style
  • --header.faint β€” faint text
  • --header.foreground="" β€” foreground color
  • --header.height=0 β€” text height
  • --header.italic β€” italicize text
  • --header.margin="0 0" β€” text margin
  • --header.padding="0 0" β€” text padding
  • --header.strikethrough β€” strikethrough text
  • --header.underline β€” underline text
  • --header.width=0 β€” text width
  • --height=0 β€” table height
  • --hide-count β€” hide item count on help keybinds
  • --lazy-quotes β€” if LazyQuotes is true, a quote may appear in an unquoted field and a non-doubled quote may appear in a quoted field (that's the whole description, bestie, take it verbatim)
  • --padding="0 0" β€” padding
  • -p, --print β€” static print
  • -r, --return-column=0 β€” which column number should be returned instead of whole row as string. Default=0 returns whole Row 🫢
  • --selected.align="left" β€” text alignment
  • --selected.background="" β€” background color
  • --selected.bold β€” bold text
  • --selected.border-background="" β€” border background color
  • --selected.border-foreground="" β€” border foreground color
  • --selected.border="none" β€” border style
  • --selected.faint β€” faint text
  • --selected.foreground="212" β€” foreground color, default "212" πŸ“
  • --selected.height=0 β€” text height
  • --selected.italic β€” italicize text
  • --selected.margin="0 0" β€” text margin
  • --selected.padding="0 0" β€” text padding
  • --selected.strikethrough β€” strikethrough text
  • --selected.underline β€” underline text
  • --selected.width=0 β€” text width
  • -s, --separator="," β€” row separator, default ","
  • --show-help β€” show help keybinds
  • --timeout=0s β€” timeout until choose returns selected element
  • -w, --widths=WIDTHS,... β€” column widths

🏷️ version-check β€” semver vibes

version-check <constraint> [flags]

Semver check current gum version. Like a vibe check but for version numbers πŸ’€


✍️ write β€” prompt for long-form text

write [flags]

Prompt for long-form text. Essay mode activated, bestie πŸ“

✨ OPTIONS ✨

  • --base.align="left" β€” text alignment
  • --base.background="" β€” background color
  • --base.bold β€” bold text
  • --base.border-background="" β€” border background color
  • --base.border-foreground="" β€” border foreground color
  • --base.border="none" β€” border style
  • --base.faint β€” faint text
  • --base.foreground="" β€” foreground color
  • --base.height=0 β€” text height
  • --base.italic β€” italicize text
  • --base.margin="0 0" β€” text margin
  • --base.padding="0 0" β€” text padding
  • --base.strikethrough β€” strikethrough text
  • --base.underline β€” underline text
  • --base.width=0 β€” text width
  • --char-limit=0 β€” maximum value length (0 for no limit, so 0 means go off queen)
  • --cursor-line-number.align="left" β€” text alignment
  • --cursor-line-number.background="" β€” background color
  • --cursor-line-number.bold β€” bold text
  • --cursor-line-number.border-background="" β€” border background color
  • --cursor-line-number.border-foreground="" β€” border foreground color
  • --cursor-line-number.border="none" β€” border style
  • --cursor-line-number.faint β€” faint text
  • --cursor-line-number.foreground="7" β€” foreground colour, default 7 🎨
  • --cursor-line-number.height=0 β€” text height, default 0
  • --cursor-line-number.italic β€” italicize the text πŸ¦‹
  • --cursor-line-number.margin="0 0" β€” text margin, default 0 0
  • --cursor-line-number.padding="0 0" β€” text padding, default 0 0
  • --cursor-line-number.strikethrough β€” strikethrough text πŸ’€
  • --cursor-line-number.underline β€” underline text
  • --cursor-line-number.width=0 β€” text width, default 0

okay next up, the cursor-line bundle β€” the whole-line version of that vibe 🫢

  • --cursor-line.align="left" β€” text alignment, default left
  • --cursor-line.background="" β€” background colour, default empty
  • --cursor-line.bold β€” bold text πŸ”₯
  • --cursor-line.border-background="" β€” border background colour, default empty
  • --cursor-line.border-foreground="" β€” border foreground colour, default empty
  • --cursor-line.border="none" β€” border style, default none
  • --cursor-line.faint β€” faint text
  • --cursor-line.foreground="" β€” foreground colour, default empty
  • --cursor-line.height=0 β€” text height, default 0
  • --cursor-line.italic β€” italicize text
  • --cursor-line.margin="0 0" β€” text margin, default 0 0
  • --cursor-line.padding="0 0" β€” text padding, default 0 0
  • --cursor-line.strikethrough β€” strikethrough text
  • --cursor-line.underline β€” underline text
  • --cursor-line.width=0 β€” text width, default 0

and now the actual cursor itself, main character energy πŸ‘‘

  • --cursor.align="left" β€” text alignment, default left
  • --cursor.background="" β€” background colour, default empty
  • --cursor.bold β€” bold text
  • --cursor.border-background="" β€” border background colour, default empty
  • --cursor.border-foreground="" β€” border foreground colour, default empty
  • --cursor.border="none" β€” border style, default none
  • --cursor.faint β€” faint text
  • --cursor.foreground="212" β€” foreground colour, default 212 πŸ’…
  • --cursor.height=0 β€” text height, default 0
  • --cursor.italic β€” italicize text
  • --cursor.margin="0 0" β€” text margin, default 0 0
  • --cursor.mode="blink" β€” cursor mode, default blink ✨
  • **--cursor.padding="0 0"** β€” text padding, default 0 0`
  • --cursor.strikethrough β€” strikethrough text
  • --cursor.underline β€” underline text
  • --cursor.width=0 β€” text width, default 0

end-of-buffer squad, for when you've scrolled all the way down 😭

  • --end-of-buffer.align="left" β€” text alignment, default left
  • --end-of-buffer.background="" β€” background colour, default empty
  • --end-of-buffer.bold β€” bold text
  • --end-of-buffer.border-background="" β€” border background colour, default empty
  • --end-of-buffer.border-foreground="" β€” border foreground colour, default empty
  • --end-of-buffer.border="none" β€” border style, default none
  • --end-of-buffer.faint β€” faint text
  • --end-of-buffer.foreground="0" β€” foreground colour, default 0
  • --end-of-buffer.height=0 β€” text height, default 0
  • --end-of-buffer.italic β€” italicize text
  • --end-of-buffer.margin="0 0" β€” text margin, default 0 0
  • --end-of-buffer.padding="0 0" β€” text padding, default 0 0
  • --end-of-buffer.strikethrough β€” strikethrough text
  • --end-of-buffer.underline β€” underline text
  • --end-of-buffer.width=0 β€” text width, default 0

header styling, because first impressions >>> 🌸

  • --header.align="left" β€” text alignment, default left
  • --header.background="" β€” background colour, default empty
  • --header.bold β€” bold text
  • --header.border-background="" β€” border background colour, default empty
  • --header.border-foreground="" β€” border foreground colour, default empty
  • --header.border="none" β€” border style, default none
  • --header.faint β€” faint text
  • --header.foreground="240" β€” foreground colour, default 240
  • --header.height=0 β€” text height, default 0
  • --header.italic β€” italicize text
  • --header.margin="0 0" β€” text margin, default 0 0
  • --header.padding="0 0" β€” text padding, default 0 0
  • --header.strikethrough β€” strikethrough text
  • --header.underline β€” underline text
  • --header.width=0 β€” text width, default 0
  • --header="" β€” the actual header value, default empty πŸŽ€
  • --height=5 β€” text area height, default 5
  • --line-number.align="left" β€” text alignment, default left
  • --line-number.background="" β€” background colour, default empty
  • --line-number.bold β€” bold text
  • --line-number.border-background="" β€” border background colour, default empty
  • --line-number.border-foreground="" β€” border foreground colour, default empty
  • --line-number.border="none" β€” border style, default none
  • --line-number.faint β€” faint text
  • --line-number.foreground="7" β€” foreground colour, default 7
  • --line-number.height=0 β€” text height, default 0
  • --line-number.italic β€” italicize text
  • --line-number.margin="0 0" β€” text margin, default 0 0
  • --line-number.padding="0 0" β€” text padding, default 0 0
  • --line-number.strikethrough β€” strikethrough text
  • --line-number.underline β€” underline text
  • --line-number.width=0 β€” text width, default 0
  • --max-lines=0 β€” maximum number of lines; 0 means no limit 🚫
  • --padding="0 0" β€” padding, default 0 0
  • --placeholder.align="left" β€” text alignment, default left
  • --placeholder.background="" β€” background colour, default empty
  • --placeholder.bold β€” bold text
  • --placeholder.border-background="" β€” border background colour, default empty
  • --placeholder.border-foreground="" β€” border foreground colour, default empty
  • --placeholder.border="none" β€” border style, default none
  • --placeholder.faint β€” faint text
  • --placeholder.foreground="240" β€” foreground colour, default 240
  • --placeholder.height=0 β€” text height, default 0
  • --placeholder.italic β€” italicize text
  • --placeholder.margin="0 0" β€” text margin, default 0 0
  • --placeholder.padding="0 0" β€” text padding, default 0 0
  • --placeholder.strikethrough β€” strikethrough text
  • --placeholder.underline β€” underline text
  • --placeholder.width=0 β€” text width, default 0
  • --placeholder="Write something..." β€” the placeholder value itself, default Write something... ✍️
  • --prompt.align="left" β€” text alignment, default left
  • --prompt.background="" β€” background colour, default empty
  • --prompt.bold β€” bold text
  • --prompt.border-background="" β€” border background colour, default empty
  • --prompt.border-foreground="" β€” border foreground colour, default empty
  • --prompt.border="none" β€” border style, default none
  • --prompt.faint β€” faint text
  • --prompt.foreground="7" β€” foreground colour, default 7
  • --prompt.height=0 β€” text height, default 0
  • --prompt.italic β€” italicize text
  • --prompt.margin="0 0" β€” text margin, default 0 0
  • --prompt.padding="0 0" β€” text padding, default 0 0
  • --prompt.strikethrough β€” strikethrough text
  • --prompt.underline β€” underline text
  • --prompt.width=0 β€” text width, default 0
  • --prompt="┃ " β€” the prompt to display, default ┃ 🫢
  • --show-cursor-line β€” show the cursor line πŸ‘€
  • --show-help β€” show help key binds ⌨️
  • --show-line-numbers β€” show line numbers πŸ”’
  • --strip-ansi β€” strip ANSI sequences when reading from STDIN 🧼
  • --timeout=0s β€” timeout until choose returns the selected element, default 0s ⏳
  • --value="" β€” initial value (and yes, it can be passed via stdin), default empty πŸ’œ
  • --width=0 β€” text area width; 0 means terminal width, default 0 πŸ“

(c) 2022-2024 Charmbracelet, Inc.

Released under MIT license.


okay that's the whole page bestie, you're officially a gum scholar πŸŽ“βœ¨ this beauty is gum, stamped 2026-09-24, and filed under GUM(1) β€” go forth and make your terminal gorgeous πŸ’…πŸŒˆ

πŸ“¦ where this page comes from