What is Pagepipe?
Pagepipe brings the power of pipes to the web. Use it on the command line to stream the output of a process to any browser (well, except for IE since it doesn't support EventSource). It works great on Windows, Mac and Linux/Unix machines.
The full documentation along with options and example usage can be found at dougmart.in/projects/pagepipe.
$ npm install -g pagepipe
npm is a builtin CLI when you install Node.js
No options specified
$ someprocess | pagepipe
This sends the output of someprocess to http://localhost:10371/ (10371 is the default port). Pagepipe will terminate when the output is complete and the first web client consumes the page.
Zombified on port 80
$ someprocess | pagepipe -p 80 -z
Zombified on port 80 with a 10 line buffer
This sends the output of someprocess to http://localhost/ (the -p option sets the port). Pagepipe will not terminate (the -z option sets it to zombie mode) and multiple web clients can load the page to see the same output.
$ someprocess | pagepipe -p 80 -z -n 10
This sends the last 10 lines of output of someprocess to http://localhost/ (the -n option sets the number of lines). The 10 lines are held in a buffer and if someprocess emits more lines after a web client connects those lines will also be appended on the page. The -n option is very useful to limit memory usage if you have a source process that generates a lot of output over a long span of time such as tailing a log.
Zombified on port 80 with password protection
$ secretprocess | pagepipe -p 80 -z -a foo/bar
This sends the output of secretprocess to http://localhost/ and requires the viewer to enter the username of "foo" and password of "bar" to view the contents.
-h, --help output usage information -V, --version output the version number -p, --port <n> server port  -c, --color <#rgb> text color for page [#000] -b, --bgcolor <#rgb> background color for page [#fff] -f, --font <name> font face for page [monospace] -m, --margin <n> margin around output in page [1em] -t, --title <text> title tag and text for page [pagepipe] -i, --interface <ip> server interface [localhost] -a, --auth <username>/<password> require basic auth to view page -r, --realm <name> realm name for basic auth [pagepipe] -z, --zombie stays alive after stdin is exhausted -o, --output pipes to stdout -n, --numlines <n> size of line buffer, 0 is unlimited  -d, --datestamp prefixes datestamps to all lines -l, --lines prefixes 1-based line numbers -j, --json sends event-source data as json
Send a pull request!