Skip to content
This repository

Broadcast your tty to the world! Stream your live terminal session online. Powered by ttyrec, tty.js and Socket.IO

branch: master
README.md

ttycast: broadcast your tty!

This app allows you to broadcast your tty online, in really real time! Powered by:

ttycast

Prerequisites

Install ttyrec and ttycast:

npm install -g ttyrec ttycast
  • The above command installs the JavaScript port of ttyrec, which is fairly new. If it does not work, you can also try the native ttyrec, which is available in most package managers (apt-get, Homebrew, ...).

Running (Broadcast & Record)

First, set your terminal to the size that you prefer to broadcast, then run the script:

ttyreccast outfile.tty

Open your browser and navigate to the server. You should see a blank black screen.

http://localhost:13377/

Then, open a new terminal of the same size and run this command:

reset && ttyrec /tmp/ttycast

You should see your terminal screen on the web browser now. Recorded output goes into outfile.tty.

Changing Port

ttycast uses the PORT environment variable but the default port is 13377

Running (manual way)

In your terminal emulator, create a named pipe and pipe it using ttyplay -n to ttycast.

mkfifo /tmp/ttycast && ttyplay -n /tmp/ttycast | ttycast -s 80x25; rm /tmp/ttycast

Open your browser and navigate to the server.

http://localhost:13377/

Then, spawn a new 80x25 terminal window and start recording:

reset && ttyrec /tmp/ttycast

Then you should see characters appearing in real-time. After using, don't forget to rm /tmp/ttycast!

Piping Via SSH

You can install ttycast on your server somewhere, and pipe your local terminal there through SSH!

Good when you are behind a firewall.

ttyplay -n /tmp/ttycast | ssh myserver.dt.in.th PORT=12345 ttycast

Pipe Anything

Um you can pipe anything that a terminal can understand to ttycast, and it will be broadcasted.

brew install sl
{ while true; do sl 2>&1; done } | ttycast

sl!!

License

The MIT license

Something went wrong with that request. Please try again.