unstale

npm / zx

zx

What changed in zx 5 to 8, from its official release notes, upgrade guides and advisories. Sources checked 2026-10-23.

8 breaking1 security15 new APIs and options1 performance3 behavior and defaults3 fixes and other

See which of these apply to your code, ranked, in your agent:

npx @unstale/cli init

@unstale/cli 0.2.4 on npm

zx 823 changes

Breaking changes 5

  • The experimental toggle was removed; all APIs are available by default.

    8.0.0release notes

  • The exported ps utility provides process-tree queries, including recursive traversal.

    8.0.0release notes

  • The ssh API was dropped; install the webpod package instead.

    8.0.0release notes

  • Process cwd synchronization between $ invocations is disabled by default; call syncProcessCwd to restore the legacy behavior.

    8.0.0release notes

  • On Windows, zx no longer looks for powershell by default; call usePowerShell to enable it.

    8.0.0release notes

Security 1

New APIs and options 10

  • Pass an AbortController through the ac option to abort command execution; a default instance is used when none is specified.

    8.0.0release notes

  • The input option passes data to a command, including strings, streams, buffers, or another process promise.

    8.0.0release notes

  • The exported kill method terminates a process, including processes not started by zx.

    8.0.0release notes

  • The minimist API is exposed for parsing command-line arguments.

    8.0.0release notes

  • The postfix option appends text to the end of a command, for example to support PowerShell compatibility.

    8.0.0release notes

  • ProcessPromise.valueOf() simplifies value comparisons.

    8.0.0release notes

  • PromiseResponse exposes an abort trigger for stopping command execution.

    8.0.0release notes

  • The internal spawnSync API can be overridden, for example to implement pools or test mocking.

    8.0.0release notes

  • The new synchronous API runs a command and exposes its output.

    8.0.0release notes

  • The refactored zx core is available as a separate package, enabling options presets.

    8.0.0release notes

Performance 1

  • Custom esbuild plugins and dts-bundle-generator produce bundled JavaScript and typings; the package is approximately 20 times smaller, reducing installation time.

    8.0.0release notes

Behavior and default changes 3

  • Duration parsing now supports minutes.

    8.0.0release notes

  • Stack extraction was enhanced to support bun.

    8.0.0release notes

  • $.verbose is false by default; errors are still printed to stderr. Set $.quiet to true to suppress all output.

    8.0.0release notes

Fixes and other changes 3

  • Fixes an issue where zx flushes external node_modules when linking.

    8.8.5release notes

  • The package-name pattern used in install mode is fixed, allowing scoped package entry paths.

    8.0.0release notes

  • A spinner issue on unusual TTYs was fixed.

    8.0.0release notes

zx 74 changes

New APIs and options 4

zx 54 changes

Breaking changes 3

  • The CommonJS version is no longer built.

    5.0.0release notes

  • The minimum required Node.js version is 16.0.0.

    5.0.0release notes

  • The zx bin no longer supports the .ts extension; TypeScript can still be run via ts-node.

    5.0.0release notes

New APIs and options 1

  • The YAML package was added, allowing scripts to parse YAML with YAML.parse.

    5.0.0release notes