1.0.4 • Public • Published


Pipe to the browser library, very useful for log tailing.

Build Status Dependency Status NPM version

node-pipe-to-browser features auto scrolling (with enable/disable), ansi to html coloring (--ansi) and behavior and color customization.

Originally a fork from kessler/node-bcat, reworked as a library interface instead of just a command line tool. Ideal for adding a route to your servers that gives you streaming access to your logs.

Library usage

You can use pipe-to-browser as a library to pipe an arbitrary stream to a http response:

var pipe_to_browser = require('./')
var fs = require('fs')

var http = require('http')
var config = {/* most any option from above, see lib/pipeResponse.js */}
http.createServer(function (req, res) {
  var file = fs.createReadStream('./test.html')
  // Or: var file = require('child_process').spawn('tail', ['-c', '+0', '-f', './test.html']).stdout
  pipe_to_browser.pipeResponse(confg, res, file)
  // See testlib.js for a more full example and notes about caveats of spawning 'tail' processes
}).listen(1337, '')

Command-line utility mode

You can also use pipe-to-browser as a stand-alone command line utility. This module uses RC to manage its configuration, so in addition to command line arguments you may save your favorite configuration in .pipe-to-browserrc.


> npm install -g pipe-to-browser

> cat somefile | pipe-to-browser

// redirect error stream also
> node index.js 2>&1 | pipe-to-browser

Want to see something moving too?


setInterval(function () {
}, 1000)


> node test.js | pipe-to-browser



 --port                   set a port for this pipe-to-browser execution
 --contentType            content type header, must be lower case      [default: "text/html"]
 --backgroundColor        (only in text/html)                          [default: "#000000"]
 --foregroundColor        (only in text/html)                          [default: "#ffffff"]
 --tabLength              length of a tab in spaces                    [default: 4]
 --tabReplace             tab replacement                              [default: "    "
 --disableTabReplace      disable tab replacement                      [default: false]
 --newlineReplace         new line replacement                         [default: "<br />"
 --disableNewlineReplace  disable new line replacement                 [default: false]
 --ansi                   show colorful ansi (implies text/html)       [default: true]
 --ansiOptions            override replacement of ansi black color
 --autoscroll             default to auto-scrolling (overridden by browser localStorage)  [default: true]
 --scrollDownInterval     interval to execute javascript scroll down   [default: 1000 (ms)]
 --serverTimeout          http://nodejs.org/api/http.html#http_server_timeout  [default: 0 (no timeout)]
  • An available port between 8080 - 8181 will be automatically picked if --port is not specified
  • ansi feature is on by default

be a good cat


node-bcat - original command-line-only

scat - pipes javascript into your browser

hcat - pipes html into your browser

bpipe - bidirectional piping between unix and the browser

Package Sidebar


npm i pipe-to-browser

Weekly Downloads






Last publish


  • jimbly