sindresorhus/
A better `child_process`
USD raised
Recent activities
Return an `.all` property with both stdout and stderr intermixed
Consider implementing a duplex mode
Add `.fork()` method
timeout option is not considered if streams are attached
Crash with input option and absolute path without execute permissions
Rename `. cmd` to `.command`
Rename `signal` option to `unpipeSignal` option
Improve escaping of `result.escapedCommand`
Fix errors thrown by `.pipe()`
Avoid confusion with signals
Improve `.pipe()` error handling
Fix script-friendly `childProcess.pipe()`
Add `.pipe(file, arguments, options)` shortcut
Improve default value of `objectMode` option
Fail a whole pipe when a single command fails (equivalent to `set -o pipefail`)
Improve validation of process arguments
Do not destroy a stream if the stream it pipes to ends first
Series of `.pipe()` calls do not propagate failures
Multiple script piping is not working
Fix spawning errors
Do not allow invalid escape sequences in `$`
`lines` option is not in typescript types
trying to spawn a WSL command but getting /bin/bash: -c: line 0: syntax error near unexpected token `('
Handle errors from streams passed to the `std*` option
Ignore aborts on readable streams
Ignore `EPIPE` on writable streams
Do not error a stream when another stream only aborted
`stdio: [..., undefined]` option should always default to `ignore`
Issue with multiline template strings
The `all` option is broken when using `stdout: 'ignore'` or `stderr: 'ignore'`
Official example not working
Fix feature parity between `execa()` and `execaSync()`
piping not work
Stdout/stderr-specific options
`encoding` option accepted values
Rename `from: 3` option to `from: 'fd3'`.
Add `.readableStream()`, `.writableStream()` and `.transformStream()` methods
Improve error typings
$ escape breaks the command that is stored as a variable
Use consistent variable name for child processes
IPC helper
Allow `node: true` as a global option
Add `result.durationMs`/`error.durationMs`
Add colors to `verbose` option
Allow template strings with all methods
Print errors with `verbose` option
Print command completion with `verbose` option
Log command with `verbose` even when they fail early
Improve `verbose` logging of the `.pipe()` method
Escape control characters in error message
Improve default value of the `stdin` option with `$`
Cancel `ReadableStream` when process errors
Do not hang processes when passing a file path to `stdin`
Handle aborted readable stream passed to the `stdin` option
Fix error propagation of `.pipe()`
Improved `verbose` option
Validate against `yield undefined` in transforms
execa.command is not a function
Improve promise returned by the `.pipe()` methods
Simplify `.pipe*` argument type
Improve process piping API
Streams are not destroyed when the process exits early
More graceful behavior when `buffer: false` is misused
`timeout` option's improper behavior
Allow newlines inside `$` command
The `reject` option does not work for early errors
`error.isTerminated` and `error.signal` are sometimes invalid
Wait for streams completion on errors
Process streams uncaught exceptions when `buffer: false` is used
Remove `.cancel()`?
Line-wise standard streams
`error.message` is incorrect with the `encoding: 'buffer'` option
The child process does not handle multiple `error` events
Add `.kill(signal, error)`
Improve interaction of the `preferLocal`, `node` and `nodePath` options
`error.stack` is not updated when `childProcess.destroy(error)` is called (due to Node.js bug)
Add `childProcess.kill(error)`
Do not prevent process normal exit
Better error message when `cwd` is invalid
`error.cwd` is set but not `result.cwd`
`.pipe()` shortcut with `$`
Return value is re-used between multiple calls
Merge `execPath` and `nodePath` options
Fix error stack trace workaround
Aborting `childProcess.stdin` leaves the child process hanging
Change default value of `ipc` to `advanced`
`ipc` option
Re-using the features from `execaNode()`
Cancel generators when the process exits
Calling `.kill()` multiple times in a row triggers a `maxListeners` warning
--inspect-brk can break execaNode ipc communication
`maxListeners` warning when running multiple processes in parallel
Child process listener is not properly cleaned up
Upgrade cross-spawn package to fix vulnerability
Follow-up on CVE-2024-21538 Fix for cross-spawn Dependency
cross-spawn dependency vulnerable to CVE-2024-21538
update to use cross-spawn v7.0.5 or higher
EPIPE error when piping to ffmpeg
cross-spawn dependency vulnerability
docker run -it ?
`isTerminated` false after `kill()`
Escaped newlines break arguments in version 9
What is the right way to execute string (not template) command with spaces in it?
Cannot continue after killing the execa process
cann no work with vite v6
Support for double angle bracket >>
Test case failing : return âş early-error âş write to fast-exit subprocess
Node 23: "heap out of memory" error when `preferLocal` option is enabled
Documentation markup problem in `execa/docs/api.md`
The command cannot be executed
Timeout / cancel stuck process
`parseCommandString()` splits at whitespace inside quotes
Memory Leak of pipe
Typescript: Verbose option type mismatch?
Unable to extend env when `ProcessEnv` has been manipulated
Progressive iteration over a piped process
Build failure with Ubuntu 26.10, new tests are failing
`maxBuffer.fd3` and `maxBuffer.ipc` normalize to the same slot when `ipc: true`
Fix tests for Node 26
conditional sudo ?
Weird escaping in error message from process stderr
is there a programmatic api for interacting with stdout and stdin? I'm wanting to write some tests for some cli tools
Fix using both `stdin: 'inherit'` and `input` options
Undocumented behavior when `input: 'string'` is mixed with `stdio: 'inherit'`
Using duplex() with fd3: it must be a writable stream
`for await` iteration over stderr
stdout/stderr with 'inherit' + transform should not capture output
How can I progressively iterate over stdout lines with a custom delimiter
Confusing example in docs/transform.md summary
`preferLocal` doesn't work for if dependent projects are using `pnpm`, `yarn pnp` or `deno install`
High Severity Vulnerability in cross-spawn@7.0.3
cross-spawn: regular expression denial of service
`subprocess.kill('SIGWINCH')` terminates the subprocess on Windows since Node 23.4.0
`subprocess.kill(0)` is broken on Windows since Node 23.4.0
Hanging when running `pgctl start`
VSCode editor autocomplete pollution.
Vulnerabity in cross-spawn
Add `parseCommandString()` method
Promise-based IPC
breaking changes not included in v9 release notes
TypeScript versioning
Wrong type for the return value when using `reject: false`
error TS2304: Cannot find name 'TransformStream' 'ReadableStream' 'WritableStream'
Error TS2834 - Relative import paths need explicit file extensions in ECMAScript
TypeScript Error `TS2590: Expression produces a union type that is too complex to represent.`
Correct tsc options to prevent TS2834 error?
Add `thread` option
9.0.0 release
Remove `execaCommand()`
Improve validation of signal names
Make signal names case-sensitive
Fix passing the same file or stream to both `stdout` and `stderr`
Document and test Windows fixes
stdio pipe option returns an empty string
Support Node 22
Changes when calling `.cmd`/`.bat` files on Windows (`EINVAL`)
Question about next release
Improved `shell` option
Types do not work with latest TypeScript version
9.2.0 release post
Feature request: Possibility to use a custom verbose log format?
TypeError: The "eventTargets" argument must be an instance of EventEmitter or EventTarget. Received an instance of AbortSignal
Document idiomatic ternary interpolation pattern?
Graceful termination
Subprocess is considered as failed exit when using `process.kill` on windows only
Document CLI utilities
Node.js engine version in package.json is not up-to-date
Not able to inject environment variables
Do not disconnect IPC on `error` event
execa with env option not working
Last execa version 8.0.1 released 8 months ago on npm
Cannot set properties of null (setting 'peer')
backup-file-in-package
Avoid race conditions with IPC
Select specific IPC messages
template syntax
v9.1.0 possible bug
Export `Execa` and `ExecaScript` types.
The `stdin` and `stdout` options must not target a file path string that is the same.
Deprecating old `ipc` option
Add `localNodeModules` option or document solution
Incorrect ENOENT error on Windows with shell=true when child exits with code 1
execa.command fails if path contains space.
ENAMETOOLONG with long argument
Piping bash commands
does the execa('echo', ['unicorns']).stdout.pipe(process.stdout) example need { end: false }?
After 10 echo commands, the process appears to be blocked
Windows: execa leaving processes around when running npm scripts in a sh shell
How to declare exitCodes (> 0) as none errors ?
Windows: Execa is leaking processes when used with readline
TypeError: execa.command is not a function
4.0.1 causes problems with Bluebird
Bad file descriptor error on windows using execa.commad
Missing error fields when running in jest (26)
Command inside Backticks or $() do not work
Feature Request: Support for multiline commands (sync)
Mocking stdin for multiple prompts
Type 'Promise<void | ExecaReturnValue<string>>' is not assignable to type 'Promise<void>'.`
[Help] Command Failing Only When using execa
Piping `process.stdin` to `child.stdin` leaves behind an open handle
Add `execa.stream()`
Attach `.nodeChildProcess` to the execa promise
TypeError: spawnedPromise.finally is not a function
feat: setting column on spawned process
How to show a spinner until the child processes are done starting web servers?
Add silent support
`input` option does not work with fast processes
Bug with yarn install
Double quoting breaks command
Execa freezes when the child process using nodemon or process.on message listener
Subprocess should emit error if executable path doesn't exist in Windows
TypeError: arg.replace is not a function
Cannot use import statement outside a module
Child process not cancelled or killed
Execute with elevated permissions
Support `URL` where paths are supported?
The NPM link execution command could not find the dependent command
npm install not working with version 5.0
Print the executed command?
How to input subshell commands?
'signals' of undefined
"Unknown system error -86" when building C components on Apple Silicon
The union command could not be executed
Problem using pipe
Support `AbortController`
Update social preview with the Execa logo
Not getting the actual error from child process
Mocking stdout/stderr with jest
options.env.PATH is used to find binaries instead of the calling process.env.PATH
Empty stdout with code 0
Error handling when outputing child process's output
feat: handle EAGAIN
docs: state when the promise returned by execa will be rejected
Updated from v1.0 to v2.0 and now detached: true always throws a TypeError
Mocking stdout on Execa using sinon
Does not work inside workers threads
The `all` stream and `stderr: 'inherit'`
Consider allowing windowsHide option
EPERM errors when using globbing characters
Arguments in quotes not handled correctly
Unfinished execa promise when path is not found and buffer=false
Make `.killed === true` regardless of how it was killed
Observable support with customizable through filters
Automatically wait for file streams to open
Ability to prefix child process stdio lines with a custom string
Allow userland streams to be passed to `stdio` option
Allow transform streams convert output to an array of any objects, instead of a single string
Stdio `tap` option
`execa.sync` doesn't (can't?) provide `all`
Promise chains are flattened
spawn /path/to/file/code.cmd ENOENT, The system cannot find the path specified.
Uncaught in promise
git log - stdout and stderr empty
`preferLocal` fails for globally installed CLI programs since v3.0.0
Question on stdin and stderr
TypeError: setTimeout(...).unref is not a function
Include stdout/stderr in `error.message`
Change default behavior of `extendEnv` to false
Electron app - showing output of execution in real time
Spawn E2 BIG from a very large command.
Ambiguity in env/extendEnv documentation
Fails on Electron 7, Node 12 because of get-stream
"TypeError: Cannot read property 'end' of null" when using input
can not use 'cd'
.npmrcă.yarnrc file ignored in child process ?
preferLocal prevents local from working
TypeScript `<3.4` support
How to run sudo apt update and use interactive terminal?
`result.stdout` is empty while `result.all` is not
Should `localDir` look up parent directories?
TypeScript: pipeStdout (and other pipeXxx) is optional property
Fix the `verbose` tests
Fix the `cleanup` option test
Fix flaky tests
Add `stdin: Iterable` option
Allow `stdin`/`stdout`/`stderr` options to be a file URL
Add `childProcess.readable` and `childProcess.writable`
Improved piping
How can I disable colors for `stdout`?
[ASK] How to Defrag File using CMD
Return stdout/stderr/all as `Uint8Array` instead of `Buffer`?
feature request: shorter $.sync
Fix the `.pipeStdout(filePath)` tests
Remove 'v2' milestore
Get rid of `cross-spawn` dependency
`username` option in addition to `uid`?
Some problems according to examples
[Docs]: Release 8.0.0 lists Breaking Change to require node 16.7+, but package.json requires node 16.17+
How to stdio: 'inherit and capture stdout at the same time?
Add option to console.log command?
Add `cwd` to error
feature request: allow node 17
how can i match regexp from stdout like pyexpect?
Remove the `inputFile` option
Line-wise transforms
Improve type of the `std*: AsyncGeneratorFunction` option
Wrong types when using `reject: false`
Stricter typing for `childProcess.all`
Inconsistency between `result.stdout` and `error.stdout`.
Invalid types for `result.stdout|stderr|all`
Improved syntax for the `stdin|stdout|stderr: filePath` option
`result.stdio` and `error.stdio`.
`result.stdin` and `error.stdin`
Fix missing `stdout`/`stderr` data and unhandled promise rejections
adding command to the history
windowsVerbatimArguments is converting the path
Output not visible while giving interactive inputs
Executing "cmd.exe" on Windows never exits
Allow `stdin`/`stdout`/`stderr` options to be an array
Remove file descriptor restriction on the `stdin`/`stdout`/`stderr` option
Timing problem when piping `process.stdin|stdout|stderr`
`spawned.kill()` tests randomly fail
The `inputFile` option crashes the process when the file path is missing
Errors on `stdout`/`stderr` leave the process hanging
Add `stdin: ReadableStream` and `stdout|stderr: WritableStream` options
`cwd` as a `file:` URL does not work
Allow the âforceKillAfterTimeoutâ option to be passed to â.cancel()â
Hi Want to strem git clone log
why unref
Getting output from cmd live (uploadbar)
`childProcess.all` interleaved result might be out-of-order
Using double quotes as part of the arguments
Running a command in execa behaves differently from running the command manually in a shell
Error opening local file `/dev/fd/1` & quoting issue
node Expected version "^12.20.0 || ^14.13.1 || >=16.0.0". Got "14.5.0"
Wrong `npm-run-path` dependency
Command was killed with SIGSEGV
Version 6 is ESM only
About webpack-dev-server
`killSignal` option has no effect
execaCommandSync fails to parse command arguments with quotes
`git diff` is not identical to my terminal
Steal some ideas/syntax from google/zx
caching output?
I want to show logs of command execution
Cannot work with typescript/ts-node at execa@6
Change the way you indicate you want a Buffer
If the `env` option is omitted, the `extendEnv` option will not work
With solidjs
Second process stdout not available when using &&
Strange behaviour on quoted arguments
Issue running grep with input globs using script interface
bug: Incorrect Execution of command with Script API
Default `stdin` to `inherit` with `$`
$ hangs forever when using grep or ripgrep commands
spawn ENOENT in GitHub Actions
execa not working with github script
Add `pipeStdin()` method
Ability to kill all descendents of the child process
doesn't show child process spinner
Piping shortcut notation
Verbose mode
`${childProcessResult}` shortcut notation
Default `preferLocal` to `true` when using `$`
Help for sophisticated command
Vite show errors
Output streams do not emit "end" event if execution fails
Promise never resolves if process output pipes are read first in node 18.14.0
get `Error: Command failed with exit code 2:` while also getting back the expected stdout
Š 2019 BoostIO, Inc.