Updates:
  1. You can join the Google Groups mailing list or follow @graphterm on Twitter for updates.
  2. The latest version is 0.57.0 released July 18, 2014. See the Release Notes

GraphTerm is 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 with xterm, 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:

  • an inline data visualization tool for 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, like tmux or screen.)
  • a virtual computer lab for 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 can monitor all the users' terminals via a "dashboard", and users can collaborate with each other by sharing terminals and notebooks.

See the Contents page for an overview of the documentation. For a quick start, see Getting started with GraphTerm (or the README file). Images of GraphTerm in action can be found in screenshots and in the demo videos. GraphTerm builds upon two earlier projects, XMLTerm which implemented a terminal using the Mozilla framework and AjaxTerm which is an AJAX/Python terminal implementation. (Other recent projects along these lines include TermKit and Terminology.)

You can use the GraphTerm API to build "mashups" of web applications that work seamlessly within the terminal. Sample mashups include:

  • greveal: Inline version of reveal.js to display Markdown files as slideshows
  • gtutor: Inline version of pythontutor.com for visual tracing of python programs
  • yweather: Using Yahoo weather API to display weather
For more information on the GraphTerm API, see Extending GraphTerm..

Here is a sample screenshot showing the output of the metro.sh command, which embeds six smaller terminals within the main terminal, running six different commands from the GraphTerm toolchain: (i) live twitter stream output using gtweet, (ii) weather info using yweather, (ii) slideshow from markdown file using greveal and reveal.js, (iv) word cloud using d3cloud and d3.js, (v) inline graphics using gmatplot.py, and (vi) notebook mode using the standard python interpreter.