Skip to content


Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Command-line component for Firefox/Ace/Skywriter
JavaScript CSS

runat-1128988: Remove isNoDom

Several tests were skipped when there wasn't a DOM to test against.
This removes all those test skips. Given the recent fixes, most of the
skips could just be removed. Some of the skips are not down to
weaknesses in jsdom, but in NodeJS or the requisitionAutomator which is
used only in NodeJS, so some of this is s/isNoDom/isNode. Some of the
problems were confusion as to an id in the document that we were
testing against. #gcli-input was removed some time ago, so we're now
using #gcli-root which still exists. Finally I added a trivial
converter for the 'pref list' command so it would work on the command
line, and be tested properly.

Signed-off-by: Joe Walker <>
latest commit 30b612e872
Joe Walker authored

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

Something went wrong with that request. Please try again.