DevTools/Features/GCLI
Status
Command Line | |
Stage | Shipped |
Status | In progress |
Release target | Firefox 16 |
Health | OK |
Status note | ` |
Team
Product manager | Kevin Dangoor |
Directly Responsible Individual | Joe Walker |
Lead engineer | Joe Walker |
Security lead | ` |
Privacy lead | ` |
Localization lead | ` |
Accessibility lead | ` |
QA lead | Mihaela Velimiroviciu |
UX lead | ` |
Product marketing lead | ` |
Operations lead | ` |
Additional members | Nick Fitzgerald |
Open issues/risks
`
Stage 1: Definition
1. Feature overview
GCLI is a Graphical Command Line Interface. Command lines are fast and powerful, but they're also opaque and ugly due to a reliance on technology from the 70's. GCLI wants command lines to be discoverable and beautiful in addition to being fast and powerful. GCLI commands are just JavaScript so it is easy to extend.
GCLI was originally part of the Bespin/Skywriter/Ace project (and was previously known as Cockpit). It is usable in a variety of situations. This project aims to integrate GCLI with the Web Console. The Web Console will be enhanced so that it can run JavaScript either using the current 'pure JavaScript' syntax or the simpler GCLI way of entering commands.
As part of developer tools, GCLI will enable developers to access a wide range of development and diagnosis tools without a cluttered interface. It will help users enter the correct parameters quickly and without reference to manuals.
Current web developer tools like Firebug and the Webkit Inspector have command lines, however they are largely unused for user interaction because they insist on a pure JavaScript syntax.
2. Users & use cases
All users of the web developer tools.
3. Dependencies
`
4. Requirements
`
Non-goals
`
Stage 2: Design
5. Functional specification
Commands
In this section, we should enumerate the commands that we're going to ship initially and some guidelines for how commands should be designed.
6. User experience design
`
Stage 3: Planning
7. Implementation plan
`
8. Reviews
Security review
`
Privacy review
`
Localization review
`
Accessibility
`
Quality Assurance review
`
Operations review
`
Stage 4: Development
9. Implementation
`
Stage 5: Release
10. Landing criteria
`
Feature details
Priority | P1 |
Rank | 2.1 |
Theme / Goal | ` |
Roadmap | Developer Tools |
Secondary roadmap | ` |
Feature list | Desktop |
Project | ` |
Engineering team | DevTools |
Team status notes
status | notes | |
Products | ` | ` |
Engineering | ` | ` |
Security | sec-review-complete | Notes |
Privacy | ` | ` |
Localization | ` | ` |
Accessibility | ` | ` |
Quality assurance | in progress | Test plan |
User experience | ` | ` |
Product marketing | ` | ` |
Operations | ` | ` |
Summary
GCLI is a Graphical Command Line Interface. Command lines are fast and powerful, but they're also opaque and ugly due to a reliance on technology from the 70's. GCLI wants command lines to be discoverable and beautiful in addition to being fast and powerful. GCLI commands are just JavaScript so it is easy to extend.
GCLI was originally part of the Bespin/Skywriter/Ace project (and was previously known as Cockpit). It is usable in a variety of situations. This project aims to integrate GCLI with the Web Console. The Web Console will be enhanced so that it can run JavaScript either using the current 'pure JavaScript' syntax or the simpler GCLI way of entering commands.
As part of developer tools, GCLI will enable developers to access a wide range of development and diagnosis tools without a cluttered interface. It will help users enter the correct parameters quickly and without reference to manuals.
Current web developer tools like Firebug and the Webkit Inspector have command lines, however they are largely unused for user interaction because they insist on a pure JavaScript syntax.
Release Requirements
The GCLI enhancements to the Web Console can be split into a number of sections, which could all land together, or separately.
- Support code.
- Require.jsm is a small amount of code to allow us to import CommonJS code.
- GCLI and Ace use a small library called Pilot. We hope to remove GCLI's dependence on Pilot, so this item will probably disappear.
- API level code to allow registration of commands (but not their execution). Not useful by itself except as an API commitment.
- Basic command execution, prefed out. Command help unavailable.
- Full command line including localized help.
- Other enhancements (bucket for stuff that we'd like to do, but not before the steps above).
Next Steps
- Creating demo
- Getting code sections above reviewed
- Accessibility review
- Localization review
Related Pages
- Source
- The source for use alongside Ace or in web pages is in the Github repository for GCLI
- The source for embedding into Firefox is in Joe Walker's HG MQ Patch Repo from which it flows into the devtools repo and then on into the central ocean.
- Demo
- Demo of GCLI in a web page with an arbitrary set of demo commands
- Other Documentation
- Embedding documentation
- The status page lists bugs
- Security review
Team
The GCLI is an experiment and it will take a little time to get the UX right. We want your help and feedback! Send email to dev-apps-firefox
- Joe Walker: (irc:joe_walker) Lead developer and feature designer
- Nick Fitzgerald: (irc:fitzgen)
- Kevin Dangoor: PM
Goals/Use Cases
A Web Console user should be able to change filters or clear the console entirely with the keyboard.
Someone who wants to compare the styles of a set of page elements should be able to run a command to select some elements and then another command to open the Style Inspector, all without reaching for the mouse.
Non-Goals
For this project, we're not looking to entirely replace the Web Console's JavaScript command line with the GCLI. After we are comfortable with the UX, we will revisit that.