Skip to main content

A Graphical Terminal Interface

Project description

NOTE: This version is OBSOLETE. Download the latest version from http://pypi.python.org/pypi/graphterm

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.

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

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 a router, 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 its project page and browse the source code on github. Images of GraphTerm in action can be found in screenshots and in this YouTube 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 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

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.

https://github.com/mitotic/graphterm/raw/master/doc-images/gt-metro.jpg

NOTE: This version is OBSOLETE. Download the latest version from http://pypi.python.org/pypi/graphterm

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

graphterm-0.56.2.tar.gz (2.0 MB view details)

Uploaded Source

Built Distribution

graphterm-0.56.2-py2.7.egg (2.9 MB view details)

Uploaded Egg

File details

Details for the file graphterm-0.56.2.tar.gz.

File metadata

  • Download URL: graphterm-0.56.2.tar.gz
  • Upload date:
  • Size: 2.0 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for graphterm-0.56.2.tar.gz
Algorithm Hash digest
SHA256 cb53a18be54ab9403078ad3d80418436cf0a71ca6238208cadceaee65927226d
MD5 731ab49f68e0be042d11e3e22e6aed15
BLAKE2b-256 e2cede682dde3ea5fd2110460917337c240d6479662acdda62f96b3862b9f4ea

See more details on using hashes here.

File details

Details for the file graphterm-0.56.2-py2.7.egg.

File metadata

File hashes

Hashes for graphterm-0.56.2-py2.7.egg
Algorithm Hash digest
SHA256 dea61c3a102fd66f7935d45d9fbc75830e27be1d030b1b4dd80723a30840ee10
MD5 99c8bac2bb09ea4feaca8798d5d37c56
BLAKE2b-256 3ad839a0ca4528608660a3a9b3d0afcaefddef73ff42c1d7da6d9ef96c6bf419

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page