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

And 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.csv

Installation

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.ts

This 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
--print -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, Off

Listing chat history:

$ gpt -h

Regenerating the last assistant message:

$ gpt -r

Setting 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.