Skip to content
Command-line component for Firefox/Ace/Skywriter
JavaScript CSS HTML
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.
docs sync-1230993: Dont test on PhantomJS until it catches up Dec 7, 2015
lib/gcli noproxy-1243805: Remove old proxy syntax Jan 29, 2016
scripts refactor-864370: Replace Function.bind shim for PhantomJS Nov 11, 2013
.coverrc Bug 745741 (coverage): Add 'unamd' to remove AMD module wrapping Apr 16, 2012
.jshintrc remote-1032789: Fix JSHint warning. Jul 4, 2014
.travis.yml Fix travis builds Dec 10, 2015
LICENSE jsterm-911456: Update prompts Oct 9, 2013
gcli.js Make gcli.js executable Jun 27, 2015
index.html Add webpack support Jun 27, 2015
package.json Release version 0.6.4 Jan 29, 2016
phantom-test.js refactor-864370: Propagate error status to outside correctly Jun 13, 2014
remote.html runat-1128988: Use .catch(...) in place of .then(null, ...) Mar 5, 2015
wp-index.js Add webpack support Jun 27, 2015

GCLI - Graphic Command Line

GCLI is a graphical command line component. It is being integrated with Firefox developer tools and with editors like Orion and Ace. It can be embedded in web pages and JavaScript applications.


Command lines have advantages over graphical UIs in speed of entry and the ability to contain an almost unlimited set of commands without becoming cluttered. On the other hand GUIs typically come with better discoverability. GCLI is an experiment to see if we can improve the discoverability of command lines whilst retaining the speed and powerful command set of traditional CLIs.

There are a number of problems with the design of traditional command lines:

  • They assume a curses-style 80x24 (or similar) character array for output. Even system consoles are capable of graphics these days. It ought to be possible to have richer output.
  • They assume serial access to the output - one command at a time. This made sense when multi-tasking was expensive, however with modern processors single-tasking is starting to look expensive.
  • They are so loosely coupled that the integration is typically nothing more than argv/stdout/stderr/stdin. That level of integration made sense on memory constrained devices, but with more resources, we can provide much richer integration.

Getting Started

$ git clone git://
$ cd gcli
  -> Load index.html into your web browser (except Chrome)
For Chrome:
  install node (
$ npm install .
$ node ./gcli.js
  -> Load http://localhost:9999/

When you see the ':' prompt, type 'help' to see a list of commands.

Related Links

You can’t perform that action at this time.