---
name: "ddgr"
section: "1"
platform: "linux"
package: "ddgr"
version: "2.2-2"
release: "Arch Linux 2026-11-01"
platforms: ["linux"]
url: "https://new.carta.tech/ddgr"
---

# ddgr(1)

DuckDuckGo from the terminal

## NAME

ddgr - DuckDuckGo from the terminal

## SYNOPSIS

**ddgr \[OPTIONS\] \[KEYWORD \[KEYWORD ...\]\]**

## DESCRIPTION

**ddgr** is a command-line tool to search DuckDuckGo (html version). **ddgr** shows the title, URL and text context for each result. Results are fetched in pages. Keyboard shortcuts are available for page navigation. Results are indexed and a result URL can be opened in a browser using the index number. There is no configuration file as aliases serve the same purpose for this utility. Supports sequential searches in a single instance.

**Features**

  \* Fast and clean; custom color\
   \* Designed for maximum readability at minimum space\
   \* Instant answers (supported by DDG html version)\
   \* Custom number of results per page\
   \* Navigation, browser integration\
   \* Search and option completion scripts (Bash, Fish, Zsh)\
   \* DuckDuckGo Bangs (along with completion)\
   \* Open the first result in browser (I'm Feeling Ducky)\
   \* REPL for continuous searches\
   \* Keywords (e.g. \`filetype:mime\`, \`site:somesite.com\`)\
   \* Limit search by time, specify region, disable safe search\
   \* HTTPS proxy support, optionally disable User Agent\
   \* Do Not Track set by default\
   \* Supports custom url handler script or cmdline utility\
   \* Thoroughly documented, man page with examples\
   \* Minimal dependencies

## OPTIONS

- **-h, --help**

  Show help text and exit.

- **-n, --num=***N*

  Show N results per page (default 10). N must be between 0 and 25. N=0 disables fixed paging and shows actual number of results fetched per page.

- **-r, --reg=***REG*

  Region-specific search e.g. 'us-en' for US (default); visit https://duckduckgo.com/params.

- **-C, --nocolor**

  Disable color output.

- **--colors=***COLORS*

  Set output colors. Refer to the **COLORS** section below for details.

- **-j, --ducky**

  Open the first result in a web browser; implies **--noprompt**. Feeling Ducky?

- **-t, --time=***SPAN*

  Time limit search \[d=past day, w=past week, m=past month, y=past year\] (default=any time).

- **-w, --site=***SITE*

  Search a site using DuckDuckGo.

- **-x, --expand**

  Expand URLs instead of showing only the domain name (default).

- **-p, --proxy=***URI*

  Tunnel traffic through an HTTP proxy. *URI* is of the form *\[http\[s\]://\]\[user:pwd@\]host\[:port\]*. The proxy server must support HTTP CONNECT tunneling and must not block port 443 for the relevant DuckDuckGo hosts. If a proxy is not explicitly given, the *https\_proxy* or *HTTPS\_PROXY* environment variable (if available) is used instead.

- **--unsafe**

  Disable safe search.

- **--noua**

  Disable user agent. Results are fetched faster.

- **--json**

  Output in JSON format; implies **--noprompt**.

- **--gb, --gui-browser**

  Open a bang directly in a GUI browser.

- **--np, --noprompt**

  Perform search and exit; do not prompt for further interactions.

- **--rev, --reverse**

  List the entries in reversed order.

- **--url-handler=***UTIL*

  Custom script or command-line utility to open urls with.

- **--show-browser-logs**

  Do not suppress browser output when opening result in browser; that is, connect stdout and stderr of the browser to ddgr's stdout and stderr instead of /dev/null. By default, browser output is suppressed (due to certain graphical browsers spewing messages to console) unless the **BROWSER** environment variable is a known text-based browser: elinks, links, lynx, w3m or www-browser.

- **-v, --version**

  Show version number and exit.

- **-d, --debug**

  Enable debugging.

## OMNIPROMPT KEYS

- **n, p, f**

  Fetch the next, previous or first set of search results.

- **index**

  Open the result corresponding to index in browser.

- **o** *\[index\|range\|a ...\]*

  Open space-separated result indices, numeric ranges or all indices, if 'a' is specified, in the browser.

- **O** *\[index\|range\|a ...\]*

  Works similar to key 'o', but tries to ignore text-based browsers (even if BROWSER is set) and open links in a GUI browser.

- **d** *keywords*

  Initiate a new DuckDuckGo search for *keywords* with original options. This key should be used to search omniprompt keys (including itself) and indices.

- **x**

  Toggle url expansion.

- **c index**

  Copy url to clipboard.

- **q, ^D, double Enter**

  Exit ddgr.

- **?**

  Show omniprompt help.

- **\***

  Any other string initiates a new search with original options.

## COLORS

**ddgr** allows you to customize the color scheme via a six-letter string, reminiscent of BSD **LSCOLORS**. The six letters represent the colors of

- \-

  indices

- \-

  titles

- \-

  URLs

- \-

  metadata/publishing info

- \-

  abstracts

- \-

  prompts

- respectively. The six-letter string is passed in either as the argument to the **--colors** option, or as the value of the environment variable **DDGR\_COLORS**.

  - We offer the following colors/styles:

  | | |
  | --- | --- |
  | Letter | Color/Style |
  |
  | b | red |
  | c | green |
  | d | yellow |
  | e | blue |
  | f | magenta |
  | g | cyan |
  | h | white |
  | i | bright black |
  | j | bright red |
  | k | bright green |
  | l | bright yellow |
  | m | bright blue |
  | n | bright magenta |
  | o | bright cyan |
  | p | bright white |
  | A-H | bold version of the lowercase-letter color |
  | I-P | bold version of the lowercase-letter bright color |
  | x | normal |
  | X | bold |
  | y | reverse video |
  | Y | bold reverse video |

-

  - The default colors string is *oCdgxy*, which stands for

  - \-

  bright cyan indices

- \-

  bold green titles

- \-

  yellow URLs

- \-

  cyan metadata/publishing info

- \-

  normal abstracts

- \-

  reverse video prompts

- Note that

  - \-

  Bright colors (implemented as \\x1b\[90m - \\x1b\[97m) may not be available in all color-capable terminal emulators;

- \-

  Some terminal emulators draw bold text in bright colors instead;

- \-

  Some terminal emulators only distinguish between bold and bright colors via a default-off switch.

- Please consult the manual of your terminal emulator as well as *https://en.wikipedia.org/wiki/ANSI\_escape\_code* for details.

  ## ENVIRONMENT

- **BROWSER**

  Overrides the default browser. Ref: *http://docs.python.org/library/webbrowser.html*

- **DDGR\_COLORS**

  Refer to the **COLORS** section.

- **DISABLE\_PROMPT\_COLOR**

  Force a plain omniprompt if you are facing issues with colors at the prompt.

- **HTTPS\_PROXY, https\_proxy**

  Refer to the **--proxy** option.

## EXAMPLES

- 1\.

  DuckDuckGo **hello world**:

```

```

-

  **ddgr hello world**

- 2\.

  **I'm Feeling Ducky** search:

```

```

-

  **ddgr -j lucky ducks**

- 3\.

  **DuckDuckGo Bang** search 'hello world' in Wikipedia:

```

```

-

  **ddgr !w hello world** **ddgr \\!w hello world // bash-specific, need to escape ! on bash**

-

  Bangs work at the omniprompt too. To look up bangs, visit https://duckduckgo.com/bang?#bangs-list.

- 4\.

  **Bang alias** to fire from the cmdline, open results in a GUI browser and exit:

```

```

-

  **alias bang='ddgr --gb --np'**

-

  **bang !w hello world** **bang \\!w hello world // bash-specific, need to escape ! on bash**

- 5\.

  **Website specific** search:

```

```

-

  **ddgr -w amazon.com digital camera**

-

  Site specific search continues at omniprompt.

- 6\.

  Search for a **specific file type**:

```

```

-

  **ddgr instrumental filetype:mp3**

- 7\.

  Fetch results on IPL cricket from **India** in **English**:

```

```

-

  **ddgr -r in-en IPL cricket**

-

  To find your region parameter token visit https://duckduckgo.com/params.

- 8\.

  Search **quoted text**:

```

```

-

  **ddgr it\\'s a \\"beautiful world\\" in spring**

- 9\.

  Show **complete urls** in search results (instead of only domain name):

```

```

-

  **ddgr -x ddgr**

- 10\.

  Use a **custom color scheme**, e.g., one warm color scheme designed for Solarized Dark:

```

```

-

  **ddgr --colors bjdxxy hello world**

-

  **DDGR\_COLORS=bjdxxy ddgr hello world**

- 11\.

  Tunnel traffic through an **HTTPS proxy**, e.g., a local Privoxy instance listening on port 8118:

```

```

-

  **ddgr --proxy localhost:8118 hello world**

-

  By default the environment variable *https\_proxy* (or *HTTPS\_PROXY*) is used, if defined.

- 12\.

  Look up **n**, **p**, **o**, **O**, **q**, **d keywords** or a result index at the **omniprompt**: as the omniprompt recognizes these keys or index strings as commands, you need to prefix them with **d**, e.g.,

```

```

-

  **d n**

-

  **d d keywords**

-

  **d 1**

## AUTHOR

Arun Prakash Jana \<engineerarun@gmail.com\>

## HOME

*https://github.com/jarun/ddgr*

## REPORTING BUGS

*https://github.com/jarun/ddgr/issues*

## LICENSE

Copyright © 2016-2024 Arun Prakash Jana \<engineerarun@gmail.com\>

License GPLv3+: GNU GPL version 3 or later \<http://gnu.org/licenses/gpl.html\>.\
 This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law.
