Execa is a Node.js library for running commands from your script, application, or library, built on top of Node’s child_process. It’s useful for executing local binaries with a programmatic, “optimized for humans” API, including advanced output handling like piping multiple subprocesses and returning detailed errors.
Project status
- Actively maintained, recent GitHub activity exists (last upstream push on 2026-01-29), and multiple tagged updates are shown in 2025.
- Apparent update cadence is moderate, with several updates in mid-2025 (9.5.3 then 9.6.0 within about 2 to 3 weeks), followed by a later patch in late 2025 (9.6.1 on 2025-11-29).
AI summary generated Today
Recent updates
v9.6.1
6 months agov9.6.1 is a small patch release focused on TypeScript typing. The only apparent functional change in the diff is exporting the `VerboseOption` type correctly, with additional documentation and test adjustments.
v9.6.0
5/26/2025v9.6.0 appears to be primarily a dependency update release. The code diff also includes a small change in the test helper that overrides the global Promise implementation.
v9.5.3
5/8/2025v9.5.3 addresses a Node 24 deprecation warning related to using the `shell` option. The implementation change modifies how `execa` calls `child_process.spawn` and `spawnSync` when `shell: true`, by pre-concatenating the command into a single string.
v9.5.2
12/7/2024v9.5.2 is a small patch release that fixes handling of escaped newlines inside template strings. It adjusts the template parsing logic so sequences like a backslash followed by a newline are treated as intended whitespace/newline content rather than mis-parsed characters.
v9.5.1
10/29/2024v9.5.1 is presented as a small bug fix release addressing odd characters printed in `verbose` mode on Windows. The code diff shows a more substantial change to how verbose output is written to stderr, alongside test and CI adjustments for newer Node versions.
Breakingv9.5.0
10/27/2024v9.5.0 introduces an `append` option for file-based redirection so that when stdout or stderr is redirected to a file, output can be appended instead of overwriting. The change updates TypeScript types and adjusts both async and sync output handling to support append semantics.
Featuresv9.4.1
10/16/2024v9.4.1 includes a Deno compatibility fix related to handling node executables derived from Deno's `process.execPath`. The code changes ensure these Deno-style execPath objects are normalized to a string before being used in argument processing, and extend related piping logic to accept the same input shape.
v9.4.0
9/16/2024v9.4.0 primarily introduces the new companion package documentation for nano-spawn, and includes bug fix improvements related to keeping the PATH environment variable small when using execaNode() and preferLocal. The code diff provided is almost entirely documentation changes plus a dependency bump to npm-run-path 6.0.0, which is likely where the PATH-related behavior changes come from.
Featuresv9.3.1
8/14/2024v9.3.1 mainly addresses a runtime crash scenario for Node.js builds without ICU support, and fixes the TypeScript type for the `env` option (notably for Remix and Next.js users). It also includes documentation updates and several test/doc-only changes, plus dependency/tooling version bumps.
v9.3.0
6/21/2024v9.3.0 adds support for passing a function to the `verbose` option to customize how execa prints verbose logs. The implementation refactors the verbose subsystem and adds new types that describe the verbose event object passed to the function.
Features