Sign Up for Free

RunKit +

Try any Node.js package right in your browser

This is a playground to test code. It runs a full Node.js environment and already has all of npm’s 400,000 packages pre-installed, including intercept-stdout with all npm packages installed. Try it out:

var interceptStdout = require("intercept-stdout")

This service is provided by RunKit and is not affiliated with npm, Inc or the package authors.

intercept-stdout v0.1.2

Hooking Node.js stdout

Node.js Intercept stdout

intercept-stdout captures or modifies stdout and/or stderr.

Based on this gist


var intercept = require("intercept-stdout"),
    captured_text = "";

var unhook_intercept = intercept(function(txt) {
    captured_text += txt;

console.log("This text is being captured");

// Let's stop capturing stdout.

console.log("This text is not being captured");


var intercept = require("intercept-stdout");

var unhook_intercept = intercept(function(txt) {
    return txt.replace( /this/i , 'that' );

console.log("This text is being modified");
// -> that text is being modified


npm install
npm test

Separating Error Text

Starting in Version 0.1.2, you may now specify two interceptor callbacks. If a second interceptor callback is specified, the second callback will be invoked for stderr output.

Errors and Warnings

Versions > 0.1.1 hook both stdout and stderr. This change enables capturing of console.log,, console.warn, and console.error. This change may break pre-existing interceptors if your interceptor expected output to be a full line of text.

About Colorization

Popular modules such as mocha and winston may colorize output by inserting ANSI escape codes into the output stream. Both mocha and winston make multiple calls to the output streams while colorizing a line -- in order to be robust, your code should anticipate and deal with this.


RunKit is a free, in-browser JavaScript dev environment for prototyping Node.js code, with every npm package installed. Sign up to share your code.
Sign Up for Free