Well, now there’s a tool to search DuckDuckGo from the command line. It’s called ddgr (pronounced, in my head, as dodger) and it’s pretty neat.
Like Googler, ddgr is totally open-source and totally unofficial. Yup, the app is unaffiliated with DuckDuckGo in any way. So, should it start returning unsavoury search results for innocent terms, make sure you quack in this dev’s direction, and not the search engine’s!
DuckDuckGo Terminal App
DuckDuckGo Bangs makes finding stuff on DuckDuckGo super easy (there’s even a bang for this site) and, dutifully, ddgr supports them.
Unlike the web interface, you can specify the number of search results you would like to see per page. It’s more convenient than skimming through 30-odd search results per page. The default interface is carefully designed to use minimum space without sacrificing readability.
ddgr has a number of features, including:
- Choose number of search results to fetch
- Support for Bash autocomplete
- Use !bangs
- Open URLs in a browser
- “I’m feeling lucky” option
- Filter by time, region, file type, etc
- Minimal dependencies
You can download
ddgr for various systems direct from the Github project page:
You can also install ddgr on Ubuntu 16.04 LTS and up from a PPA. This repo is maintained by the developer of ddgr and is recommended should you want to stay up-to-date with new releases as and when they appear.
Do note that at the time of writing the latest version of ddgr is not in the PPA, but an older version (lacking –num support) is:
sudo add-apt-repository ppa:twodopeshaggy/jarun
sudo apt-get update
How To Use ddgr to Search DuckDuckGo from the Comand Line
To use ddgr once you installed all you need to do is pop open your terminal emulator of choice and run:
Next enter a search term:
To limit the number of results returned run:
ddgr --num 5 search-term
To instantly open the first matching result for a search term in your browser run:
ddgr -j search-term
You can pass arguments and flags to narrow down your search. To see a comprehensive list inside the terminal run: