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~1And pipe input and output, transforming files and commands (pass - to accept stdin):
$ cat crash-log.txt | gpt "Why is this crash occurring?" -
$ cat README.md | gpt "Return this file with a more interesting examples section" - > README-improved.md
$ gpt "Output a CSV of 10 notable cities in Japan with their name in English & Japanese plus a fun fact enclosed in quotes" > japan.csvInstallation
Manual
To install shell-gpt, first make sure you have the Deno runtime installed on your system. Then, run the following command to install the script:
$ deno install -A --name=gpt https://deno.land/x/shellgpt/mod.tsThis command will install the shell-gpt script as gpt and grant it all
necessary permissions.
You also 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=...Automatic
TODO (e.g. brew)
Commands and Arguments
| Argument | Alias | Description |
|---|---|---|
| - | 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 Examples).
- 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 last conversation:
$ gpt "Give me 5 examples of auto-antonyms"
# Sanction, Bolt, Peruse, Trim, Overlook
$ gpt -c "Give 5 more"
# Cleave, Dust, Weather, Consult, OffListing chat history:
$ gpt -hRegenerating the last assistant message:
$ gpt -rSetting a system prompt or context:
$ gpt --sys "An AI personal trainer" "What exercises should I do for leg day?"Using GPT-3.5-turbo:
$ gpt -f "Explain the concept of Schrödinger's cat."Controlling model creativity:
$ gpt -t 0.85 "Write a short poem about the sea."Change the typing speed of the output:
$ gpt --wpm 1500 "How can I improve my programming skills?"Running the output as a shell command:
$ gpt -x "What is the command to list files in the current directory?"Note: Make sure to use caution when using the --exec option as it may
execute shell commands that could potentially cause harm to your system. Always
verify the shell commands before running them.