My coworker Isaac and I have been hacking on this nifty little tool for a few weeks now.
The main problem that we had to overcome was that test frameworks like node-tap (https://github.com/isaacs/node-tap) spawn many subprocesses.
nyc overrides child_process.spawn, collects coverage reports for all child processes, and pulls a coverage report back together again.