Hacker News new | past | comments | ask | show | jobs | submit login
DuckDuckGo Terminal Emulator (duckduckgo.com)
326 points by Mithrandir on Dec 6, 2012 | hide | past | favorite | 100 comments



Using this felt similar to using the Github Launch Bar[1] for the first time.

Something about having a command line interface really makes it feel like you are communicating deeply with the software, as opposed to poking around its surface in arranged flows. With a command line the interaction is different - it is exploratory with freestyle flow composition, and that can be really fun.

Modern graphical interfaces combined with a means to freely manipulate data and compose commands seem to be quite rare. I have always wished to have a full command line accessible in RPGs inside the game's menu system, so I could script some tedious things.

[1] https://github.com/launch


Sentiments I totally agree with.

So much so that we started a side project to create a CLI environment for exploring the personal cloud. It's a web app which exposes your FB, Twitter, Picasa resources as files and navigate them using a shell and unix-like tools. It's not "launch-ready" yet - still got to write tests, docs, FAQs, and so on (i.e. the last 10% which takes 90%) but there is a live alpha version at https://pigshell.com. (Your data stays 100% private: The app is all static files and client-side JS. The server can't see a single bit of user data)

And yes, Ctrl-L works. Tab completion too. What would life be without them? One damn point-and-click after another :)


Man, this is really cool! I'm playing with this right now and I liked it very much. Keep up the great work! :-)


That is fantastic. hoooo boy I'm gonna have fun with that


This is awesome!


I think this might be more useful the other way around.

Put ddg inside a linux shell and let me interoperate with linux commands.

eg. ddg reviews samsung note | grep "note 2"


This was what I was hoping for rather than an ascii terminal style search. Does DDG have an API?


DDG does have an API for the goodies, but not for the search results because they come from a variety of sources, some of which don't allow sub-licensing.


Seems like you could have a search API for the sources that do allow sub-licensing. But I'm not sure putting search into an API would be a good way for DDG to gain revenue.


What are the ways to gain revenue using the website DDG uses?


What would be the difference between "licensing" the API for private non-commercial use only, and "licensing" the website for private non-commercial use only? I assume the TOS for the website are restrictive to satisfy the licenses they have with others, could you make an API that has equivalent terms?



Actually, w3m may be more apt.


It is easily doable with a few lines of python. I gave it a quick shot: https://github.com/thibauts/duckduckgo


There's a unix utility called "surfraw" that does this. I don't know if it support DDG yet, but it's very cool.


