shatty
share tty.
Install with 'gem install shatty'
start sharing
shatty share
The defaults will:
- Run $SHELL
- Generate a random endpoint on the shatty service
Here's an example:
% shatty share
Sending output to: http://shatty.semicomplete.com:8200/s/88326b7f-f43e-4192-8987-c496b985abc1
View commands
wget -qO- http://shatty.semicomplete.com:8200/s/88326b7f-f43e-4192-8987-c496b985abc1
curl -Lso- http://shatty.semicomplete.com:8200/s/88326b7f-f43e-4192-8987-c496b985abc1
shatty play http://shatty.semicomplete.com:8200/s/88326b7f-f43e-4192-8987-c496b985abc1
This lets you share a terminal over http. It's built such that wget and curl can act as viewers so whoever is viewing will not require the shatty player.
Tricks
Record an active tmux session
# From any shell in your tmux session:
% TMUX= ruby shatty.rb record --headless tmux -2 attach
The '--headless' is required otherwise you end up tmux printing to tmux and you get a loop.
TODO
- Improved player
- Skip forward/back
- Tunable playing speed (1x, 2x, etc)
- Search.
- Pause/rewind/etc live while viewing or recording.
- Sharing recorded sessions
- pastebin, gist, etc?
- Terminal size options
- Currently stuck at default 80x24, fix that.
- Improve & document recording format
- Currently a sequence of [play_time, length, data].pack("GNA*")
- Implement a terminal emulator so we can calculate key frames to better support playback/rewind
web server
You can run the webserver (basically a thin proxy) with 'ruby web.rb'