shell-quote breaking changes
Every breaking API change we have recorded in shell-quote on npm: 10 breaking changes in 4 versions. Below are its newest 4 versions, removals and renames first, each with its source.
Newest change September 29, 2026

On this page
1.11.0
- Behavior changed
quote
Tokens after a comment containing line terminators are now rejected by quote. Code that passes such tokens must strip the line terminators first. github.com
1.10.0
- Behavior changed
parse
Inside single quotes, a backslash is now treated as a literal character, so input that relied on the old escaping will parse differently. Review any single-quoted strings containing backslashes. github.com
1.9.0
- Behavior changed
quote
quote output changes for strings starting with ~, which are now escaped. Code that relies on the previous unescaped output may need updating. github.com - Signature changed
ControlOperator
Was type ControlOperator = "||" | "&&" | ";;" | "|&" | "<(" | ">>" | ">&" | "&" | ";" | "(" | ")" | "|" | "<" | ">"; now type ControlOperator = parse.ControlOperator. npmjs.com - Signature changed
parse
Was function parse(cmd: string, env?: {readonly [key: string]: string | undefined}, opts?: ParseOptions): ParseEntry[] function parse<T extends object | string>(cmd: string, env: (key: string) => T | undefined, opts?: ParseOptions)... npmjs.com - Signature changed
ParseEntry
Was type ParseEntry = | string | {op: ControlOperator} | {op: "glob"; pattern: string} | {comment: string}; now type ParseEntry = parse.ParseEntry. npmjs.com - Signature changed
ParseOptions
Was interface ParseOptions; now type ParseOptions = parse.ParseOptions. npmjs.com - Signature changed
ParseOptions.escape
Was escape?: string | undefined; now escape?: string. npmjs.com - Signature changed
quote
Was function quote(args: readonly string[]): string; now function quote(args: readonly parse.ParseEntry[]): string. npmjs.com
1.8.4
- Behavior changed
quote
quote now validates object-token shapes, so malformed object tokens that were previously accepted may now be rejected. Check that any object tokens passed to quote are well-formed. github.com
Check your code
These are the changes. To see which of them reach your code, scan a public repository, or have your coding agent call check_code with your manifest or lockfile over MCP. The API reads every change in every version, not only the newest. On Team and up, a fix pull request opens for the changes that reach a connected repository. Nothing merges or deploys.

Put your code on continuous management.
Scan a public repository now, or give your agent one line.
See how out of date your code is.
Tell your agent what changed since it was trained.
claude mcp add --transport http since https://api.since.dev/mcp