# What changed in @inquirer/prompts

> 45 changes in @inquirer/prompts 7 to 8 from its official release notes, upgrade guides and advisories: 8 breaking, 1 security, 10 new APIs and options. Each one cited. Sources checked 2026-10-19. HTML: https://unstale.sh/npm/@inquirer/prompts/

To see which of these apply to a repository, run `npx @unstale/cli init` in it.

## @inquirer/prompts 8

### Breaking changes

- The prompt accepts single-key `y` and `n` responses even with localized keywords, and unrecognized input no longer silently selects the default answer. (8.7.3) — [release notes](https://github.com/SBoudrias/Inquirer.js/releases/tag/%40inquirer/prompts%408.7.3)
- Adjusted the explicit engine limits to match the higher minimum already enforced, affecting which runtime versions are supported. (8.5.1) — [release notes](https://github.com/SBoudrias/Inquirer.js/releases/tag/%40inquirer/prompts%408.5.1)
- Checked and disabled elements are always included in the returned array. (8.3.0) — [release notes](https://github.com/SBoudrias/Inquirer.js/releases/tag/%40inquirer/prompts%408.3.0)
- The cancel() method on prompt return custom Promise was removed; use AbortSignal instead. (8.0.0) — [release notes](https://github.com/SBoudrias/Inquirer.js/releases/tag/%40inquirer/prompts%408.0.0)
- All packages are ESM-only; CommonJS imports are no longer supported. (8.0.0) — [release notes](https://github.com/SBoudrias/Inquirer.js/releases/tag/%40inquirer/prompts%408.0.0)
- The instructions config property was removed from checkbox, search, and select prompts; use theme.style.keysHelpTip instead. (8.0.0) — [release notes](https://github.com/SBoudrias/Inquirer.js/releases/tag/%40inquirer/prompts%408.0.0)
- Node.js 20 or later is now required; versions below 20 are no longer supported. (8.0.0) — [release notes](https://github.com/SBoudrias/Inquirer.js/releases/tag/%40inquirer/prompts%408.0.0)
- The helpMode theme property was removed from checkbox, search, and select prompts; use theme.style.keysHelpTip instead. (8.0.0) — [release notes](https://github.com/SBoudrias/Inquirer.js/releases/tag/%40inquirer/prompts%408.0.0)

### Security

- Security warnings in external-editor are fixed. (8.5.2) — [release notes](https://github.com/SBoudrias/Inquirer.js/releases/tag/%40inquirer/prompts%408.5.2)

### New APIs and options

- The password prompt gains the toggleMask option, allowing users to reveal the typed value with ctrl+t. (8.7.0) — [release notes](https://github.com/SBoudrias/Inquirer.js/releases/tag/%40inquirer/prompts%408.7.0)
- A new initialValue option pre-fills the search input. (8.6.0) — [release notes](https://github.com/SBoudrias/Inquirer.js/releases/tag/%40inquirer/prompts%408.6.0)
- Set INQUIRER_KEYBINDINGS to vim or emacs to enable those keybindings as a user preference; this disables search in the select prompt. (8.5.0) — [release notes](https://github.com/SBoudrias/Inquirer.js/releases/tag/%40inquirer/prompts%408.5.0)
- A new package is available for internationalization. (8.3.0) — [release notes](https://github.com/SBoudrias/Inquirer.js/releases/tag/%40inquirer/prompts%408.3.0)
- Various new theme options make all prompts content localizable. (8.3.0) — [release notes](https://github.com/SBoudrias/Inquirer.js/releases/tag/%40inquirer/prompts%408.3.0)
- Choices can have a description, displayed under the list when the choice is highlighted. (8.2.0) — [release notes](https://github.com/SBoudrias/Inquirer.js/releases/tag/%40inquirer/prompts%408.2.0)
- The search prompt supports default. (8.2.0) — [release notes](https://github.com/SBoudrias/Inquirer.js/releases/tag/%40inquirer/prompts%408.2.0)
- The rawlist prompt now supports the default option. (8.1.0) — [release notes](https://github.com/SBoudrias/Inquirer.js/releases/tag/%40inquirer/prompts%408.1.0)

### Behavior and default changes

- Answers may include surrounding whitespace, which the prompt now ignores. (8.7.3) — [release notes](https://github.com/SBoudrias/Inquirer.js/releases/tag/%40inquirer/prompts%408.7.3)
- The confirm prompt now matches localized yes/no answers per locale. (8.7.0) — [release notes](https://github.com/SBoudrias/Inquirer.js/releases/tag/%40inquirer/prompts%408.7.0)
- The useState setter now accepts a reducer/updater function, changing its type. (8.6.0) — [release notes](https://github.com/SBoudrias/Inquirer.js/releases/tag/%40inquirer/prompts%408.6.0)
- A loading message is shown while editor prompt input is being validated. (8.4.0) — [release notes](https://github.com/SBoudrias/Inquirer.js/releases/tag/%40inquirer/prompts%408.4.0)
- The cursor can hover disabled options in select and checkbox lists, but cannot interact with them. (8.3.0) — [release notes](https://github.com/SBoudrias/Inquirer.js/releases/tag/%40inquirer/prompts%408.3.0)

### Tooling

- Type inference is improved for checkbox prompts. (8.4.0) — [release notes](https://github.com/SBoudrias/Inquirer.js/releases/tag/%40inquirer/prompts%408.4.0)
- Type inference is improved for search prompts. (8.4.0) — [release notes](https://github.com/SBoudrias/Inquirer.js/releases/tag/%40inquirer/prompts%408.4.0)

### Fixes and other changes

- Answers may include surrounding whitespace, which the prompt now ignores. (8.7.3) — [release notes](https://github.com/SBoudrias/Inquirer.js/releases/tag/%40inquirer/prompts%408.7.3)
- 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. (8.7.3) — [release notes](https://github.com/SBoudrias/Inquirer.js/releases/tag/%40inquirer/prompts%408.7.3)
- confirm() trims surrounding whitespace from answers before matching yes/no keywords. (8.7.2) — [release notes](https://github.com/SBoudrias/Inquirer.js/releases/tag/%40inquirer/prompts%408.7.2)
- Keystrokes batched with the key that settles a prompt no longer reach keypress handlers after the prompt is done, cancelled, or aborted. (8.7.2) — [release notes](https://github.com/SBoudrias/Inquirer.js/releases/tag/%40inquirer/prompts%408.7.2)
- Bundled prompts pin @inquirer/type to an exact version in published manifests to prevent its type definitions from breaking downstream TypeScript builds. (8.7.1) — [release notes](https://github.com/SBoudrias/Inquirer.js/releases/tag/%40inquirer/prompts%408.7.1)
- An explicit undefined is accepted as the default. (8.6.0) — [release notes](https://github.com/SBoudrias/Inquirer.js/releases/tag/%40inquirer/prompts%408.6.0)
- An explicit undefined is accepted as the default. (8.6.0) — [release notes](https://github.com/SBoudrias/Inquirer.js/releases/tag/%40inquirer/prompts%408.6.0)
- An explicit undefined is accepted as the default. (8.6.0) — [release notes](https://github.com/SBoudrias/Inquirer.js/releases/tag/%40inquirer/prompts%408.6.0)
- Floating-point step errors are avoided. (8.6.0) — [release notes](https://github.com/SBoudrias/Inquirer.js/releases/tag/%40inquirer/prompts%408.6.0)
- Fixes the cursor being mispositioned relative to the input when lines wrap. (8.5.0) — [release notes](https://github.com/SBoudrias/Inquirer.js/releases/tag/%40inquirer/prompts%408.5.0)
- Preserves exact literal types in the choices array. (8.4.3) — [release notes](https://github.com/SBoudrias/Inquirer.js/releases/tag/%40inquirer/prompts%408.4.3)
- Allows the input default value to have type undefined. (8.4.3) — [release notes](https://github.com/SBoudrias/Inquirer.js/releases/tag/%40inquirer/prompts%408.4.3)
- Fixes some Windows terminals freezing and not reacting to keypresses. (8.4.2) — [release notes](https://github.com/SBoudrias/Inquirer.js/releases/tag/%40inquirer/prompts%408.4.2)
- Fixes editor prompt handling of editor paths on Windows. (8.4.0) — [release notes](https://github.com/SBoudrias/Inquirer.js/releases/tag/%40inquirer/prompts%408.4.0)
- Improves type inference for the expand prompt type. (8.4.0) — [release notes](https://github.com/SBoudrias/Inquirer.js/releases/tag/%40inquirer/prompts%408.4.1), [release notes](https://github.com/SBoudrias/Inquirer.js/releases/tag/%40inquirer/prompts%408.4.0)
- Keypresses that happen before a prompt is rendered are ignored. (8.3.0) — [release notes](https://github.com/SBoudrias/Inquirer.js/releases/tag/%40inquirer/prompts%408.3.0)
- The return type is now inferred properly when choices is an array of string literals. (8.1.0) — [release notes](https://github.com/SBoudrias/Inquirer.js/releases/tag/%40inquirer/prompts%408.1.0)
- Fixes TypeScript not discovering types when moduleResolution is set to commonjs. (8.0.2) — [release notes](https://github.com/SBoudrias/Inquirer.js/releases/tag/%40inquirer/prompts%408.0.2)

## @inquirer/prompts 7

### New APIs and options

- Adds simple RegExp validation for input prompts using pattern. (7.10.0) — [release notes](https://github.com/SBoudrias/Inquirer.js/releases/tag/%40inquirer/prompts%407.10.0)
- Adds patternError for simple RegExp validation in input prompts. (7.10.0) — [release notes](https://github.com/SBoudrias/Inquirer.js/releases/tag/%40inquirer/prompts%407.10.0)

### Fixes and other changes

- Downgraded to mute-stream@2 to maintain Node 18 compatibility. (7.10.1) — [release notes](https://github.com/SBoudrias/Inquirer.js/releases/tag/%40inquirer/prompts%407.10.1)
