Skip to main content

Terminal for ChatGPT

Project description

gpt-cli

Gihtub wakatime license Progress Code-style Coverage

CLI tool for interacting with ChatGPT.

Chat and generate images.

screenshot

Independencies

Features

  • Chat with ChatGPT conversationally.
  • Stream or Non-stream responses
  • Maintain record of the chats
  • Generate Images - Based on your prompt or ChatGPT generated description
  • 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. Installing through pip 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
$ sudo python3 setup.py install
 #or
$ python3 setup.py 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 <gpt-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@ChatGPT4]─(%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._help : Show this help info

  • Use double ./ (fullstop and forward slash) to interact with system commands e.g './ifconfig'

For more info run gpt-cli -h.

usage: main.py [-h] [-v] [-m davinci|curie|babbage] [-t [0.1-1]]
               [-mt [1-4000]] [-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 TIMEOUT] [-pr PROXY] [-rc value] [-g 1,4] [-sp [text ...]]
               [-fp path] [-o OUTPUT] [-pp prefix] [-rp prefix]
               [-dm keys|values|show|{file}] [-dl DELIMITER]
               [--disable-stream] [--new-record] [--disable-recording]
               [--zero-show] [--update]
               [message ...]

Interact with ChatGPT at the terminal

positional arguments:
  message               Message to be send.

optional arguments:
  -h, --help            show this help message and exit
  -v, --version         show program's version number and exit
  -m davinci|curie|babbage, --model davinci|curie|babbage
                        ChatGPT model to be used
  -t [0.1-1], --temperature [0.1-1]
                        Charge of the generated text's randomness
  -mt [1-4000], --max-tokens [1-4000]
                        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     GPT-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 TIMEOUT, --timeout TIMEOUT
                        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 OUTPUT, --output OUTPUT
                        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|{file}, --dump keys|values|show|{file}
                        Stdout [keys,values]; Save all prompts in json format
                        to a file
  -dl DELIMITER, --delimiter DELIMITER
                        Delimeter for for the .CSV file - [act,prompt]
  --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
  --update              Download latest prompts - [awesome-chatgpt-prompts]

Note : gpt-4 (model) supports upto 7000 tokens and others 3000.

Warning : gpt-1 Has issues - (To be fixed later)

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](https://github.com/Simatwa/gpt-login), the rest is [here.](https://github.com/Simatwa/gpt-cli)

Contributions

ToDo

  • Use dialogue
  • Issue prompt from a file
  • Busy bar

Acknowledgements

  1. remo7777

  2. acheong08

  3. f

Project details


Download files

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

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distribution

chatgpt4_cli-1.4.0-py3-none-any.whl (18.5 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