
DuckDuckGo Terminal Emulator - Mithrandir
http://duckduckgo.com/tty/
======
pirateking
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>

~~~
tubelite
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 :)

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

------
bluethunder
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"

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

~~~
Mithrandir
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.

~~~
lsiebert
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.

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

------
mwhite
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!

~~~
pirateking
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.

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

~~~
hermaj
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'.

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

~~~
buster
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..

~~~
zxcdw
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.

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

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

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

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

~~~
shardling
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.

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

------
growt
Been there, done that :) <http://goosh.org/>

------
tremendo
_> :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...

~~~
nikkisnow
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.

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

------
zanny
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

------
tree_of_item
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>

~~~
dsmithn
':+' to increase text size

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

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

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

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

~~~
dbaupp
There's also icat <https://github.com/atextor/icat>

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

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

------
antoncohen
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.

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

------
wyck
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.

------
Toenex
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.

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

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

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

------
cainetighe
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.

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

~~~
cainetighe
You mean wrap them in <a href>?

------
frozenport
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?

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

------
shmerl
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.

------
d0m
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!

------
aGHz
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!

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

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

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

------
ch0wn
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.

------
kamaal
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!

~~~
prakash
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>

~~~
kamaal
<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?

~~~
chalst
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.

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

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

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

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

------
tzury
<http://goosh.org/#help>

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

------
zhouyisu
Why I can't click links?

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

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

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

------
RexRollman
I like it! Nice work.

------
xguru
I need vi mode!

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

~~~
aninteger
Default key bindings on korn shell are VI..

~~~
staunch
and bash supports vi mode.

    
    
        $ set -o vi
    

I use it always.

------
coffeeyesplease
love it, love it and gonna use it

------
morefranco
really cool, love it already

------
RaSoJo
i need an instruction manual

~~~
ihuman
:help

------
boksiora
Kudos

