Author of term.js/tty.js[1] here. Nice work. You guys should keep an eye on term.js. The version you're using is slightly old and actually contains a bug (now fixed) wherein all events will become unbound if the reset control sequence is received. I'm also adding fixes for a few other things currently, such as double-width character support, which has been a problem in the past.
One thing that I think could help out a bit would be to show key commands as they are pressed as well. I'd love to use this to show my students software development things (using vim or emacs for editor), but showing them the keypresses I make as well is critical for some text editors newbies.
This is such an incredible idea. I can already see tons of use cases for it. CLI apps can easily demo themselves through this. It even recognizes backspaces!
I'm using a patched font with a git branch symbol in my prompt[0]. As expected, it only displays on devices that have that font installed. Colors don't match my actual terminal either, but that's just a minor problem.
EDIT: A follow up: It turns out that there is a slightly hidden and indirect way to abort uploads. Start the program as `showterm -e`, and it will offer you a chance to edit timings before uploading. (This is intended to give you a chance to trim out long pauses.) At that point, if you can cause your editor to abort with a non-zero status, the upload aborts. For Vim users, the gem's author points to exiting with `:cq`.
This will be very useful! That said, I have to second the concern above that it should ask for confirmation before uploading; just auto-uploading could be an in issue if somebody accidentally pastes sensitive information into the terminal.
Gate One has had this feature for ages. You can export your terminal logs to HTML payback files or as traditional flat logs. You can then share them however you like... Web, email, whatever.
It works with full screen apps like tmux, vim, htop, etc. It even plays back images (if the user output them to the terminal).
I wonder about credentials leaking to the service. When I show off connecting to a server that uses login/password, will this also be recorded and uploaded or only keys that actually change the ui?
I'm doing some tests [1] with showterm's screencasts embedded in a web page and, argh, apparently you can't control the autorun feature, pretty annoying.
I think that if it had a set of "play"/"pause"/"rewind"/"forward" buttons, tons of websites would benefit (for docs, examples, tutorials, etc).
the ability to copy/paste is particularly useful in this case, given that that's what most people end up doing anyway.. particularly for more complicated commands
This, and also it's efficient. As much as I like video screencasts, I cringe everytime I think I am actually watching an ASCII streams exposed through highly complex high-resolution megabytes long compressed video. Makes me wanna finish my emacs-repl-screencast-mode.el ..
I just tried to play around with showterm. Why does it have a different theme? When I use Vim with solarized theme, showterm shows it in a different ugly way.
http://showterm.io/15104fd85863532b74150
Am i doing something wrong?
This is really sweet! As well as some of the other features requested, real-time might be nice, too.
Plus, the option to cut out backspaces and only go with the finished command might be cool, in case the screencaster has made some mistakes along the way.
Everything is stored locally and the tool can generate an HTML playback file that can be passed around. One can also make comments during the playback. There tends not to be a great place to document how code evolves, we think a playback is the best place for this.
Its not quite ready for prime time yet but it will be soon. Our long term goals are to make a web app to store playbacks and to make it the next generation of version control.
awesome. I tried a while ago with terminalcast.com. hopefully this gets more traction. integration with native terminal emulators would be great, so you can start recording at any point in time.
[1] https://github.com/chjj/term.js