Skip to content

santinic/how2

Repository files navigation

how2: AI for your Terminal

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

Install

Usage

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:

how2 AI and StackOverflow mode

If you have exhausted your daily AI quota (it goes by IP) it defaults to StackOverflow search.

how2 -s example

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

How does it work?

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.

How well does it work?

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.

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 settings in your ~/.bash_profile:

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