ddgr is a cmdline utility to search DuckDuckGo (html version) from the terminal

Overview

ddgr

Latest release Availability PyPI Build Status Privacy Awareness License

Asciicast

ddgr is a cmdline utility to search DuckDuckGo (html version) from the terminal. While googler is extremely popular among cmdline users, in many forums the need of a similar utility for privacy-aware DuckDuckGo came up. DuckDuckGo Bangs are super-cool too! So here's ddgr for you!

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.

A big advantage of ddgr over googler is DuckDuckGo works over the Tor network.

ddgr isn't affiliated to DuckDuckGo in any way.

Love smart and efficient utilities? Explore my repositories. Buy me a cup of coffee if they help you.

Donate via PayPal!

Table of contents

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
  • Privacy-aware (no unconfirmed user data collection)
  • Thoroughly documented, man page with examples
  • Minimal dependencies

Installation

Dependencies

ddgr requires Python 3.6 or later. Only the latest patch release of each minor version is supported.

To copy url to clipboard at the omniprompt, ddgr looks for xsel or xclip or termux-clipboard-set (in the same order) on Linux, pbcopy (default installed) on OS X, clip (default installed) on Windows and clipboard (default installed) on Haiku. It also supports GNU Screen and tmux copy-paste buffers in the absence of X11.

Note: v1.1 and below require the Python3 requests library to make HTTPS requests. This dependency is removed in the later releases.

From a package manager

Install ddgr from your package manager. If the version available is dated try an alternative installation method.

Packaging status (expand)


Packaging status

Unlisted packagers:


PyPI (pip3 install ddgr)
Snap Store (snap install ddgr)
Source Mage (cast ddgr)
● Termux (pip3 install ddgr)

Release packages

Packages for Arch Linux, CentOS, Debian, Fedora, OpenSUSE Leap, Solus, and Ubuntu are available with the latest stable release.

From source

If you have git installed, clone this repository. Otherwise download the latest stable release or development version.

To install to the default location (/usr/local):

$ sudo make install

To remove ddgr and associated docs, run

$ sudo make uninstall

PREFIX is supported, in case you want to install to a different location.

Running standalone

ddgr is a standalone executable (and can run even on environments like Termux). From the containing directory:

$ ./ddgr

Shell completion

Search keyword and option completion scripts for Bash, Fish and Zsh can be found in respective subdirectories of auto-completion/. Please refer to your shell's manual for installation instructions.

Usage

Cmdline options

usage: ddgr [-h] [-n N] [-r REG] [--colorize [{auto,always,never}]] [-C]
            [--colors COLORS] [-j] [-t SPAN] [-w SITE] [-x] [-p URI]
            [--unsafe] [--noua] [--json] [--gb] [--np] [--url-handler UTIL]
            [--show-browser-logs] [-v] [-d]
            [KEYWORD [KEYWORD ...]]

DuckDuckGo from the terminal.

positional arguments:
  KEYWORD               search keywords

