npm / @inquirer/prompts
@inquirer/prompts
What changed in @inquirer/prompts 7 to 8, from its official release notes, upgrade guides and advisories. Sources checked 2026-10-19.
8 breaking1 security10 new APIs and options5 behavior and defaults2 tooling19 fixes and other
See which of these apply to your code, ranked, in your agent:
npx @unstale/cli init@inquirer/prompts 842 changes
Breaking changes 8
The prompt accepts single-key
yandnresponses even with localized keywords, and unrecognized input no longer silently selects the default answer.Adjusted the explicit engine limits to match the higher minimum already enforced, affecting which runtime versions are supported.
Checked and disabled elements are always included in the returned array.
The cancel() method on prompt return custom Promise was removed; use AbortSignal instead.
All packages are ESM-only; CommonJS imports are no longer supported.
The instructions config property was removed from checkbox, search, and select prompts; use theme.style.keysHelpTip instead.
Node.js 20 or later is now required; versions below 20 are no longer supported.
The helpMode theme property was removed from checkbox, search, and select prompts; use theme.style.keysHelpTip instead.
Security 1
Security warnings in external-editor are fixed.
New APIs and options 8
The password prompt gains the toggleMask option, allowing users to reveal the typed value with ctrl+t.
A new initialValue option pre-fills the search input.
Set INQUIRER_KEYBINDINGS to vim or emacs to enable those keybindings as a user preference; this disables search in the select prompt.
A new package is available for internationalization.
Various new theme options make all prompts content localizable.
Choices can have a description, displayed under the list when the choice is highlighted.
The search prompt supports default.
The rawlist prompt now supports the default option.
Behavior and default changes 5
Answers may include surrounding whitespace, which the prompt now ignores.
The confirm prompt now matches localized yes/no answers per locale.
The useState setter now accepts a reducer/updater function, changing its type.
A loading message is shown while editor prompt input is being validated.
The cursor can hover disabled options in select and checkbox lists, but cannot interact with them.
Tooling 2
Type inference is improved for checkbox prompts.
Type inference is improved for search prompts.
Fixes and other changes 18
Answers may include surrounding whitespace, which the prompt now ignores.
While async search is loading, Enter waits for fresh results and preserves the query; repeated Enter presses during validation no longer run the async validator more than once.
confirm() trims surrounding whitespace from answers before matching yes/no keywords.
Keystrokes batched with the key that settles a prompt no longer reach keypress handlers after the prompt is done, cancelled, or aborted.
Bundled prompts pin @inquirer/type to an exact version in published manifests to prevent its type definitions from breaking downstream TypeScript builds.
An explicit undefined is accepted as the default.
An explicit undefined is accepted as the default.
An explicit undefined is accepted as the default.
Floating-point step errors are avoided.
Fixes the cursor being mispositioned relative to the input when lines wrap.
Preserves exact literal types in the choices array.
Allows the input default value to have type undefined.
Fixes some Windows terminals freezing and not reacting to keypresses.
Fixes editor prompt handling of editor paths on Windows.
Improves type inference for the expand prompt type.
Keypresses that happen before a prompt is rendered are ignored.
The return type is now inferred properly when choices is an array of string literals.
Fixes TypeScript not discovering types when moduleResolution is set to commonjs.
@inquirer/prompts 73 changes
New APIs and options 2
Adds simple RegExp validation for input prompts using pattern.
Adds patternError for simple RegExp validation in input prompts.
Fixes and other changes 1
Downgraded to mute-stream@2 to maintain Node 18 compatibility.