github charmbracelet/huh v0.3.0

latest releases: v0.6.0, v0.5.3, v0.5.2...
9 months ago

Scrolling, autocomplete, smaller binaries and more!

This is a big release with a tonne of new features.

  • Scrollable Forms
  • Scrollable Selects and Multi selects
  • Autocomplete for inputs
  • 7x smaller binaries
  • Multi select filtering
  • Lotsa' bugfixes and quality-of-life improvements

To upgrade to huh v0.3.0:

go get -u github.com/charmbracelet/huh@latest

For details read on!

Scrollable forms

If a form is in a small terminal it will automatically resize to fit the available space and the active group will scroll to stay in view. Form heights can also be set manually with the new WithHeight method.

Made with VHS

Select and Multi select Scrolling

Select and Multi select fields can now be restricted to a certain height, allowing their options to be scrollable. This means you can now pack in tonnes of options.

To make a Select or MultiSelect scrollable simply set the height on the field or form through the Height method.

s := huh.NewSelect()
    .Title("What’s for dinner?")
    .Options(/* ... */)
    .Height(height)

Made with VHS

Autocomplete

Now Inputs can offer suggestions making it easier for users to fill out inputs. These suggestions can be accepted autocomplete-style with a configurable key binding (which defaults to ctrl+e).

Simply provide a []string to Suggestions to enable this feature.

huh.NewInput().
    Title("What's for lunch?").
    Prompt("? ").
    Suggestions([]string{
        "Artichoke",
        // ...
        "Cashew Apple",
        "Cashews",
        "Cat Food",
        "Coconut Milk",
        "Cucumber",
        "Curry Paste",
        "Currywurst",
        // ...
    })

Made with VHS

More helpful help

Forms will automatically adjust their help text to indicate to the user whether the form will continue or submit on actions. This works with hidden groups. In the below example, the user will be asked to list their allergies if they select "Yes" otherwise, the form will submit.

Made with VHS

Way smaller binaries

Huh now produces way smaller binaries! Thanks to #94 Huh now has a 7x smaller compiled footprint.

Before, using huh@v0.2.3:

33M     ./burger

After, using huh@v0.3.0:

4.5M    ./burger

Thanks, Vitor!

Special thanks to the intrepid @vitor-mariano, one of the earliest huh contributors, who came in hot with features, fixes, improvements and good vibes. Thank you, Vitor!

Changelog

New

Fixed

Full Changelog: v0.2.3...v0.3.0


The Charm logo

Thoughts? Questions? We love hearing from you. Feel free to reach out on Twitter, The Fediverse, or on Discord.

Don't miss a new huh release

NewReleases is sending notifications on new releases.