optional arguments:
  -h, --help            show this help message and exit
  -n N, --num N         show N (0<=N<=25) results per page (default 10); N=0
                        shows actual number of results fetched per page
  -r REG, --reg REG     region-specific search e.g. 'us-en' for US (default);
                        visit https://duckduckgo.com/params
  --colorize [{auto,always,never}]
                        whether to colorize output; defaults to 'auto', which
                        enables color when stdout is a tty device; using
                        --colorize without an argument is equivalent to
                        --colorize=always
  -C, --nocolor         equivalent to --colorize=never
  --colors COLORS       set output colors (see man page for details)
  -j, --ducky           open the first result in a web browser; implies --np
  -t SPAN, --time SPAN  time limit search [d (1 day), w (1 wk), m (1 month), y (1 year)]
  -w SITE, --site SITE  search sites using DuckDuckGo
  -x, --expand          Show complete url in search results
  -p URI, --proxy URI   tunnel traffic through an HTTPS proxy; URI format:
                        [http[s]://][user:pwd@]host[:port]
  --unsafe              disable safe search
  --noua                disable user agent
  --json                output in JSON format; implies --np
  --gb, --gui-browser   open a bang directly in gui browser
  --np, --noprompt      perform search and exit, do not prompt
  --url-handler UTIL    custom script or cli utility to open results
  --show-browser-logs   do not suppress browser output (stdout and stderr)
  -v, --version         show program's version number and exit
  -d, --debug           enable debugging

omniprompt keys:
  n, p, f               fetch the next, prev or first set of search results
  index                 open the result corresponding to index in browser
  o [index|range|a ...] open space-separated result indices, ranges or all
  O [index|range|a ...] like key 'o', but try to open in a GUI browser
  d keywords            new DDG search for 'keywords' with original options
                        should be used to search omniprompt keys and indices
  x                     toggle url expansion
  c index               copy url to clipboard
  q, ^D, double Enter   exit ddgr
  ?                     show omniprompt help
  *                     other inputs are considered as new search keywords

Configuration file

ddgr doesn't have any! Use aliases, environment variables and auto-completion scripts.

Text-based browser integration

ddgr works out of the box with several text-based browsers if the BROWSER environment variable is set. For instance,

$ export BROWSER=w3m

or for one-time use,

$ BROWSER=w3m ddgr query

Due to certain graphical browsers spewing messages to the console, ddgr suppresses browser output by default unless BROWSER is set to one of the known text-based browsers: currently elinks, links, lynx, w3m or www-browser. If you use a different text-based browser, you will need to explicitly enable browser output with the --show-browser-logs option. If you believe your browser is popular enough, please submit an issue or pull request and we will consider whitelisting it. See the man page for more details on --show-browser-logs.

If you need to use a GUI browser with BROWSER set, use the omniprompt key O. ddgr will try to ignore text-based browsers and invoke a GUI browser. Browser logs are always suppressed with O.

Colors

The color configuration is similar to that of googler colors. The default color string is oCdgxy. ddgr recognizes the environment variable DDGR_COLORS. Details are available in the ddgr man page.

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 g keywords
    d 1
    

Troubleshooting

  1. Some users have reported problems with a colored omniprompt (refer to issue #40) with iTerm2 on OS X. To force a plain omniprompt:

    export DISABLE_PROMPT_COLOR=1
    

Collaborators

Copyright © 2016-2021 Arun Prakash Jana

In the Press

Comments
  • Opening Links in GUI browser within WSL (bash on windows) does not work

    Opening Links in GUI browser within WSL (bash on windows) does not work

    Not sure if specific to ddgr but I cannot open links with my default GUI browser when using ddgr in WSL

    I've set browser ($BROWSER) to be /mnt/c/Program Files (x86)/Mozilla Firefox/firefox.exe

    Distributor ID: Ubuntu
    Description:    Ubuntu 16.04.3 LTS
    Release:        16.04
    Codename:       xenial
    
    $ ddgr -d cheese
    [DEBUG] ddgr version 1.2
    [DEBUG] Python version 3.5.2
    [DEBUG] q:cheese, region:us-en, page:0, curindex:1, safe:1
    [DEBUG] nextParams:
    [DEBUG] proxy:{'https': None}
    [DEBUG] Response body written to '/tmp/ddgr-response-nu6ap22r'.
    [DEBUG] Prev nextParams:
    [DEBUG] Next nextParams: Keywords=cheese&xargs=12KPjg1slSrZquh831MeKMQeKUgRpd1tm58N0uXsYsfIwUpX9u6dFIEOacyZA6QO1xt77k%5FcDYpflNaKymwfaJExjXBRHcX726gZS7%5FYsrb%2DeWZZIezeZgn7Sy2tkTZXIFYk%2DBSQ%2E%2E&hData=12KPjg1qdOxJy7tuqnF9W2TeGj8m4%2E
    
     (1) Cheese.com - World's Greatest Cheese Resource  [cheese.com]
    Cheese and wine, the perfect recipe for a great dinner party. Light or heavy; fruity or dry, learn more about the wonderful combinations.
    
     (2) Cheese - Wikipedia  [en.wikipedia.org]
    Cheese is a dairy product derived from milk that is produced in a wide range of flavors, textures, and forms by coagulation of the milk protein casein.It comprises proteins and fat from milk, usually the milk of cows, buffalo, goats, or
    sheep.
    
     (3) Cheese Recipes - Allrecipes.com  [www.allrecipes.com]
    Looking for cheese recipes? Allrecipes has more than 4,840 trusted cheese recipes complete with how-to videos, ratings, reviews, and cooking tips.
    
     (4) Cheese - Walmart.com  [www.walmart.com]
    Shop for Cheese in Dairy, Eggs & Cheese. Buy products such as 4C HomeStyle Parmesan Romano Grated Cheese, 6 oz, Velveeta Original Cheese 16 oz. Box at Walmart and save.
    
     (5) Cheese - definition of cheese by The Free Dictionary  [www.thefreedictionary.com]
    cheese 1 (chēz) n. 1. a. A solid food prepared from the pressed curd of milk, often seasoned and aged. b. A molded mass of this substance. 2. Something resembling this ...
    
     (6) A Guide to Cheese | Whole Foods Market  [www.wholefoodsmarket.com]
    Walk into our stores & you'll find some of the best cheeses in the world. Read up on all things cheese including types, cooking with cheese, & more.
    
     (7) Gourmet Cheese | Di Bruno Bros.  [dibruno.com]
    Di Bruno Brothers carries the finest selection of artisan and gourmet cheese online. Shop online and get your gourmet cheese shipped directly to you.
    
     (8) Cheese - The New York Times  [www.nytimes.com]
    News about cheese. Commentary and archival information about cheese from The New York Times.
    
     (9) Murray's Cheese | Gourmet Cheeses & Meats, Cheese of the ...  [www.murrayscheese.com]
    Cheese and meat is one of the oldest pairings, and Olympia Provisions is one of America's foremost producers of artisanal meats—Bon Appetit calls them the country's best charcuterie, and they've won more Good Food Awards than any other
    producer ever.
    
     (10) Chuck E. Cheese's - Where A Kid Can Be A Kid®  [www.chuckecheese.com]
    Come experience great food and fun for all ages! Chuck E. Cheese's offers family fun and entertainment, Where A Kid Can Be A Kid®!
    
    ddgr (? for help) O 1
    [DEBUG] Opening https://cheese.com/
    [DEBUG] <webbrowser.GenericBrowser object at 0x7fab6e768940>
    

    and nothing happens

    Using python directly (what looks to be the way the scripts opens a link) works great (opens a firefox window on my windows desktop)

    Python 2.7.12 (default, Dec  4 2017, 14:50:18)
    [GCC 5.4.0 20160609] on linux2
    Type "help", "copyright", "credits" or "license" for more information.
    >>> import webbrowser
    >>> import pprint
    >>> vars(webbrowser.get())
    {'basename': 'firefox.exe', 'args': ['%s'], 'name': '/mnt/c/Program Files (x86)/Mozilla Firefox/firefox.exe'}
    >>> webbrowser.open("www.github.com")
    True
    
    opened by mrwhale 31
  • Suddenly stopped working

    Suddenly stopped working

    Greetings, Can ping duckduckgo.com (no replies but contactable) Can use duckduckgo.com from chrome

    some debug output: PING google.com (172.217.20.110) 56(84) bytes of data. 64 bytes from ams17s01-in-f14.1e100.net (172.217.20.110): icmp_seq=1 ttl=117 time=39.3 ms 64 bytes from ams17s01-in-f14.1e100.net (172.217.20.110): icmp_seq=2 ttl=117 time=38.9 ms 64 bytes from ams17s01-in-f14.1e100.net (172.217.20.110): icmp_seq=3 ttl=117 time=39.2 ms 64 bytes from ams17s01-in-f14.1e100.net (172.217.20.110): icmp_seq=4 ttl=117 time=38.8 ms

    --- google.com ping statistics --- 4 packets transmitted, 4 received, 0% packet loss, time 3005ms rtt min/avg/max/mdev = 38.834/39.043/39.297/0.202 ms [[email protected]]~:ping -c4 duckduckgo.com PING duckduckgo.com (40.114.177.156) 56(84) bytes of data.

    --- duckduckgo.com ping statistics --- 4 packets transmitted, 0 received, 100% packet loss, time 3061ms

    [[email protected]]~:ddgr -d ubuntu 20.04 [DEBUG] ddgr version 1.8.1 Python version 3.8.2 [DEBUG] q:ubuntu 20.04, region:us-en, page:0, curindex:1, safe:1 [DEBUG] nextParams: [DEBUG] proxy:{'https': None} [DEBUG] ua:ddgr/1.8.1 (textmode; Linux x86_64; 1024x768) [DEBUG] Response body written to '/tmp/ddgr-response-tixs8svt'. [DEBUG] Prev nextParams: [DEBUG] Next nextParams: No results. ddgr (? for help)

    cat /tmp/ddgr-response-tixs8svt

    DuckDuckGo
    opened by kurtericmiller 25
  • Error writing to JSON files

    Error writing to JSON files

    Hi,

    I have a bash shell script to loop through a list of terms, perform ddgr and write the output to a json file. For every second term I'm receiving the error: invalid width -5 (must be > 0)

    image

    Any advice would be appreciated! Cheers

    opened by l-jdavies 15
  • Missing 'requests' module

    Missing 'requests' module

    This problem might be with my python installation, but python seems to break so easily that, even if the problem is with my installation, others might have the same problem.

    The problem is as follows.

    ~ $ ddgr test
    Traceback (most recent call last):
      File "/usr/bin/ddgr", line 25, in <module>
        import requests
    ImportError: No module named 'requests'
    

    sudo -H pip install requests worked but did not prevent the above error message. Linux Mint Cinnamon 18.3 x64

    EDIT: here are some relevant details of my system.

    ~ $ which python
    /usr/bin/python
    ~ $ python
    Python 2.7.12 (default, Nov 20 2017, 18:23:56) 
    [GCC 5.4.0 20160609] on linux2
    

    Also: compiling from the git source did not solve the problem.

    FURTHER EDIT:

    $ python3 ddgr test
    Traceback (most recent call last):
      File "ddgr", line 25, in <module>
        import requests
    ImportError: No module named 'requests'
    
    opened by ghost 15
  • seq fault on Cntrl-q

    seq fault on Cntrl-q

    when I do ddgr hello world, then type Cntrl-q at the prompt, ddgr dies with a seg fault

    It would be sort of nice if Cntrl-q also meant quit. I have a bit of a crazed personal mission of making Cntrl-q mean "get rid of the current thing" across all my software. Of course it sort of works as it is so maybe I shouldn't be reporting this issue :)

    opened by bkerin 15
  • Omniprompt broken if search is too long

    Omniprompt broken if search is too long

    If the search is too long, the UI gets bugged up in various ways. This is apparent, when you are crammed and lack space. The underlying logic works, it's just the displaying of the text of the search that is bugged.

    from terminal, do a very long search. It does the search, with the arrows, get the previous search, then if you try to move the cursor to the beginning, you can't go all the way.

    In the UI, if you type too much, it comes back and overwrights the same line. If you try backspace the line is no longer visible or in part. Again, can't move the cursor all the way to the start.

    I think the solution, is to simply support multiple lines in the UI. The bugs is just the one line overflowing and doing unexpected stuff. (probably the same issue in googler, didn't test that)

    opened by pirate486743186 11
  • Implements subpagination for ddgr

    Implements subpagination for ddgr

    Here's a provisional implementation of subpagination for ddgr.

    Pagination is set by using the -n (or --num) option which takes an integer N to paginate the results by. For example: ddgr python -n 5 will paginate by 5 results at a time.

    If the number of fetched results left to display is less than the pagination value, new results from the next Ddg results page are fetched and appended to the list of results already returned. Use of the p command in the omniprompt will show the previous N results, where N is the pagination value.

    If the f command is used in the omni prompt, the index is reset to 0 so that the first set of results are displayed.

    Please let me know if this is in line with what you are thinking/what changes should be made.

    opened by mosegontar 11
  • Cannot use text base browsers

    Cannot use text base browsers

    When I try to use a text based browser (w3m or lynx) I receive the following error [ERROR] register() takes from 2 to 3 positional arguments but 4 were given. It does work with gui based browsers though.

    Operating system: macOS High Sierra v10.13.6

    I tried this on both normal bash/terminal and on zsh and got the same results.

    w3m version:

    ➜  w3m -version
    w3m version w3m/0.5.3+git20180125, options lang=en,m17n,color,ansi-color,mouse,menu,cookie,ssl,ssl-verify,external-uri-loader,w3mmailer,nntp,ipv6,alarm,mark
    

    ddgr version:

    ➜  ddgr --version
    1.4
    

    query and command output:

    ➜  BROWSER=w3m ddgr django decorator require_post
    
     (1) View decorators | Django documentation | Django  [docs.djangoproject.com]
    The decorators in django.views.decorators.http can be used to restrict access to views based on the ... require_POST()¶ Decorator to require that a view only accepts ...
    
     (2) Working with Django View Decorators - Simple is Better Than ...  [simpleisbetterthancomplex.com]
    View decorators can be used to restrict access to certain views. Django come with some built-in decorators, like login_required, require_POST or has_permissi...
    
     (3) django.views.decorators.http | Django documentation | Django  [docs.djangoproject.com]
    Source code for django.views.decorators.http ... require_POST. __doc__ = "Decorator to require that a view only ... archives of the django-users mailing list, or post ...
    
     (4) Decorator overwriting POST, GET and REQUEST in Django - doing ...  [stackoverflow.com]
    In Django, I have created a function decorator which can - in this example - create a lowercase version of a supplied POST/GET argument, and it updates the REQUEST before the view
    handles it all. ...
    
     (5) Creating class based view decorators using simple Django ...  [www.daveoncode.com]
    For example let's consider we have a view that require a POST ... and this is the class decorator implementation: from django.views.decorators.http import ...
    
     (6) How to display a custom error page for HTTP status 405 ...  [stackoverflow.com]
    My question is simple, how do I display a custom error page for HTTP status 405 (method not allowed) in Django when using the @require_POST decorator? I'm using the
    django.views.decorators.http.
    
     (7) View decorators — Django 1.10 documentation  [django-document-korean.readthedocs.io]
    The decorators in django.views.decorators.http can be used to restrict access to views based on the ... require_POST()¶ Decorator to require that a view only accepts ...
    
     (8) View decorators — Django 2.2.dev20180622141950 documentation  [django.readthedocs.io]
    The decorators in django.views.decorators.http can be used to restrict access to views based on the ... require_POST ¶ Decorator to require that a view only accepts ...
    
     (9) How to secure your Django project by validating incoming ...  [www.twilio.com]
    In this guide we'll cover how to secure your Django application by validating incoming requests to your Twilio webhooks are, in fact, from Twilio. With a few lines of code we'll
    write a custom decorator for our Django project that uses the Twilio Python SDK's validator utility. We can then ...
    
     (10) Writing Django Views: Function Based Views ... - Program Everyday  [programeveryday.com]
    Writing Django Views: Function Based Views, ... In FBVs I typically import django.views.decorators.http.require_POST and use that as a decorator to specify that the ...
    
    ddgr (? for help) 1
    [ERROR] register() takes from 2 to 3 positional arguments but 4 were given
    

    Thanks for your hard work, and if there's anything I can do to help resolve this issue, let me know.

    opened by ograycode 10
  • Add copy support using pyperclip

    Add copy support using pyperclip

    I know that ddgr tries to be dependency-free on Python side of things, but I haven't found a better cross-platform solution than pyperclip.

    If you know how to implement this without dependencies, please share!

    opened by Br1ght0ne 9
  • Support navigation

    Support navigation

    Any idea to implement this feature? Looking at the source code of the Next button (https://duckduckgo.com/html/?q=asd) it may seem trivial to build a URL for the next and previous pages:

    <form action="/html/" method="post">
              <input type="submit" class='btn btn--alt' value="Next" />
              <input type="hidden" name="q" value="asd" />
              <input type="hidden" name="s" value="30" />
              <input type="hidden" name="nextParams" value="Keywords=asd&amp;xargs=12KPjg1pZSrp68i%2D%5FoMPCRErjGnQNVmZ615JIuTcQ%5FQZAD6A5dYdR%5FePqBypItDrUtu0KJk6nQo%5FpPIfD7ucu6&amp;hData=12KPjg1qdOxJy7tuqnF9W2TOSj8m4%2E" />
              <input type="hidden" name="v" value="l" />
              <input type="hidden" name="o" value="json" />
              <input type="hidden" name="dc" value="31" />
              <input type="hidden" name="api" value="/d.js"/>
              <input name="kl" value="us-en" type="hidden" />
    </form>
    

    But https://duckduckgo.com/html/?q=sample&s=30&dc=31 just shows a website with the following message:

    If this error persists, please let us know: [email protected]

    opened by jorgesumle 9
  • Support search bangs in different positions

    Support search bangs in different positions

    DuckDuckGo supports placing search bangs anywhere in the search string. I always commonly place it after the thing I'm searching for. That doesn't work with ddgr.

    wontfix 
    opened by shmerl 8
  • Prompt should always be visible

    Prompt should always be visible

    In the absence of sufficient vertical space to display all results, the user is forced to scroll up to read the first result but the prompt disappears. Instead, it would be nice if it was always visible (therefore in a fixed position).

    To this, I would add that it would be nice if in the same situation, the user is faced with the upper part of the results (1, 2, 3, ...) and not the lower part (10, 9, 8, ...).

    opened by user451421541757324 2
Releases(v2.1)
Owner
Piña Colada
Blending the terminal in a GUI world.
Piña Colada
Simple Digital Ocean CLI by python.

Simple Digital Ocean CLI by python.

Chiro 2 Jan 01, 2023
Shellmon is a tool used to create and control a webshell remotely, created using the Python3

An Simple PHP Webshell Manager Description Shellmon is a tool used to create and control a webshell remotely, created using the Python3 programming la

22XploiterCrew 12 Dec 30, 2022
A basic molecule viewer written in Python, using curses; Thus, meant for linux terminals

asciiMOL A basic molecule viewer written in Python, using curses; Thus, meant for linux terminals. This is an alpha version, featuring: Opening defaul

Dominik Behrens 328 Dec 11, 2022
A dashboard for your Terminal written in the Python 3 language,

termDash is a handy little program, written in the Python 3 language, and is a small little dashboard for your terminal, designed to be a utility to help people, as well as helping new users get used

Rebecca White 2 Dec 03, 2021
A command line utility for tracking a stock market portfolio. Primarily featuring high resolution braille graphs.

A command line stock market / portfolio tracker originally insipred by Ericm's Stonks program, featuring unicode for incredibly high detailed graphs even in a terminal.

Conrad Selig 51 Nov 29, 2022
🔖 Lemnos: A simple, light-weight command-line to-do list manager.

🔖 Lemnos: CLI To-do List Manager This is a simple program that allows one to manage a to-do list via the command-line. Example $ python3 todo.py add

Rohan Sikand 1 Dec 07, 2022
A simple script to make the operation of AltServer-Linux more easier with cli

A simple script to make the operation of AltServer-Linux more easier with cli

powen 23 Dec 13, 2022
Microsoft Azure CLI - Azure Command-Line Interface

A great cloud needs great tools; we're excited to introduce Azure CLI, our next generation multi-platform command line experience for Azure.

Microsoft Azure 3.4k Dec 30, 2022
A ZSH plugin that enables you to use OpenAI's powerful Codex AI in the command line.

A ZSH plugin that enables you to use OpenAI's powerful Codex AI in the command line.

Tom Dörr 976 Jan 03, 2023
CLI tool to show the current crypto balance

CryptoBoard The simple python CLI tool for one currency to show the current crypto balance yours purchases. That's all. Data source is from https://ww

John 2 Nov 18, 2021
GoSearch for anything from your terminal

GoSearch for anything from your terminal Requirements pip install beautifulsoup4

Malik Mouhiidine 1 Oct 02, 2021
Simple Python Library to display text with color in Python Terminal

pyTextColor v1.0 Introduction pyTextColor is a simple Python Library to display colorful outputs in Terminal, etc. Note: Your Terminal or any software

Siddhesh Chavan 1 Jan 23, 2022
Postgres CLI with autocompletion and syntax highlighting

A REPL for Postgres This is a postgres client that does auto-completion and syntax highlighting. Home Page: http://pgcli.com MySQL Equivalent: http://

dbcli 10.8k Jan 02, 2023
Wik is use to get information about anything on the shell using Wikipedia.

WIK wik is a tool to view wikipedia pages from your terminal. It also let you search for any wikipedia up to date article on one query from your termi

Yash Singh 340 Dec 18, 2022
Present - A terminal-based presentation tool with colors and effects.

present A terminal-based presentation tool with colors and effects. You can also play a codio (pre-recorded code block) on a slide. present is built o

Vinayak Mehta 4.2k Jan 03, 2023
Python Library and CLI for exporting MySQL databases

expdb Python library and CLI for exporting MySQL databases Installation Pre-requisites MySQL server Python 3.9+ Using git Clone the repository to your

Devansh Singh 1 Nov 29, 2021
Gamestonk Terminal is an awesome stock and crypto market terminal

Gamestonk Terminal is an awesome stock and crypto market terminal. A FOSS alternative to Bloomberg Terminal.

Gamestonk Terminal 18.6k Jan 03, 2023
Display Images in your terminal with python

A python library to display images in the terminal

Pranav Baburaj 57 Dec 30, 2022
Text based command line webcam photobooth app

Skunkbooth Why See it in action Usage Installation Run Media location Contributing Install Poetry Clone the repo Activate poetry shell Install dev dep

David Yang 45 Dec 26, 2022
CLI/library to control FNIRSI DC Power Supply (DC-6006L, etc)

dc6006l - CLI/library to control FNIRSI DC Power Supply (DC-6006L, etc) What is this? FNIRSI DC6006L is a programmable DC power supply that is quite c

Taisuke Yamada 7 Sep 25, 2022