Skip to content

jordansissel/shatty

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

38 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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'

About

share tty (record, play, share)

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published