top | item 4534549

Introducing the Command Bar

419 points| dko | 13 years ago |github.com

98 comments

order
[+] crazygringo|13 years ago|reply
Wow, a command-line interface to a website is something I never thought I'd see.

My first reaction was that it's a step backwards because the usual benefits of a command line aren't present here (you're usually already using your mouse, commands can't be piped, no shell scripts to run things in sequence)...

But I'm intigued -- maybe it's a possible step forwards? The implementation is very well done. I suppose maybe it functions like traditional keyboard shortcuts in a way? To follow a user, instead of finding their page and clicking follow, you just type "@user follow".

Still, all the commands are so basic, and many are infrequently used, I don't really see much of the "shortcut" value. I'm very curious to see if this user interface concept grows. Imagine if this became a standard way to interface with web API's!

[+] cdmoyer|13 years ago|reply
I know for one of the games I work on, the chat-commands/command-line interface is one of the most popular user interface features for power users. And the main reason is what you suggest about navigating and clicking. Admittedly, in a game you might "/equip meat helmet" or "/use mmj" a lot more frequently than you will friend someone on github, but it's a similar concept.
[+] drewwwwww|13 years ago|reply
i'm not trying to be a jerk, i swear, but Google (especially since the autocompletion and nigh-instant results) would count, i think.
[+] Too|13 years ago|reply
Gmail has something similar, try to press G L and then start typing to move to a label. Might require something to be activated from labs though.
[+] tarr11|13 years ago|reply
Playing with this for a few minutes:

* I wish it had vim keybindings (ie, hit esc, then use hjkl to navigate)

* It gives me the option to follow myself. (Bug?)

* I like how I can learn commands via the autocomplete bar (issue, branch, graph, etc)

* I like how the autocomplete bar refreshes after I have control-tabbed away and back. Too many autocompletes lose this behavior

* Searching in a repository username/repo <searchterm> doesn't work the way I expect. It just brings up the regular search

Overall, very useful though.

[+] te_chris|13 years ago|reply
One could make a measure of velocity for hacker news posts about terminals/CLIs by measuring how fast it takes someone to gripe that it a)doesn't have vim bindings OR b) has vim bindings that feel unnatural ;)
[+] eckyptang|13 years ago|reply
+1 for vim keybindings. I noticed JIRA actually has these the other day (the only thing I like about it).
[+] JoelMcCracken|13 years ago|reply
It seems like it should emulate readline, doesn't it?
[+] nipunn1313|13 years ago|reply
In multiple places on github, as a vim user, I occasionally instinctively hit escape. Github sometimes closes a comment box and I lose all the stuff I had been typing. It's an unfortunate UI issue for me (and probably others).
[+] burke|13 years ago|reply
I'd be pretty happy with Ctrl-(1-9) to action the nth item in the visible list.
[+] ranza|13 years ago|reply
I hate sites that have vim bindings as i already uses vimium for chrome. Im looking at you fffound and vimeo!
[+] jjcm|13 years ago|reply
It'd also be nice if it had focus on page load.
[+] tomblomfield|13 years ago|reply
Cool toy, but how about letting users just search for code in a repo properly?
[+] tlack|13 years ago|reply
+1. The search results for this could merge in commits and be a really valuable way to figure out whats going on in a well factored, modular codebase where things can be spread out in many different tangled folders. Something like 'ack for github' would be fantastic.
[+] rhizome|13 years ago|reply
For a site like GitHub, I would imagine this is a huge engineering effort to do right. For instance, in a plain vanilla code search facility, how would you expire results efficiently when the text can change from minute to minute (to seconds, to even less)?
[+] johncoltrane|13 years ago|reply
Well, we already have a command bar at the top of the window. What about these commands?

    http://github.com/username
    http://github.com/username/follow
    http://github.com/username/unfollow
    http://github.com/me/dashboard
    http://github.com/me/notifications
    http://github.com/username/reponame/search/term
    http://github.com/username/reponame/branchname
[+] hyperbovine|13 years ago|reply
What is your point? REST is meant to make it easy for machines to talk to each other.
[+] nathan_long|13 years ago|reply
The one command-line feature I want most on Github is `git grep`. I have cloned projects locally solely to be able to do that.
[+] _djo_|13 years ago|reply
This UI concept seems to be gaining in popularity. Jira 5 has a similar (though less powerful) option-completion action bar that you can pull up with a shortcut when viewing an Issue.

