shatty

share tty.

Play a demo recording

% ruby shatty.rb play examples/output.shatty

Recording

% shatty.rb record <command>

By default will record to 'output.shatty'

Playback

% shatty.rb play output.shatty

Sharing

TBD.

  • read-only
  • read/write

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.
  • Online sharing
    • Live sharing
    • Multiuser
    • Sharing recorded sessions
  • 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