Skip to content
stackoverflow from the terminal
Branch: master
Clone or download
Type Name Latest commit message Commit time
Failed to load latest commit information.
bin 1.5.0 rollback Dec 20, 2016
img python example Feb 22, 2016
lib Merge branch 'master' of into jerics… Sep 28, 2018
test Switch to async/await. Sep 23, 2018
.gitignore Add likely entries to .gitignore Feb 23, 2016
.npmignore added repo in package Feb 21, 2016
LICENSE changed licence to mit Mar 7, 2016 Update May 22, 2018
package-lock.json 1.7.1 Sep 28, 2018
package.json 1.7.1 Sep 28, 2018

how2: stackoverflow from the terminal

NPM Version

how2 finds the simplest way to do something in a unix shell. It's like man, but you can query it in natural language:

Demo of using how2


You can install it via npm:

npm install -g how-2

if it gives you EACCES errors, you need to fix npm permissions. Or you can just use sudo npm install -g how-2 if you don't care.


If you don't specify a language it defaults to Bash unix command line. how2 tries to give you immediately the most likely answer:

how2 unzip bz2

After that you can press SPACE to go to the interactive mode, where you can choose a different stackoverflow question/answer.

how2 interactive mode

how2 interactive mode 2

You can use -l lang to find answers for other languages:

-l python

Copy-Paste with mouse

When you are in "interactive mode" (after you press SPACE), if you want to copy-paste more than one line you can use block-select:

With Ubuntu try holding Ctrl+Alt before you select, or Alt+Cmd if you're in iTerm on Mac.

(thanks to @danielkop for this suggestion).

Can i use it behind Proxy ?

Yes, you need to use HTTP_PROXY or HTTPS_PROXY environment variables.

For example, you could alias the proxy seetings in your ~/.bash_profile:

alias how2="HTTPS_PROXY='your_proxy:8888' how2"

How does it work?

It uses Google and Stackoverflow APIs, because Stackoverflow search on its own doesn't works as well.


Because I can never remember how to do certain things. And reading man pages always takes too long.


Taken from

You can’t perform that action at this time.