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 to solve your task. This way, you can save your time and effort without diving into documentation, man pages, or searching the web.
Installation 🛠️
To install Shell Whiz, run the following command:
pip install shell-whiz
Or, if you prefer to use pipx:
pipx install shell-whiz
This will add the sw
command to your PATH
.
To use the assistant you'll need an API key from OpenAI. Obtain this key by visiting https://platform.openai.com/api-keys. Once you have the key, you can set it either by running sw config
or by setting the OPENAI_API_KEY
environment variable.
Getting started ✨
You can run the assistant 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'
PowerShell users can create a function in their PowerShell profile.
function ?? {
sw ask `
-s (Get-Command powershell.exe).Source `
-m gpt-4o `
-p "I use PowerShell on a daily basis" `
@Args
}
You can also create a function that allows 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." >&2
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." >&2
fi
else
return 1
fi
}
alias '??'='whiz-shell'
To track API usage and costs, periodically visit the OpenAI API Usage page.
Advanced usage 🚀
The assistant can be easily configured for any task using command line arguments.
The most powerful option is -p "..."
or --preferences "..."
. This setting can be used to select the shell environment or even the language of the assistant's responses. The default value is I use Bash on Linux
.
Run sw ask --help
for more information.
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
File details
Details for the file shell_whiz-3.2.5.tar.gz
.
File metadata
- Download URL: shell_whiz-3.2.5.tar.gz
- Upload date:
- Size: 24.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.7.1 CPython/3.10.15 Linux/6.8.0-1014-azure
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2bca17dbe93aa61ccb20ad3c8ef0078cc748d1c2c3557d5c7500c0f933b4539b |
|
MD5 | 5deeb1af5b59203250ab9260889fd751 |
|
BLAKE2b-256 | 94dcf881c030c774a18b7c5c94661617c919767bed967eeb938ed7abdd63aa25 |
File details
Details for the file shell_whiz-3.2.5-py3-none-any.whl
.
File metadata
- Download URL: shell_whiz-3.2.5-py3-none-any.whl
- Upload date:
- Size: 29.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.7.1 CPython/3.10.15 Linux/6.8.0-1014-azure
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 33dab114e475bc319b7af1955426f0470266a5e4f5547652688a3f2ef282f342 |
|
MD5 | 92b3d81cd1217de52333d159fe4d85b6 |
|
BLAKE2b-256 | 53c9bd1064690ea69e8776a1cfc558e16ff20b7fae24c2b107f13e6b80dad7be |