Skip to content
This repository was archived by the owner on May 7, 2024. It is now read-only.

Repository files navigation

gpt-cli

GihtubPypiwakatimelicenseProgressCode-styleCoverageDownloads

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.

Releases

Used by

Contributors

Languages