> Is there a bug in ShellJS that should be filed?

Don't know. From what I could see they are just opening a child process, and maybe the problem is because the process isn't being started from a terminal process.stdin.isTTY is always undefined. There might not be anything they can do about it.

> Perhaps a middle ground is to not require a dash and instead timeout after a couple of seconds if there has been no input?

That feels dirty to me and it's a whole lot of work that I just won't do. There are many programs out there that require you to use `-` to