skip to navigation
skip to content

howdoi 1.1.13

Instant coding answers via the command line


instant coding answers via the command line

Are you a hack programmer? Do you find yourself constantly Googling for how to do basic programming tasks?

Suppose you want to know how to format a date in bash. Why open your browser and read through blogs (risking major distraction) when you can simply stay in the console and ask howdoi:

$ howdoi format date bash
> DATE=`date +%Y-%m-%d`

howdoi will answer all sorts of queries:

$ howdoi print stack trace python
> import traceback
> try:
>     1/0
> except:
>     print '>>> traceback <<<'
>     traceback.print_exc()
>     print '>>> end of traceback <<<'
> traceback.print_exc()

$ howdoi convert mp4 to animated gif
> video=/path/to/video.avi
> outdir=/path/to/output.gif
> mplayer "$video" \
>         -ao null \
>         -ss "00:01:00" \  # starting point
>         -endpos 10 \ # duration in second
>         -vo gif89a:fps=13:output=$outdir \
>         -vf scale=240:180

$ howdoi create tar archive
> tar -cf backup.tar --exclude "www/subf3" www


pip install howdoi


pip install git+


brew install


python install


usage: [-h] [-p POS] [-a] [-l] [-c] [-n NUM_ANSWERS] [-C] [-v] QUERY [QUERY ...]

instant coding answers via the command line

positional arguments:
  QUERY                 the question to answer

optional arguments:
  -h, --help            show this help message and exit
  -p POS, --pos POS     select answer in specified position (default: 1)
  -a, --all             display the full text of the answer
  -l, --link            display only the answer link
  -c, --color           enable colorized output
  -n NUM_ANSWERS, --num-answers NUM_ANSWERS
                        number of answers to return
  -C, --clear-cache     clear the cache
  -v, --version         displays the current version of howdoi

As a shortcut, if you commonly use the same parameters each time and don’t want to type them, add something similar to your .bash_profile (or otherwise). This example gives you 5 colored results each time.

alias h='function hdi(){ howdoi $* -c -n 5; }; hdi'

And then to run it from the command line simply type:

$h this is my query for howdoi



  • Works with Python2 and Python3
  • A standalone Windows executable with the howdoi application is available here.
  • An Alfred Workflow for howdoi can be found at
  • Slack integration available through slack-howdoi.
  • Howdoi uses a cache for faster access to previous questions. Caching functionality can be disabled by setting the HOWDOI_DISABLE_CACHE environment variable. The cache is stored in ~/.cache/howdoi.
  • You can set the HOWDOI_URL environment variable to change the source url for answers (default:, also supported:,, full list).
  • You can set the HOWDOI_SEARCH_ENGINE environment variable to change the underlying search engine for StackOverflow links (default: google, also supported: bing).
  • Setting the HOWDOI_COLORIZE environment variable will colorize the output by default.
  • Special thanks to Rich Jones (@miserlou) for the idea.


  • Checkout the repo
  • Run python -m howdoi.howdoi QUERY (if you try running python howdoi/ you might get ValueError: Attempted relative import in non-package).


You might get the following error when installing with Homebrew:

==> python install

Please make the appropriate changes for your system and try again.

Fix the error by executing the following command:

sudo chmod -R go+w /Library/Python/2.7/site-packages/

An official lxml for python 3.3+ for windows has not yet been released. You may get an error while installing. Try and install an unofficial binary for lxml from



  • Improved performance and caching
  • More friendly answer display
  • Added support for Python 3.6
  • Removed support for Python 2.6


  • Add additional search engine support


  • Fix issue with UTF-8 encoding


  • Include the link in output when asking for >1 answer
  • Compatibility with linuxbrew


  • Fix issue with upload to PyPI


  • Fix colorization when HOWDOI_COLORIZE env variable is enabled
  • Fix certificate validation when SSL disabled


  • Add Localization support with HOWDOI_LOCALIZATION env variable (Currently only pt-br and en)


  • Updates for Python3
  • Updates for caching


  • Updates for Python3
  • Fix issues with cache
  • Allow disabling SSL when accessing Google


  • Added caching


  • Added fix to handle change in Google search page HTML
  • Updated Travis CI tests


  • Compatibility fixes for Python3.2
  • Travis CI tests now being run for Python 2.6, 2.7, 3.2, and 3.3


  • Added message when question has no answer


  • Added multiple answers with -n/–num-answers flag
  • Added colorized output with -c/–color flag
  • Added answer link to the bottom of questions with -a/–all flag
  • Unit tests now managed through Travis CI


  • Added support for Python3
  • Switched to the requests library instead of urllib2
  • Project status changed to Production/Stable
  • Added troubleshooting steps to the README


  • Added sane flags
  • Now using /usr/bin/env python instead of /usr/bin/python
  • Updated README for brew installation instructions


  • Added Windows executable
  • Updated README for pip installation instructions


  • Added to PyPI


  • We’re doing it live!
File Type Py Version Uploaded on Size
howdoi-1.1.13.tar.gz (md5) Source 2018-02-24 8KB