code.mindmeldr.com /graphterm

Current version: 0.34.0

Questions? Suggestions?

Join the Google group:

You can also open an issue at the tracker.


Updates:
  1. You can join the Google Groups mailing list or follow @graphterm on Twitter for updates.
  2. The latest version is 0.39.3 released June 23, 2013. See the Release Notes

GraphTerm is a browser-based graphical terminal interface, that aims to seamlessly blend the command line and graphical user interfaces. The goal is to provide a fully backwards-compatible terminal emulator for xterm. You should be able to use it just like a regular terminal interface, accessing additional graphical features only as needed. GraphTerm builds upon two earlier projects, XMLTerm which implemented a terminal using the Mozilla framework and AjaxTerm which is an AJAX/Python terminal implementation. (Another recent project along these lines is TermKit.)

Possible applications of GraphTerm include:
  • an enhanced terminal that combines the command line with basic GUI operations like navigating folders, file drag-and-drop, displaying images etc. With tappable links, the interface is designed to be touch-friendly for use with tablets.
  • an inline data visualization tool to view output from plotting libraries like matplotlib.
  • a notebook interface for data analysis and documentation (like the Mathematica or IPython notebook interface, but at the shell level).
  • 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. You can then share presentations using landslide or reveal.js, trace code execution, interact with other users, etc.
  • a collaborative terminal that can be remotely accessed by multiple users simultaneously, to run programs, edit files etc. It can also be used as a detachable terminal multiplexer, sort of like GNU screen or tmux
You can find more information in the Getting started with GraphTerm section (or in the README file). Images of GraphTerm in action can be found in screenshots and in the demo videos.

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.