how2 finds the simplest way to do something in a unix shell.
It's like man
, but you can query it in natural language. It uses a mix of AI code-completion and StackOverflow search.
It effectively replaces Chrome => New Tab => Google => Click on StackOverflow => Scroll Down to first answer.
Work in progress 🚧 🚧 🚧 Updates coming soon
v5.mp4
-
With NPM:
npm install -g how2
if it gives you EACCES errors, you need to fix npm permissions. Or you can just use
sudo npm install -g how2
if you don't care. -
MacOSX (via HowBrew):
brew tap how2terminal/how2
brew install how2
-
Ubuntu/Debian:
Download latest .deb and then run:
sudo dpkg i how2.deb
-
Binaries:
Go to the latest release and download the binaries.
By default, how2 uses an external AI server to find the best unix command line suggestion.
If you add the -s
option instead, it will search StackOverflow for an answer:
If you have exhausted your daily AI quota (it goes by IP) it defaults to StackOverflow search.
After that you can press SPACE to go to the interactive mode, where you can choose a different stackoverflow question/answer.
Behind the curtain, the API use a couple of AI code-completion models (Salesforce CodeGen) retrained on Bash/Powershell commands. This is just the beginning, we are looking for funding to build a much bigger thing. Currently, the AI mode is free for everybody: max 5 requests per day, 10 req / minute. If you are a professional user consider upgrading to a paid subscription.
How2 is surprisingly useful once you get used to it.
I have added it to our dev laptops
and Linux servers, and it keeps saving me time.
Sometimes, the model cannot find a solution and will result in unexpected output.
In that case, We suggest rewording your input, it often takes minor changes to get to a good solution.
And, if it really doesn't work, just add -s
to get the best result on StackOverflow straight into
your Terminal.
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).
Yes, you need to use HTTP_PROXY
or HTTPS_PROXY
environment variables.
For example, you could alias the proxy settings in your ~/.bash_profile
:
alias how2="HTTPS_PROXY='your_proxy:8888' how2"