All surfraw seems to do is generate the URL for the search and opens it in a browser. Disappointing :(


I just got it installed and quite like it. It may not give you interactive search capabilities, but it DOES support DuckDuckGo, and the other "elvi" are quite handy. I now have a quick way of instantly opening Lisp, Java and other language docs in the terminal, and jumping straight to wikipedia articles in w3m.


For this particular example, why don't you use just ddg reviews samsung "note 2" ?


You are right. Bad example. I was just trying to do something with pipes to illustrate the point.


If the world were full of people who were interested in optimizing their computer interfaces this way, all websites would support a mode of operation like this and there would be a framework for the end user to pipe them to each other like the unix pipeline.

Let us make it so!


I did that once, actually. It was an in-browser shell that piped REST requests and responses between each other. (Specifically, it would pipe the bodies.) It worked, but it didn't really catch on.

Here's a video of it (unfortunately, before it had piping or remote requests): http://www.youtube.com/watch?v=erVREtQoMCc


This has actually been a dream of mine for as long as I have been addicted to the command line. Feel free to contact me if you have thought it through further than I have - would be interested in discussing possible implementations.


You guys should really have a look at Web Outside Of Browsers: http://weboob.org/


Weboob 'Web outside of Browsers', I can get that. But the attempt to put 'boob' in every application name? Am I missing something from a translation from French or is this meant to be comic?

Flatboob: Search for a house.

Wetboobs: Display current weather water levels and to see forecasts.

Nice to see application 'QHaveDate' was altered from 'QHaveSex'.


They need to distribute /usr/bin/ddg, a binary that lets me search like this.


Yes, to really have this available in my terminal would make far more sense then in the browser where i can do the same stuff by entering stuff in the location bar..


I'm sure you realize that not all of us 1) use graphical user interfaces or environments when we work 2) have browser open 3) prefer clicking around stuff

Just some of us want to do simple things such as [shift]+[right arrow], "ddg hackernews -l 5" which would then return the five topmost(the imaginary -l or --limit) results. No need to change workspaces, focus the browser, open a new tab, write out the search term, look around, switch back to work environment and try to memorize what we just saw.


I think you totally misinterpreted your parent comment, and read sarcasm where there was none!


Exactly that. I was just wishing to have the "tty" tool in my actual terminal and not in my browser, just because i spend more working time in the terminal then in the browser. Having to open the browser to find a text interface is somehow backwards.


My bad and apologies, not being a native English speaker does tricks at times. :(


Don't worry, that problem hits us native speakers quite often

http://en.wikipedia.org/wiki/Poe%27s_law


I think if you plan on responding, it works best to assume sincerity. That leads to more interesting conversation over the long run.

It also helps teach people that sarcasm is not a real substitute for wit.


Sarcasm can be an excellent expression of wit, but it has do be done correctly. That's particularly difficult to do in text.


I found this perl cmd util that does exactly that ...

http://search.cpan.org/~getty/App-DuckDuckGo-0.006/bin/duckd...



Been there, done that :) http://goosh.org/


> :why Because Devdas uses vimperator with Google?? I don't think they mix well.

and I had to disable vimium in order to use this one. they don't mix well...


I'm on Fedora 17 trying it on Chrome. Only the ":command"s work. Tried to email feedback as per instructions but receive this alert:

Sorry your feedback could not be send :-( Please try again.

Works fine on Firefox but the feedback functionality is broken there too.


I've pushed some changes out for this. I'd appreciate if you could confirm it works as expected now.


Did not work with Conkeror (based on emacs) either.


It doesn't integrate very well with vimperator either...


Hit the Insert Key, this ignores every vimperator command until you hit Insert or S-Esc.


The ASCII duck as a variable in the source is wonderful (trimmed to fit a HN comment):

                       .:/++++/:-.`                                               
                       `-/syyyyyyyys+:.                                           
                      `+ossosssyyyyyyyys/.                                        
                       ``````.:/+oyyyyyyys/-.`                                    
                         `:+syyyyyyyyyyyyyyyyso/.                                 
                       `/syyyyyyyyyyyyyyyyyyyyyyy/`                               
                      .syyyyyyyyyyyyyyyyyyyyyyyyyys.                              
                     -syyyyysosyyyyyyyyyyyyyyys+//+o-                             
                    `oyyys::+ossyyyyyyyyyyyyyyssssssy-                            
                    :syyy/syyyyyyyyyyyyyyyyyyyyyyyyyys`                           
                    +syyyyyyyyyyyyyyyyyyyyyyyyyys+/+yy+                           
                    +syyyyyys:.-:syyyyyyyyyyyyyy.   -yy.                          
                    :yyyyyyy-    .yyyyyyyyyyyyyy:` `:yy/                          
                    `ysyyyyy/`  `/yyyyyyyyyyyyyyysssyyyo       ``..--..`          
                     osyyyyyysoosyyyyyyyyyyyyyyyyyyyyyy+``...---::::::::.         
                     -ysyyyyyyyyyyyyyyyyyyyyysoooo+++//:-:::::::::::--.`          
                     `ssyyyyyyyyyyyyyyyyyso/:::::::::::::::::::---.``             
                      /yyyyyyyyyyyyyyyys+::::::::::::::::---..``                  
                      `ysyyyyyyyyyyyyyy/:::::::.```....```                        
                       osyyyyyyyyyyyyyyo:::::::                                   
                       -ysyyyyyyyyyyyyyyo::::::-.``        ```...----             
                        ssyyyyyyyyyyyyyyyy/.---:::----------::::::--`             
                        :yyyyyyyyyyyyyyyyy/   ``..--------------.``               
                        `ysyyyyyyyyyyyyyyy/          ````````                     
                         +syyyyyyyyyyyyyyys                                       
                         .ysyyyyyyyyyyyyyyy-                                      
                          osyyyyyyyyyyyyyyyo        `.-`                          
                          :yyyyooosyyyyyyyyy:    `-/oss+                          
                          `ssys://++ossyyssso-..:+oossss`                         
                           /yys://++ooss++oooso//+oossss-                         
                           .ysy://++ooss++oooss//+oossss-                         
                            osy://++ooss++oooss/++oossss.                         
                            -ys///++oossssssssyys--/+oso                          
                             sso//+ossyyyyyyyyyyyo`                               
                             -sysyyyyyyyyyyyyyyyyys`                              
                              :/osyyyyyyyyyyyyyyyyyo


I'm hoping that Github and DDG convince more websites to have some kind of command interface, as it's really my favorite mode of interaction.

<whine> I get that the current look is the stereotypical "hacker" style terminal, but none of my terminals have such a small font or high contrast coloring :(

Ctrl + doesn't seem to increase the font size, either. </whine>


':+' to increase text size


Just type in :+ to increase or :- to decrease the font size there. For everything else :man or :help


I was pleasantly surprised to see that CTRL + L worked perfectly.


Actually, even TAB should trigger auto-complete, but the server seems to be down. :-(


Nice. Now all we need is image search that returns the images as ascii art!


try $ giggity from command line https://github.com/niftylettuce/giggity



It would be interesting to have access to this by telnetting (or sshing) to duckduckgo.com.


Isn't this more of a shell than a terminal emulator?


Is this any more useful than a normal web search?

Google Search (with Instant Search enabled) has had keyboard navigation for a long time. After you hit enter on a search, hit tab and you can navigate the results with your arrow keys. And when you go to Google's homepage your cursor is automatically placed in the Search box, so you can search Google with only a keyboard.


It really isn't. In fact, it is less so, just based on the UI. Yet it's completely awesome at the same time.


What I really like is that these commands work: http://duckduckgo.com/goodies

This includes returning images, for example type this "qrcode http://ddg.gg/ into the cli.

ps. !Bang tags don't seem to work though.


Anyone remember Google shell [http://goosh.org/], similar idea.

Now what I really want is an xterm that can render HTML/CSS. That way I can interleave my unix dweebry with outputs that use a modern display language.


> Now what I really want is an xterm that can render HTML/CSS.

Have a look at https://github.com/unconed/TermKit


That one actually looked like a semi-poor copy of PowerShell (the concept, not the official console host application), funnily enough ;-)


In addition to the mixed content issue on Chrome, I've pushed out a fix for the tab completion component. It too inherently suffers from mixed content because our autocomplete server only does HTTP at the moment.

Please let us know if you see anymore issues.


Thanks for the fixes! :)


any chance you could get the URLs to behave like links?


You mean wrap them in <a href>?


http & https mismatch for the page and the auto-complete end-point.


I really like this, but there needs to be a better way to navigate to a page. The pop-up scheme is blocked by my browser. Perhaps, a iframe with the terminal becoming a header similar to Google image search? Maybe using Links?


I sort of agree with the inconvenience with pop-ups. Can't you selectively enable them for some web sites?


In :help it says:

'pronounce castle' to pronounce a word (say castle). (uses [:0] http://www.forvo.com/)

When you type pronounce castle however - it searches for it, and doesn't pronounce anything.


The feedback feature seems broken:

>> :feedback my@email.com "my feedback" (I also tried without the ") "Sorry your feedback could not be send :-( Please try again."

I love it. I really do. Congratulation and keep up the good work with ddg!


I tried leaving some feedback but apparently "Sorry your feedback could not be send[sic] :-( Please try again."

Would be awesome to have a command like _ that opens the first result in the last batch.

Otherwise, kudos, this is amazing!


(Oh, I got the emails for my feedback though, so maybe it worked after all)


I wrote a chrome extension [1] to load this for every new tab.

[1]: https://github.com/timothyandrew/DuckDuckGo-TTY-Homepage


I love stuff like this. Clearly targeting hackers is certainly a good idea.

I can't use this in Chrome on my tablet, though, because I can't open the keyboard.


There was some news a few days back that DuckDuckGo was shutting down!

Where does this leave us. What is happening at DDG?

EDIT: Sorry, I read shut out as shut down!


Can you please point us to that article?

Just so there is no ambiguity, we are alive, doing well and growing: https://duckduckgo.com/traffic.html


http://news.ycombinator.com/item?id=4817466

Prakash,

Thanks for clarifying. Might sound like stereotyping, I apologize if it does. Looking at your name, just asking if you guys have a office in India?

What sort of problems are you working on?


They're based in Paoli, Pennsylvania.

http://www.crunchbase.com/company/duck-duck-go

There are quite a lot of Indians and people of Indian descent in the US tech industry.


Yup, no offices in India, but contractors are distributed worldwide and work over the wire. :)


very cool. now i feel compelled to go burn 6 hours in http://telehack.com/


I typed 'exit' when I was done exploring. I'm not sure if I expected this to close the browser or what. :)


His name is Gabriel Weinberg and I am continually impressed. I wish I had a chance to work for him.


It's fantastic. Google should implement their own tty emulator immediately.



Great and fun! Anyone else tried to close the search tab with Control-D?


Why I can't click links?


It doesn't search for 'google'. Nothing pops up.


When you are using the https:// page Chrome blocks the API calls, because it throws AJAX requests against the http:// API.


Ah thanks for pointing that out, it was baffling me and I couldn't even send feedback :P


This should be fixed. Sorry about that.


Works fine for me.

$ google [:21] Google google definition: to use the Google search engine to obtain information about (as a person) on the World Wide Web. http://www.merriam-webster.com/dictionary/google

-- Type 'm' for more results and 'r' for related topics. $ :google [:22] "Google" - a global search engine Searches web pages, images, PDF, MS Office and other file types in all the major languages, and includes advanced search features, news, maps and other services. https://encrypted.google.com/ [:23] Google Google.ca offered in: français. Advertising ProgramsBusiness Solutions+GoogleAbout GoogleGoogle.com. https://encrypted.google.com/ [:24] Google.org The philanthropic arm of the company. Lists its activities. http://www.google.org/ [:25] Google - Wikipedia, the free encyclopedia Google Inc. (NASDAQ: GOOG) is an American multinational corporation which provides Internet-related products and services, including internet search, cloud computing, software and advertising technologies. https://en.wikipedia.org/wiki/Google [:26] Google Google has expanded into many areas beyond simple web searches, including mapping and directions (Google Maps), video (YouTube), and photos (Picasa). http://mashable.com/category/google/ [:27] Google News Comprehensive up-to-date news coverage, aggregated from sources all over the world by Google News. http://news.google.com/ [:28] iGoogle - Google iGoogle is your personalized Google page. Add news, photos, weather, and stuff from across the web to your page. http://www.google.com/ig?hl=en

-- Type 'm' for more results.


I like it! Nice work.


I need vi mode!


Why would it need vi keybindings? This is a terminal emulator, not a text editor.


Default key bindings on korn shell are VI..


and bash supports vi mode.

    $ set -o vi
I use it always.


You mean emacs, I'm sure. :-)


love it, love it and gonna use it


really cool, love it already


i need an instruction manual


:help


Kudos




Join us for AI Startup School this June 16-17 in San Francisco!

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: