AI assistant for command line
Project description
Shell Whiz is an AI assistant for the command line. It will help you find the right command for your task.
All features
- Command suggestions: It suggests shell commands based on your input. For example, if you want to know the timestamp of a file,
?? what is the timestamp of file.txt
will suggeststat -c %y file.txt
, which will print the last modification time of the file. - Command explanations: It will try to explain, piece by piece, what the suggested command will do, so you can learn new things about your shell and the commands you use.
- Revisions: If the suggested command is not quite what you want, you can ask for a revision. Another way to use this feature is to start with a simple query and iteratively create a complex command by defining the details.
- Customization: You can tweak the behavior of Shell Whiz using command line arguments. For example, you can set PowerShell as your shell, disable automatic explanations, or use any Chat Completions model instead of the default
gpt-3.5-turbo
model.
Installation and setup
To install Shell Whiz, run the following command:
pip install shell-whiz
This will add the sw
command to your PATH
.
To use Shell Whiz, you need an API key from OpenAI. Obtain this key by visiting https://platform.openai.com/account/api-keys. Once you have the key, configure Shell Whiz by running the following command:
sw config
Free API plan for new users
New users receive $5 for free to try and test the API during the first 3 months. However, it is recommended to upgrade to a paid plan in order to have a more comfortable experience using Shell Whiz. This is because the free plan has restrictions on the number of requests allowed per minute.
Upgrading
To upgrade Shell Whiz, run the following command:
pip install --upgrade shell-whiz
Usage
You can run Shell Whiz directly using sw ask
, but I recommend creating an alias for it. For example, you can add the following line to the bottom of your ~/.bashrc
file:
alias ??='sw ask'
You can also create a function instead of an alias. This will allow you to save executed commands in history. Here are the functions for Bash and Zsh:
# ~/.bashrc
whiz-shell () {
TMPFILE=$(mktemp)
trap 'rm -f $TMPFILE' EXIT
if sw ask -o "$TMPFILE" "$@"; then
if [ -e "$TMPFILE" ]; then
SW_CMD=$(cat "$TMPFILE")
history -s $(history 1 | cut -d' ' -f4-)
history -s "$SW_CMD"
eval "$SW_CMD"
else
echo "Sorry, something went wrong."
fi
else
return 1
fi
}
alias '??'='whiz-shell'
# ~/.zshrc
whiz-shell () {
TMPFILE=$(mktemp)
trap 'rm -f $TMPFILE' EXIT
if sw ask -o "$TMPFILE" "$@"; then
if [ -e "$TMPFILE" ]; then
SW_CMD=$(cat "$TMPFILE")
print -s "$SW_CMD"
eval "$SW_CMD"
else
echo "Sorry, something went wrong."
fi
else
return 1
fi
}
alias '??'='whiz-shell'
PowerShell users can create a function in their PowerShell profile.
function ?? {
# Don't forget to set path to your PowerShell executable
# GPT-4 is used because other models don't work well with PowerShell
sw ask --dont-warn `
-s <powershell executable path> `
-m gpt-4 `
-p "I use PowerShell" `
@Args
}
To track API usage and costs, periodically visit the OpenAI API Usage page.
Tips
- To pass an argument beginning with a hyphen, use the
--
delimiter. This separates the command and its arguments. For example,sw ask -- emulate ARM kernel on versatilepb architecture -cpu cortex-a8
. - Specify a shell executable using
-s
or--shell
. - To select the
gpt-4
model, include-m gpt-4
or--model gpt-4
. - To use the GPT-4 model for explanations, append
--explain-using gpt-4
. - To disable automatic explanations, include
-n
or--dont-explain
. Manual explanations can still be requested via the menu. - Use
--dont-warn
to turn off automatic warnings. - Set specific preferences by adding
-p "..."
or--preferences "..."
. This setting is versatile, useful for choosing a shell environment or other preferences, including the language for assistant responses. The default isI use Bash on Linux
. - Add
-q
or--quiet
to hide the menu and finish right away.
I prefer using alias ??='sw ask --dont-warn -n --'
, but when I encounter a command that I don't fully understand, I choose to explain it using GPT-4 manually.
You should choose the settings that work best for you.
Highly recommend using IntelliShell (a bookmark store for commands) along with Shell Whiz.
More examples
License
Shell Whiz is licensed under the GNU General Public License v3.0.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for shell_whiz-2.1.2rc1-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 779c36595340b0c210ce93a1e120bfd6043b03a7b98e7cbb3cbc5bfe63ada443 |
|
MD5 | 7c1f4dd10728da0bb51c484a5a47710c |
|
BLAKE2b-256 | ebc0587c1d4eff4cfd8e397837e8bc9aa7446c6e5e05aacff9ccfdecd3548bed |