# What changed in tinyexec

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

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

## tinyexec 1

### Breaking changes

- A process killed by a signal now throws NonZeroExitError. (1.3.0) — [release notes](https://github.com/tinylibs/tinyexec/releases/tag/1.3.0)
- The grandchild fix was reverted for now, changing grandchild behavior. (1.2.4) — [release notes](https://github.com/tinylibs/tinyexec/releases/tag/1.2.4)
- Commands are no longer normalized. (1.1.2) — [release notes](https://github.com/tinylibs/tinyexec/releases/tag/1.1.2)

### New APIs and options

- Adds the nodePath flag. (1.2.0) — [release notes](https://github.com/tinylibs/tinyexec/releases/tag/1.2.0)
- A synchronous API is implemented, allowing developers to run tinyexec operations synchronously. (1.1.0) — [release notes](https://github.com/tinylibs/tinyexec/releases/tag/1.1.0)

### Behavior and default changes

- The error message for NonZeroExitError was improved, making non-zero exits clearer to diagnose. (1.3.0) — [release notes](https://github.com/tinylibs/tinyexec/releases/tag/1.3.0)
- The args parameter now accepts readonly string[] values. (1.1.2) — [release notes](https://github.com/tinylibs/tinyexec/releases/tag/1.1.2)
- options.stdin now supports Result, ExecProcess, or string values. (1.1.0) — [release notes](https://github.com/tinylibs/tinyexec/releases/tag/1.1.0)
- The current node executable's directory is added to the start of PATH. (1.1.0) — [release notes](https://github.com/tinylibs/tinyexec/releases/tag/1.1.0)
- An engine constraint was set, affecting which runtimes are declared compatible. (1.0.2) — [release notes](https://github.com/tinylibs/tinyexec/releases/tag/1.0.2)

### Fixes and other changes

- Resolves node_modules/.bin from nodeOptions.cwd instead of the current process cwd. (1.3.1) — [release notes](https://github.com/tinylibs/tinyexec/releases/tag/1.3.1)
- Resolution now performs a second pass without an extension. (1.3.0) — [release notes](https://github.com/tinylibs/tinyexec/releases/tag/1.3.0)
- Piped streams are destroyed when the child exits, preventing grandchild deadlocks. (1.2.3) — [release notes](https://github.com/tinylibs/tinyexec/releases/tag/1.2.3)
- Corrected the shebang regex. (1.2.2) — [release notes](https://github.com/tinylibs/tinyexec/releases/tag/1.2.2)
- Bun runtime compatibility is improved. (1.1.0) — [release notes](https://github.com/tinylibs/tinyexec/releases/tag/1.1.0)
- Using stream.pipeline fixes combining streams when auto-destroy is disabled. (1.1.0) — [release notes](https://github.com/tinylibs/tinyexec/releases/tag/1.1.0)
- Fixed the package.json exports field. (1.0.4) — [release notes](https://github.com/tinylibs/tinyexec/releases/tag/1.0.4)
- tinyexec now prefers executables in local node_modules/.bin over globally installed ones when resolving commands. (1.0.3) — [release notes](https://github.com/tinylibs/tinyexec/releases/tag/1.0.3)
- stdout and stderr are now read in parallel. (1.0.2) — [release notes](https://github.com/tinylibs/tinyexec/releases/tag/1.0.2)
