
Text-based terminal screencasts - daw___
http://showterm.io
======
chjj
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.

[1] [https://github.com/chjj/term.js](https://github.com/chjj/term.js)

~~~
cirwin
Hey chjj, thank you so much for tty.js! You definitely deserve the credit for
doing all the hard work :).

------
tibbon
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.

~~~
pessimizer
I regret I have but one upvote to give this feature. Can't wait to play around
with this.

edit: I actually was thinking about this feature on tty.js rather than
showterm.io. I might see how hard it would be to implement it.

------
grk
[http://ascii.io/](http://ascii.io/) does the same and was around for a while,
but showterm's text selection works better.

~~~
a-nikolaev
ascii.io works great with ncurses games
[http://ascii.io/a/4682](http://ascii.io/a/4682)

Showterm had buggy black background
[http://showterm.io/ff11970f1363de1386cbc](http://showterm.io/ff11970f1363de1386cbc)

~~~
sgtnasty
Where is that game "cursor war"? Looks cool, easier on the eyes than dwarf
fortress.

~~~
a-nikolaev
it's called curse of war

[https://github.com/a-nikolaev/curseofwar/wiki](https://github.com/a-nikolaev/curseofwar/wiki)

------
bilalq
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.

[0]
[http://showterm.io/e49d0900602104ae4850f](http://showterm.io/e49d0900602104ae4850f)

------
telemachos
I agreed with the people saying that a confirmation before uploading would be
helpful, so I went to file an issue.

It turns out there is one there already. You can weigh in here:
[https://github.com/ConradIrwin/showterm/issues/12](https://github.com/ConradIrwin/showterm/issues/12).

 __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`.

See here:
[https://github.com/ConradIrwin/showterm/blob/master/bin/show...](https://github.com/ConradIrwin/showterm/blob/master/bin/showterm#L84-L99)

------
pdkl95
Nice - it automagically translates "CSI 38:5:FG m CSI 48:5:BG m" properly. (
[http://showterm.io/6ed840f381fd81a881176](http://showterm.io/6ed840f381fd81a881176)
)

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.

~~~
riskable
I just created a recording using Gate One of the same command (well, I think
it is the same) for comparison purposes:

[http://riskable.com/files/GateOne_recording-20130810130840.h...](http://riskable.com/files/GateOne_recording-20130810130840.html)

Try resizing your browser while that is playing back (go really small) for a
special treat :)

------
plg
Q1: is there a way to download the resulting screencast so that it can be
viewed off the network?

Q2: is there a way to do this without having to upload anything? e.g. pipe to
a file locally?

~~~
gopher
try script(1) and scriptreplay(1)

~~~
krishnasrinivas
Or ttyrec(1) and ttyplay(1)

------
daw___
Source code of showterm: client[1], server[2]

[1]
[https://github.com/ConradIrwin/showterm](https://github.com/ConradIrwin/showterm)
[2]
[https://github.com/ConradIrwin/showterm.io](https://github.com/ConradIrwin/showterm.io)

~~~
dannyrosen
Mind scrubbing your database.yaml and making a gist? I'm new to rails

------
beshrkayali
Wow! This is quite awesome!

Would love to have live streaming capability for this (though I can't think
about a reason to use it yet, but I'm sure it'll be handy.)

~~~
krishnasrinivas
Actually, I am working on something similar i.e being able to share terminals
using browser.

~~~
beshrkayali
Cool! Realtime terminal hacking... now that's something I can use.

~~~
sdqali
This has existed for ages in the form of GNU Screen. (Or Byobu, if you want a
variation with bells and whistles.)

------
riskable
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).

------
prezjordan
Pretty cool, but unfortunately it does not work with my PS1 [0]. Looks like
any PS1 with a shell call in it won't work.

[0]:
[http://github.com/impromptu/impromptu](http://github.com/impromptu/impromptu)

------
hngiszmo
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?

How about ncurses apps?

~~~
hngiszmo
[http://showterm.io/5837e92554dcbeaea129b](http://showterm.io/5837e92554dcbeaea129b)
answers the ncurses question and i'm impressed.

------
daw___
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).

[1]
[https://googledrive.com/host/0B9lMEsFXwv0ZLVh5dkRfdmw1UnM/](https://googledrive.com/host/0B9lMEsFXwv0ZLVh5dkRfdmw1UnM/)

------
q_revert
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

~~~
agumonkey
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 ..

------
nkuttler
I think the script should ask for a confirmation before uploading stuff.
Somebody could get distracted and forget that script runs.

~~~
davemaya
agreed. This is a dangerous utility akin to a key logger.

~~~
D9u
You don't _have to_ install it in order to use it.

bash <(curl record.showterm.io)

Records everything in that terminal until you exit, then gives you a URL to
share.

------
vysakh0
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](http://showterm.io/15104fd85863532b74150)
Am i doing something wrong?

------
basicallydan
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.

------
kolev
Here's another interesting library by floobits:
[https://floobits.com/help/floomatic/](https://floobits.com/help/floomatic/)

------
reustle
I've been thinking of better ways to do programming tutorials and something
like this is roughly what I had in mind. Thanks for open sourcing it!

~~~
markm208
If you are interested in seeing code examples from a text editor or IDE we are
working on Storyteller:

[http://www.storytellersoftware.com](http://www.storytellersoftware.com)

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.

------
kaichanvong
Would love to see most viewed showterm videos! :)

------
voltagex_
So if you can work out how to add a red ● to your prompt, this'd be a really
good way to indicate recording.

~~~
geocar
That's easy enough:

    
    
        PS1=`printf "\033[1;31m\342\227\217\033[0m\\$ "` sh

~~~
voltagex_
Thanks, I was missing the printf.

------
shykes
I've been using ascii.io for a while - I would be interested in a comparison
between the two.

------
paddy_m
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.

------
xSwag
What happens if I run something like htop?

~~~
beefsack
[http://showterm.io/5837e92554dcbeaea129b](http://showterm.io/5837e92554dcbeaea129b)

~~~
gpmcadam
What about tmux?

~~~
daw___
it does exactly the same as the above htop's screencast

------
rfnslyr
If I want to go back on your site, it keeps me on your site. Absolutely
infuriating, remove this.

