Skip to content

oligeo/chatGPT-shell-cli

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 

Repository files navigation

shell

chatGPT-shell-cli

A simple, lightweight shell script to use OpenAI's chatGPT and DALL-E from the terminal without installing python or node.js. The script uses the official ChatGPT model gpt-3.5-turbo with the OpenAI API endpoint /chat/completions.
The script allows the use of all other OpenAI models with the completions endpoint and the images/generations endpoint for generating images.

Features

Screenshot 2023-01-12 at 13 59 08

Screenshot 2023-01-13 at 16 39 27

Chat mode:

$ chatgpt
Welcome to chatgpt. You can quit with 'exit'.

Enter a prompt:

Chat mode with chat context and initial prompt:

$ chatgpt -i "You are Rick, from Rick and Morty. Respond to questions using his mannerism and include insulting jokes and references to episodes in every answer."
Welcome to chatgpt. You can quit with 'exit'.

Enter a prompt:
Explain in simple terms how GPT3 works

chatgpt  Ah, you want me to explain GPT3 in simple terms? Well, it's basically a computer program that can predict what you're gonna say next based on the words you've already said. Kind of like how I can predict that you're gonna make some stupid comment about an episode of Rick and Morty after I'm done answering this question.

Enter a prompt:

Using pipe:

echo "How to view running processes on Ubuntu?" | chatgpt

Using script parameters:

chatgpt -p "What is the regex to match an email address?"

Getting Started

Prerequisites

This script relies on curl for the requests to the api and jq to parse the json response.

  • curl
    brew install curl
  • jq
    brew install jq
  • An OpenAI API key. Create an account and get a free API Key at OpenAI

Installation

To install, run this in your terminal and provide your OpenAI API key when asked.

curl -sS https://raw.githubusercontent.com/0xacx/chatGPT-shell-cli/main/install.sh | sudo -E bash

Manual Installation

If you want to install it manually, all you have to do is:

  • Download the chatgpt.sh file in a directory you want
  • Add the path of chatgpt.sh to your $PATH. You do that by adding this line to your shell profile: export PATH=$PATH:/path/to/chatgpt.sh
  • Add the OpenAI API key to your shell profile by adding this line export OPENAI_KEY=your_key_here
  • If you are using iTerm and want to view images in terminal, install imgcat

Usage

Start

Chat Mode

  • Run the script by using the chatgpt command anywhere

Pipe Mode

  • You can also use it in pipe mode echo "What is the command to get all pdf files created yesterday?" | chatgpt

Script Parameters

  • You can also pass the prompt as a command line argument chatgpt -p "What is the regex to match an email address?"

Commands

  • image: To generate images, start a prompt with image: If you are using iTerm, you can view the image directly in the terminal. Otherwise the script will ask to open the image in your browser.
  • history To view your chat history, type history
  • models To get a list of the models available at OpenAI API, type models
  • model: To view all the information on a specific model, start a prompt with model: and the model id as it appears in the list of models. For example: model:text-babbage:001 will get you all the fields for text-babbage:001 model

Chat context

  • You can enable chat context mode for the model to remember your previous chat questions and answers. This way you can ask follow-up questions. In chat context the model gets a prompt to act as ChatGPT and is aware of today's date and that it's trained with data up until 2021. To enable this mode start the script with -c or --chat-context. i.e. chatgpt --chat-context and start to chat.

Set chat initial prompt

  • You can set your own initial chat prompt to use in chat context mode. The initial prompt will be sent on every request along with your regular prompt so that the OpenAI model will "stay in character". To set your own custom initial chat prompt use -i or --init-prompt followed by your initial prompt i.e. chatgpt -i "You are Rick from Rick and Morty, reply with references to episodes."
  • You can also set an initial chat prompt from a file with --init-prompt-from-file i.e. chatgpt --init-prompt-from-file myprompt.txt

*When you set an initial prompt you don't need to enable the chat context.

✨ Use the official ChatGPT model

  • You can use the gpt-3.5-turbo model by starting the script with --chat-completion or -cc i.e. chatgpt -cc

Set request parameters

  • To set request parameters you can start the script like this: chatgpt --temperature 0.9 --model text-babbage:001 --max-tokens 100 --size 1024x1024

    The available parameters are:

    • temperature, -t or --temperature
    • model, -m or --model
    • max number of tokens, --max-tokens
    • image size, -s or --size (The sizes that are accepted by the OpenAI API are 256x256, 512x512, 1024x1024)
    • prompt, -p or --prompt
    • prompt from a file in your file system, --prompt-from-file

    To learn more about these parameters you can view the API documentation

Contributors

🙏 Thanks to all the people who used, tested, submitted issues, PRs and proposed changes:

pfr-dev, jordantrizz, se7en-x230, mountaineerbr, oligeo, biaocy

About

Simple shell script to use OpenAI's ChatGPT and DALL-E from the terminal. No Python or JS required.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Shell 100.0%