I've been considering adopting a similar concept for a complex enterprise application that I maintain where the number of possible actions on a certain page is huge.

[+] state|13 years ago|reply
I really like seeing this UI approach becoming more popular. I find it particularly worthwhile because I think it helps build familiarity without being limiting the way simple autocomplete can. This approach broadens the knowledge of the user — even (I think) in the case of something like GitHub where most users are particularly competent.
[+] mrgreenfur|13 years ago|reply
I like github for their sweet hosting and easy collaboration. I have no idea who would use this command bar. Do people really want to move the mouse to click on a cli and then guess/remember the syntax?

I don't really get why they built this... Anyone?

[+] garand|13 years ago|reply
As someone who uses GitHub's web interface multiple times a day, the ability to dig down into specific actions and pages for a repo will save a lot of time clicking around. The big one for me, adding issues.
[+] burke|13 years ago|reply
hitting 's' anywhere on the page activates the command bar. I will use this a lot.
[+] fromhet|13 years ago|reply
Not leaving the keyboard is one big thing. I ditched webkit for Firefox in order to be able to use Pentadactyl, but it's worth it to not have to leave the home row.

Learning a few commands is not hard, and there is always the ol' mouse to fall back upon if you don't want to remember all those commands.

[+] ef4|13 years ago|reply
Nice. I wish more GUIs had this kind of capability.

Long live the command line. At least until I get my neural implants.

[+] tbourdon|13 years ago|reply
This paradigm is very powerful. The only thing I see missing from these types of interfaces is the ability to select part or all of the output and use it as input for a new command.

Think of it as an intermediate step of piping where the user has the ability to manually filter content. This UI concept would cover the vast majority of UI needs as almost any workflow could be captured with the following...

1.) Issue command that produces 0..N results. 2.) View results in list format. 3.) Select individual results for details view. 4.) Select 0..N results as input to a subsequent command.

[+] peterbe|13 years ago|reply
Note, Chrome junkies, the Firefox awesome bar already does most of these :)
[+] zb|13 years ago|reply
This seems like a step in the right direction, because GitHub's search remains awful.

For example, I can now type in "<user>/<repo> #123" to go to an issue, but if I am already on the Issues page for that repo and I type "#123" in the box labelled "Search: Issues & Milestones..." it still comes up with nothing. And that's not even challenging.

I'm desperately hoping that this feature is an indication that they've noticed that finding anything on the site requires either 8 million mouse clicks or manually editing URLs.

[+] magnusgraviti|13 years ago|reply
I think it would be even better to have some terminal emulator on github. Even now with so improved UIs I like command line interface.
[+] przemoc|13 years ago|reply
Keyboard is at least 100x as productive as mouse (assuming you know what to do and what to type). Even the best peachy UIs cannot change it. Still there are things that aren't convenient to do from CLI like photo retouching, but these are quite obvious exceptions.

That said, I'm not sure what would you like to do in such terminal?

[+] cientifico|13 years ago|reply
You only miss one thing:

* map the '/' symbol to focus:search box.

[+] shabble|13 years ago|reply
I find this really annoying, I use '/' to use the browser find-in-page, and apps hijacking it for their search field instead ruins it.

Yes, there are other bindings, but / is in finger-memory at this point.

I wonder if there's some sort of noscript-alike that would give you fine-grained enough control to permit exactly which keys could be intercepted by an app.

[+] jonmagic|13 years ago|reply
It looks like ctrl-/ works.
[+] przemoc|13 years ago|reply
What about Opera users?
[+] flyhighplato|13 years ago|reply
Giving the type of people who like command lines a command line -- not a bad idea!

The down side is that, I think, this is really only useful for the github power user. The upside is: I'm a github power user!

Seriously, though, I hope they don't use this command line as a sort of cop-out for continuously improving their UI.

[+] beatpanda|13 years ago|reply
I want this for every website, and for most of the desktop apps I use. Typing, for me, is so much easier than finding menu items and clicking on them. Imagine Photoshop with an autocompleting command line instead of a maze of menus. I could work so much faster.