ShellGPT
ShellGPT is a command-line tool that allows you to interact with GPT-4 directly from your terminal.
Basic Usage
To use ShellGPT, simply run the command with your input message:
gpt "What is the meaning of life, the universe, and everything?"
# ... often humorously said to be the number 42 ...
You can also run shell commands with -x
:
gpt -x "Undo my last git commit"
# git reset HEAD~1
# Are you SURE you wish to run the above command? (y/N): y
gpt -x "Download the wikipedia page for Capybaras with all images"
# wget -r -l 1 -H -t 1 -nd -N -np -A jpg,jpeg,gif,png -erobots=off https://en.wikipedia.org/wiki/Capybara
And pipe input and output, transforming files and commands (pass -
to accept stdin):
cat mod.ts | gpt "Generate a helpful README file for this project" - > README.md
cat crash.log | gpt "Why is this crash occurring?" -
gpt "Output a CSV of 10 notable cities in Japan with their name in English & Japanese plus a fun fact enclosed in quotes" > japan.csv
Installation
Install the Deno runtime
Run the following command to install ShellGPT:
deno install -A --name=gpt https://deno.land/x/shellgpt/mod.ts
Configuration
You must set the OPENAI_API_KEY
environment variable in your current shell, using a key obtained from https://platform.openai.com/account/api-keys:
export OPENAI_API_KEY=...
To configure the specific ChatGPT model and system prompt, you can type gpt --config
Commands and Arguments
Argument | Alias | Description |
---|---|---|
--help | Show help | |
--config | -cfg | Configure the model and system prompt |
- | Read from stdin | |
--continue | -cont, -c | Continue the last conversation |
--exec | -x | Run the output as a shell command |
--name | -n | Name of chat from history to operate the command on |
--retry | -r | Regenerate the last assistant message |
--rewrite | -rw, -w | Rewrite the last user message |
-p | Print the last message in the conversation | |
--pop | Remove the last message in the conversation | |
--slice | -s | Remove the first message in the conversation |
--history | -h | List chat history |
--dump | -d | Dump the entire chat history |
--fast | -f | Use the GPT-3.5-turbo model |
--system | -sys | Set a system prompt or context |
--temperature | -temp, -t | Control the model's creativity |
--wpm | Words per minute, control the speed of typing output | |
--model | -m | Manually use a different OpenAI model |
Features
Shell-GPT has some useful and unique features:
- Execute shell commands with a confirmation step (just pass
-x
). Ideal for determining which command to run. - Supports input/output piping for simple file creation and transformation (see Basic Usage).
- Utility commands for convenient chat history viewing and editing.
- Smooth, streaming output, resembling human typing rather than delayed or choppy responses.
- Built in Deno for better performance, granular permissions, and easier script modification.
Examples
Continuing the conversation:
gpt "Give me 5 examples of auto-antonyms"
# Sanction, Bolt, Peruse, Trim, Overlook
gpt -c "Give 5 more"
# Cleave, Dust, Weather, Consult, Off
Regenerating the last assistant message:
gpt "Generate a tweet from the perspective of a cat"
# "Just spent 5 hours napping and now I can't decide if I should eat, stare out the window, or nap some more. #CatLife πΎπ½π€" ...
gpt -r
# Just knocked my hooman's coffee off the counter again... you'd think they'd learn by now nothing is safe at paw level πΉ #LivingLifeOnTheEdge #NineLives
Viewing and resuming past conversation history:
gpt --history
# shellgpt-demo-chat
# cat-tweets
# ...
gpt -n "cat-tweets" "Generate more, please"
gpt --dump # Dumps entire chat history
Setting a system prompt and custom temperature:
gpt --temp 0.85 --sys "An AI personal trainer" "What exercises should I do for leg day?"
Increasing the speed of the output using GPT-3.5-turbo and custom WPM:
gpt --fast --wpm 1500 "How can I improve my programming skills?"