Skip to main content

Interact with ChatGPT and Bard at the terminal.

Project description

gpt-cli

Gihtub Pypi wakatime license Progress Code-style Coverage Downloads

CLI tool for interacting with ChatGPT and Bard.

Generate images with BingImageCreator and ChatGPT's DALL-E models.

screenshot

Features

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

Prerequisites

Installation

Either of the following ways will get you ready.

  1. Using pip
  • From pypi
sudo pip install chatgpt4-cli
  • Installing from source
 sudo pip install git+https://github.com/Simatwa/gpt-cli.git
  1. Cloning locally and install
git clone https://github.com/Simatwa/gpt-cli.git
cd gpt-cli
pip install .
 #or
sudo pip install .

Usage

  • 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:

  1. EdgeGPT
$ gpt-cli-emage --cookie-file <path> <Your prompt>
  • Visit EdgeGPT to learn more on how to get the cookies.
  1. 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.

Highlight

No.Command Action
0./{command} Run command against system
1img Generate image ChatGPT based on prompt
2emg Generate image with EdgeGPT based on prompt
3txt2img Generate image based on GPT description
4_font_color Modify font-color
5_background_colorModify 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 _botchat to let the 2 GPTs chat to each other

Note You can further specify the GPT to be used by appending --gpt4 or --bard in the prompt.

  • Use {{f.text-filename}} to issue prompt contained in the 'text-filename'

For more info run 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 pdf will generate all-acts.pdf file containing latest acts and prompts as shown here.

Visit acheong08/Bard for info on how to get the Bard's cookie file and Sessions.

Motive

Love for 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.

Contributions

ToDo

Acknowledgements

  1. remo7777

  2. acheong08

  3. f

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.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

chatgpt4-cli-1.5.9.tar.gz (22.7 kB view hashes)

Uploaded Source

Built Distribution

chatgpt4_cli-1.5.9-py3-none-any.whl (25.2 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page