CLI tool for interacting with ChatGPT and Bard.
Generate images with BingImageCreator and ChatGPT's DALL-E models.
- Chat with ChatGPT and Bard conversationally.
- Let ChatGPT and Bard chat to each other.
- Generate Images (DALL-E & BingImageCreator)- Based on your prompt or GPT generated description.
- Stream or Non-stream responses.
- Maintain record of the chats.
- Parse awesome-chatgpt-prompts easily.
- Fully customizable Commandline Interface.
- Interact with system commands on the fly.
- 
Bing cookies - optional 
Either of the following ways will get you ready.
- Using pip
- From pypi
sudo pip install chatgpt4-cli- Installing from source
 sudo pip install git+https://github.com/Simatwa/gpt-cli.git- Cloning locally and install
git clone https://github.com/Simatwa/gpt-cli.git
cd gpt-cli
pip install .
 #or
sudo pip install .- Make OPENAI_API_KEY an environment variable.
$ export OPENAI_API_KEY=<openai-api-key>
After that you can launch the script with or without a prompt
For instance :
    #Without a prompt
   $ gpt-cli 
    # With a prompt 
   $ gpt-cli Write a conversation between Sun and Pluto.`- Parsing OPENAI_API_KEY as one of the arguments
Run $ gpt-cli -k <openai-api-key> <Your query> at the terminal.
For instance :
$ gpt-cli -k xxxxxxxxxxxxxxxxxx How to scan for SMB vulnerability using NMAP?The awesome-chatgpt-prompts can be parsed to the script through the following ways:
- 
Specifying the role - (case-sensitive) e.g $ gpt-cli UX/UI Developer
- 
Specifying the index of the prompt: e.g $ gpt-cli 29
Run $ gpt-cli --dump show to view the act,prompt and their indexes
You can as well generate images using EdgeGPT (DALL-E) or ChatGPT independent of gpt-cli, uninteractively at the terminal:
- EdgeGPT
$ gpt-cli-emage --cookie-file <path> <Your prompt>- Visit EdgeGPT to learn more on how to get the cookies.
- ChatGPT
  # Make OPENAI_API_KEY environment variable
  $ gpt-cli-image <Your Prompt>For more info run $gpt-cli-image -h or $gpt-cli-emage -h.
  No. Command           Action                                          0 ./{command}       Run command against system                      1 img               Generate image ChatGPT based on prompt          2 emg               Generate image with EdgeGPT based on prompt     3 txt2img           Generate image based on GPT description         4 _font_color       Modify font-color                               5 _background_color Modify background_color                         6 _prompt           Modify terminal prompt                          7 _save             Save current configurations to `.json` file     8 _load             Load configurations from file                   9 _rollback         Rollback Chat by {n} times                     10 _reset            Reset current chat and start new               11 _help             Show this help info                            12 {Any Other}       Chat with ChatGPT                           
| No. | Command | Action | 
|---|---|---|
| 0 | ./{command} | Run command against system | 
| 1 | img | Generate image ChatGPT based on prompt | 
| 2 | emg | Generate image with EdgeGPT based on prompt | 
| 3 | txt2img | Generate image based on GPT description | 
| 4 | _font_color | Modify font-color | 
| 5 | _background_color | Modify background_color | 
| 6 | _prompt | Modify terminal prompt | 
| 7 | _save | Save current configurations to `.json` file | 
| 8 | _load | Load configurations from file | 
| 9 | _rollback | Rollback Chat by {n} times | 
| 10 | _reset | Reset current chat and start new | 
| 11 | _help | Show this help info | 
| 12 | {Any Other} | Chat with ChatGPT | 
1.img : Text-to-Image converter - ChatGPT
- e.g img Toddler cartoon coding in Python
2.emg : Text-to-Image converter - EdgeGPT
- e.g emg Toddler cartoon coding in Python
3.txt2img : Generate image based on GPT description
- e.g txt2img Describe phenotype anatomy of ancient dinosaurs
4._font_color : modifies font-color
- e.g font_color input red
5._background_color : modifies background_color
- e.g background_color cyan
6._prompt : Modify CMD prompt
- e.g prompt ┌─[Smartwa@GPT-CLI]─(%H:%M:%S)
7._load : Load configurations from the json file
- e.g load DAN.json
8._save : Save the current Chat Configurations
- e.g save DAN.json
9._rollback : Rollback the Chat by the {n} time(s)
- e.g _rollback 2
10._reset : Reset current chat and start new
- e.g _reset Chat as if you are a 10 year old child
11.bard : Specifies to use bard GPT
- e.g bard Explain the composite concept in business
12.gpt4 : Specifies to use ChatGPT in case --bard was made default
- e.g gpt4 How do you make?
13._help : Show this help info
- Use  ./(fullstop and forward slash) to interact with system commands
- e.g ./ifconfig
- Use _botchatto let the 2 GPTs chat to each other
Note You can further specify the GPT to be used by appending
--gpt4or--bardin the prompt.
- Use {{f.text-filename}} to issue prompt contained in the 'text-filename'
For more info run gpt-cli -h.
gpt-cli -h.╭─────────────────────────────── gpt-cli v1.5.3 ───────────────────────────────╮
│                                                                              │
│             Repo : https://github.com/Simatwa/gpt-cli                        │
│             By   : Smartwa Caleb                                             │
╰──────────────────────────────────────────────────────────────────────────────╯
usage: gpt-cli [-h] [-v] [-m gpt-3.5-turbo|gpt-4|gpt-4-32k] [-t [0.1-1]]
               [-mt [1-7000]] [-tp [0.1-1]] [-f [0.1-2]] [-p [0.1-2]] [-k KEY]
               [-kp path] [-ic [cyan|green|yellow|red]]
               [-oc [cyan|green|yellow|red]] [-bc [blue,magenta,black,reset]]
               [-pc [cyan|green|yellow|red]] [--prompt [SETTINGS ...]]
               [-tm value] [-pr PROXY] [-rc value] [-g 1,4] [-sp [text ...]]
               [-fp path] [-o path] [-pp prefix] [-rp prefix]
               [-dm keys|values|show|{fnm}] [-dl symbol] [-cf path] [-bk KEY]
               [-bkp PATH] [-bcf PATH] [-si TIME] [-spin 1|2]
               [--disable-stream] [--new-record] [--disable-recording]
               [--zero-show] [--bard] [--markdown] [--update] [--sudo]
               [message ...]
Interact with ChatGPT and Bard at the terminal.
positional arguments:
  message               Message to be send.
options:
  -h, --help            show this help message and exit
  -v, --version         show program's version number and exit
  -m gpt-3.5-turbo|gpt-4|gpt-4-32k, --model gpt-3.5-turbo|gpt-4|gpt-4-32k
                        ChatGPT model to be used
  -t [0.1-1], --temperature [0.1-1]
                        Charge of the generated text's randomness
  -mt [1-7000], --max-tokens [1-7000]
                        Maximum number of tokens to be generated upon
                        completion
  -tp [0.1-1], --top-p [0.1-1]
                        Sampling threshold during inference time
  -f [0.1-2], --frequency-penalty [0.1-2]
                        Chances of word being repeated
  -p [0.1-2], --presence-frequency [0.1-2]
                        Chances of topic being repeated
  -k KEY, --key KEY     OPENAI-API-KEY
  -kp path, --key-path path
                        Path to text-file containing GPT-api key
  -ic [cyan|green|yellow|red], --input-color [cyan|green|yellow|red]
                        Font color for inputs
  -oc [cyan|green|yellow|red], --output-color [cyan|green|yellow|red]
                        Font color for outputs
  -bc [blue,magenta,black,reset], --background-color [blue,magenta,black,reset]
                        Console's background-color
  -pc [cyan|green|yellow|red], --prompt-color [cyan|green|yellow|red]
                        Prompt's display color
  --prompt [SETTINGS ...]
                        Customizes the prompt display
  -tm value, --timeout value
                        Request timeout while making request - (Soon)
  -pr PROXY, --proxy PROXY
                        Pivot request through this proxy
  -rc value, --reply-count value
                        Number of responses to be received
  -g 1,4, --gpt 1,4     ChatGPT version to be used
  -sp [text ...], --system-prompt [text ...]
                        Text to train ChatGPT at the start
  -fp path, --file-path path
                        Path to .csv file containing role and prompt -
                        [act,prompt]
  -o path, --output path
                        Filepath for saving the chats - default
                        [/home/smartwa/git/gpt-cli/.chatgpt-history.txt]
  -pp prefix, --prompt-prefix prefix
                        Text to append before saving each prompt - default
                        [>>> timestamp]
  -rp prefix, --response-prefix prefix
                        Text to append before saving each response - default
                        [None]
  -dm keys|values|show|{fnm}, --dump keys|values|show|{fnm}
                        Stdout [keys,values]; Save all prompts in json format
                        to a file
  -dl symbol, --delimiter symbol
                        Delimeter for the .CSV file - [act,prompt]
  -cf path, --cookie-file path
                        Path to Bing's cookies - for Edge Image Generation
  -bk KEY, --bard-key KEY
                        Bard's session value
  -bkp PATH, --bard-key-path PATH
                        Path to Bard's key path
  -bcf PATH, --bard-cookie-file PATH
                        Path to Bard's cookie file
  -si TIME, --stream-interval TIME
                        Interval for printing responses in (s)
  -spin 1|2, --spinner 1|2
                        Busy bar indicator
  --disable-stream      Specifies not to stream responses from ChatGPT
  --new-record          Override previous chats under the filepath
  --disable-recording   Disable saving prompts and responses
  --zero-show           Specifies not to stdout prompt of the act parsed
  --bard                Make Bard the default GPT
  --markdown            Stdout responses in markdown-format - disables
                        streaming
  --update              Download latest prompts - [awesome-chatgpt-prompts]
  --sudo                Run commands against system with sudo privileges
Note : gpt-4 (model) supports upto 7000 tokens and others 3000.
$ gpt-cli --dump pdfwill generateall-acts.pdffile containing latest acts and prompts as shown here.
Visit acheong08/Bard for info on how to get the Bard's cookie file and Sessions.
Love for Terminal ❤️
Terminal ❤️As a terminal guy I used to find it uncomfortable to keep shifting from one window to next in order to access ChatGPT even after trying out the gpt-login, the rest is here.
- Anyone is free to fork, submit an issue without any guideline or submitting a pull request.
- 
Use dialogue 
- 
Issue prompt from a file 
- 
Busy bar 
- 
Add prompts to the prompts.csv Review CHANGELOG 
You wanna save your bill? Well, purpose to make use of WebChatGPT, which is reverse engineer of ChatGPT web-version.
Note Consider supporting this project by purchasing Prompts for ChatGPT and Bard ebook.
