Package: graphterm
Release NotesGraphTermis a browser-based graphical terminal interface, that
aims to seamlessly blend the command line and graphical user
interfaces. You can use it just like a regular terminal,
backwards-compatible withxterm, and access the additional
graphical features as needed. These features can help impove your
terminal workflow by integrating graphical operations with the
command line and letting you view images and HTML output inline.GraphTerm has several funky features, but two of the most useful
practical applications are:aninline data visualization toolfor plotting with Python or R
that can work seamlessly across SSH login
boundaries, with an optional notebook interface. (For remote
access, it also serves as a detachable terminal, liketmuxorscreen.)avirtual computer labfor teaching and demonstrations. The
GraphTerm server can be set up in the cloud and accessed by
multiple users using their laptop/mobile browsers, with Google
Authentication. The lab instructor canmonitor all the users’  terminalsvia a “dashboard”, and users can collaborate with each other by
sharing terminals and notebooks.GraphTerm builds upon two earlier projects,XMLTermwhich implemented a terminal using the Mozilla framework andAjaxTermwhich is an AJAX/Python terminal implementation. (Other recent
projects along these lines includeTermKitandTerminology.)A GraphTerm terminal window is just a web page served from the
GraphTerm web server program. Multiple users can connect
simultaneously to the web server to share terminal sessions.
Multiple hosts can also connect to the server (on a different port),
allowing a single user to access all of them via the browser.
The GraphTerm server acts as arouter, sending input from browser
windows for different users to the appropriate terminal (“pseudo-tty”)
sessions running on different hosts, and transmitting the
terminal output back to the browser windows.The interface is designed to be touch-friendly for use with
tablets, relying upon command re-use to minimize the need for
a keyboard. It preserves history for all commands,
whether entered by typing, clicking, or tapping.
It is also themable using CSS.You can find more information on using GraphTerm in itsproject pageand browse the source code ongithub.
Images of GraphTerm in action can be found inscreenshotsand in thisYouTube Video.You can use the GraphTerm API to build “mashups” of web applications
that work seamlessly within the terminal.  Sample mashups include:greveal: Inline version ofreveal.jsto display Markdown files as slideshowsgtutor: Inline version ofpythontutor.comfor visual tracing of python programsyweather: Using Yahoo weather API to display weatherHere is a sample screenshot showing the output of themetro.shcommand, which embeds six smaller terminals within the main terminal, running
six different commands from the GraphTerm toolchain: (i) live twitter stream output usinggtweet, (ii) weather info usingyweather,
(ii) slideshow from markdown file usinggrevealandreveal.js,
(iv) word cloud usingd3cloudandd3.js, (v) inline graphics usinggmatplot.py,
and (vi) notebook mode using the standard python interpreter.INSTALLATIONRequirements:You will need a browser that supports Websockets,
such as a recent version of Chrome, Firefox, or Safari.
The GraphTerm server is written in pure Python (version 2.6+), and
should run on any Unix-like system (e.g., Linux, OS X)
that supports the pseudo-tty terminal device.
(The browser client works on Windows, iPad, and Android as well.)If you havesetuptools, you can install GraphTerm using the
following two commands:sudo easy_install graphterm
sudo gterm_setupAlternatively, you can download the tarball,
untar, and executesudo python setup.py installin thegraphterm-<version>directory.
You will also need to install thetornadoweb server,
which can be downloaded fromhttps://github.com/downloads/facebook/tornado/tornado-2.3.tar.gzTo start theGraphTermserver and open a terminal, use the command:gtermserver --terminal --auth_type=noneDisclaimer:GraphTerm is currently of alpha-quality. It is known to
work on Linux, Mac OS X, and the Raspberry Pi, but you may encounter various
glitches.