# What changed in shell-quote

> 20 changes in shell-quote 1 from its official release notes, upgrade guides and advisories: 1 breaking, 8 new APIs and options. Each one cited. Sources checked 2026-10-18. HTML: https://unstale.sh/npm/shell-quote/

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

## shell-quote 1

### Breaking changes

- Rejects line terminators in tokens after a comment. (1.11.0) — [release notes](https://github.com/ljharb/shell-quote/blob/6ecb8aa618ba6dc6c3b087fce6d7660320d2adeb/CHANGELOG.md#v1110---2026-09-29)

### New APIs and options

- parse now supports here-documents. (1.12.0) — [release notes](https://github.com/ljharb/shell-quote/blob/6ecb8aa618ba6dc6c3b087fce6d7660320d2adeb/CHANGELOG.md#v1120---2026-10-02)
- parse now supports the case test-next terminator. (1.12.0) — [release notes](https://github.com/ljharb/shell-quote/blob/6ecb8aa618ba6dc6c3b087fce6d7660320d2adeb/CHANGELOG.md#v1120---2026-10-02)
- parse now supports the case fall-through terminator. (1.12.0) — [release notes](https://github.com/ljharb/shell-quote/blob/6ecb8aa618ba6dc6c3b087fce6d7660320d2adeb/CHANGELOG.md#v1120---2026-10-02)
- parse now supports redirecting output despite noclobber. (1.12.0) — [release notes](https://github.com/ljharb/shell-quote/blob/6ecb8aa618ba6dc6c3b087fce6d7660320d2adeb/CHANGELOG.md#v1120---2026-10-02)
- parse now supports opening a file for reading and writing. (1.12.0) — [release notes](https://github.com/ljharb/shell-quote/blob/6ecb8aa618ba6dc6c3b087fce6d7660320d2adeb/CHANGELOG.md#v1120---2026-10-02)
- parse now supports redirecting stdout and stderr. (1.12.0) — [release notes](https://github.com/ljharb/shell-quote/blob/6ecb8aa618ba6dc6c3b087fce6d7660320d2adeb/CHANGELOG.md#v1120---2026-10-02)
- parse now supports appending stdout and stderr. (1.12.0) — [release notes](https://github.com/ljharb/shell-quote/blob/6ecb8aa618ba6dc6c3b087fce6d7660320d2adeb/CHANGELOG.md#v1120---2026-10-02)
- Adds the opt-in splitUnquoted option for shell field-splitting of unquoted expansions. (1.10.0) — [release notes](https://github.com/ljharb/shell-quote/blob/6ecb8aa618ba6dc6c3b087fce6d7660320d2adeb/CHANGELOG.md#v1100---2026-07-10)

### Behavior and default changes

- parse now supports tab-stripping here-documents. (1.12.0) — [release notes](https://github.com/ljharb/shell-quote/blob/6ecb8aa618ba6dc6c3b087fce6d7660320d2adeb/CHANGELOG.md#v1120---2026-10-02)
- parse now supports output process substitution. (1.12.0) — [release notes](https://github.com/ljharb/shell-quote/blob/6ecb8aa618ba6dc6c3b087fce6d7660320d2adeb/CHANGELOG.md#v1120---2026-10-02)

### Fixes and other changes

- Supports parsing bash ANSI-C quoting ($'...'). (1.11.0) — [release notes](https://github.com/ljharb/shell-quote/blob/6ecb8aa618ba6dc6c3b087fce6d7660320d2adeb/CHANGELOG.md#v1110---2026-09-29)
- Preserves text after special shell parameters. (1.11.0) — [release notes](https://github.com/ljharb/shell-quote/blob/6ecb8aa618ba6dc6c3b087fce6d7660320d2adeb/CHANGELOG.md#v1110---2026-09-29)
- An escaped backslash no longer escapes the character after it. (1.11.0) — [release notes](https://github.com/ljharb/shell-quote/blob/6ecb8aa618ba6dc6c3b087fce6d7660320d2adeb/CHANGELOG.md#v1110---2026-09-29)
- Treats $_name as a variable name rather than $_ followed by text. (1.11.0) — [release notes](https://github.com/ljharb/shell-quote/blob/6ecb8aa618ba6dc6c3b087fce6d7660320d2adeb/CHANGELOG.md#v1110---2026-09-29)
- Preserves ! in arguments that also contain a single quote. (1.11.0) — [release notes](https://github.com/ljharb/shell-quote/blob/6ecb8aa618ba6dc6c3b087fce6d7660320d2adeb/CHANGELOG.md#v1110---2026-09-29)
- Preserves empty glob patterns. (1.11.0) — [release notes](https://github.com/ljharb/shell-quote/blob/6ecb8aa618ba6dc6c3b087fce6d7660320d2adeb/CHANGELOG.md#v1110---2026-09-29)
- Escapes ~ in glob patterns to prevent shell tilde expansion. (1.11.0) — [release notes](https://github.com/ljharb/shell-quote/blob/6ecb8aa618ba6dc6c3b087fce6d7660320d2adeb/CHANGELOG.md#v1110---2026-09-29)
- Matches nested ${...} braces so nested parameter expansion is consumed as one substitution. (1.10.0) — [release notes](https://github.com/ljharb/shell-quote/blob/6ecb8aa618ba6dc6c3b087fce6d7660320d2adeb/CHANGELOG.md#v1100---2026-07-10)
- A backslash inside single quotes no longer escapes the closing quote. (1.10.0) — [release notes](https://github.com/ljharb/shell-quote/blob/6ecb8aa618ba6dc6c3b087fce6d7660320d2adeb/CHANGELOG.md#v1100---2026-07-10)
