• Stars
    star
    10,202
  • Rank 3,409 (Top 0.07 %)
  • Language
    Python
  • License
    MIT License
  • Created almost 12 years ago
  • Updated over 1 year ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

instant coding answers via the command line

Sherlock, your neighborhood command-line sloth sleuth

howdoi

Instant coding answers via the command line

⚡ Never open your browser to look for help again ⚡

build status downloads Python versions


Introduction to howdoi

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

image

Installation

pip install howdoi

or

brew install howdoi

Usage

New to howdoi?

howdoi howdoi

RTFM

Commands

usage: howdoi [-h] [-p POS] [-n NUM] [-a] [-l] [-c] [-x] [-C] [-j] [-v] [-e [ENGINE]]
[--save] [--view] [--remove] [--empty] [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)
  -n NUM, --num NUM     number of answers to return (default: 1)
  -a, --all             display the full text of the answer
  -l, --link            display only the answer link
  -c, --color           enable colorized output
  -x, --explain         explain how answer was chosen
  -C, --clear-cache     clear the cache
  -j, --json            return answers in raw json format
  -v, --version         display the current version of howdoi
  -e [ENGINE], --engine [ENGINE]
                        search engine for this query (google, bing, duckduckgo)
  --save, --stash       stash a howdoi answer
  --view                view your stash
  --remove              remove an entry in your stash
  --empty               empty your stash

environment variable examples:
  HOWDOI_COLORIZE=1
  HOWDOI_DISABLE_CACHE=1
  HOWDOI_DISABLE_SSL=1
  HOWDOI_SEARCH_ENGINE=google
  HOWDOI_URL=serverfault.com

Using the howdoi stashing feature (for more advanced features view the keep documentation).

stashing: howdoi --save QUERY
viewing:  howdoi --view
removing: howdoi --remove (will be prompted which answer to delete)
emptying: howdoi --empty (empties entire stash, will be prompted to confirm)

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 format date bash

You can also search other StackExchange properties for answers:

HOWDOI_URL=cooking.stackexchange.com howdoi make pesto

or as an alias:

alias hcook='function hcook(){ HOWDOI_URL=cooking.stackexchange.com howdoi $* ; }; hcook'
hcook make pesto

Other useful aliases:

alias hless='function hdi(){ howdoi $* -c | less --raw-control-chars --quit-if-one-screen --no-init; }; hdi'

Integrations

Contributors

How to contribute

We welcome contributions that make howdoi better and improve the existing functionalities of the project. We have created a separate guide to contributing to howdoi that explains how to get up and running with your first pull request.

Notes

  • Works with Python 3.7 and newer. Unfortunately Python 2.7 support has been discontinued :(
  • Special thanks to Rich Jones (@miserlou) for the idea
  • More thanks to Ben Bronstein for the logo

More Repositories

1

midi-js-soundfonts

Pre-rendered General MIDI soundfonts that can be used immediately with MIDI.js
625
star
2

mahjong

Three-player Mahjong AI and Simulator
JavaScript
86
star
3

automaticdj

Build custom music playlists using facial recognition. Powered by the Hunch API.
Python
80
star
4

YASC

Yet Another Southwest Checkin: Automatically check-in to Southwest flights to get a good seat.
Python
40
star
5

npiet

a language where the programs are works of modern art (updated for OSX)
C
25
star
6

spheremusic

Symphony of the Satelites – an app that generates music based on the trajectories of satellites currently overhead.
JavaScript
24
star
7

meteorcyoa

Yet Another Choose Your Own Adventure – Meteor Version
JavaScript
8
star
8

alfred-howdoi

Instant coding answers via Alfred
7
star
9

bubbli-equirectangular

Convert http://bubb.li images to equirectangular
Python
5
star
10

bespoke-dial

Speed dial for the rotary phone
5
star
11

TardyParty

Examines a private Google Groups RSS feed to determine who has and has not posted during the week
Python
5
star
12

blackfox

Image downloader for the Fox is Black Desktop Wallpaper Project
Python
4
star
13

wikimaze-android

HTML5 wrapper for WikiMaze on Android.
Java
4
star
14

summoning-51ckn355

AI Generated Magic: The Gathering Cards playable as decks in Cockatrice
Python
3
star
15

yacyoa

Yet Another Choose Your Own Adventure
C++
3
star
16

code-kata

Puzzle challenge to teach code quality
Python
3
star
17

browse-on-github.el

View files from Emacs on Github
Emacs Lisp
3
star
18

words

Notes, talks, and demos.
3
star
19

milewise-enhancer

A chrome plugin to "enhance" the Milewise experience.
JavaScript
3
star
20

ebay-collection-creator

Automatically curate interesting eBay collections from around the web
Python
2
star
21

panono-equirectangular

Convert https://panono.com images to equirectangular
Python
1
star
22

writtenworld

“I like things written down, then you’ve got them for good.”
JavaScript
1
star
23

mhs-reunion

Morgantown High Class of 2004 10 Year Reunion
HTML
1
star
24

adventures-of-you

You must choose, but choose wisely
TypeScript
1
star
25

presentations

Presentations powered by reveal.js
JavaScript
1
star