Pagepipe is a command line tool I created that pipes the output of a process to the homepage of a built-in webserver. Both one-time (e.g. 'cat foo.txt | pagepipe') and streaming (e.g. 'tail -f log.txt | pagepipe') process output is supported.
Pagepipe runs under node.js and works on Windows, Mac and Linux with any browser that supports server-sent events (currently all major browsers except IE and Opera Mini).
By default Pagepipe waits until the first client consumes the output and then it exits. However Pagepipe can be 'zombified' with the -z command line option to tell it to stay alive instead of exiting so that multiple clients can consume the output. A full list of command line options, including customizing the output, adding password protection and setting the webserver port and interface can be found at the bottom of this page.
$ npm install -g pagepipe
$ 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.
$ someprocess | pagepipe -p 80 -z
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) so 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.
$ 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