Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/simatwa/gpt-cli

Interact with ChatGPT and Bard at the terminal.
https://github.com/simatwa/gpt-cli

chatgpt chatgpt4 cli gpt- gpt-2 gpt-3 gpt-4 gpt-cli gpt-terminal gpt3-terminal python terminal

Last synced: 3 days ago
JSON representation

Interact with ChatGPT and Bard at the terminal.

Awesome Lists containing this project

README

        

gpt-cli



Gihtub
Pypi
wakatime
license
Progress
Code-style
Coverage
Downloads

CLI tool for interacting with [ChatGPT](https://openai.com) and [Bard](https://bard.google.com).
> Generate images with BingImageCreator and ChatGPT's DALL-E models.

![screenshot](https://github.com/Simatwa/gpt-cli/raw/main/assets/Screenshot1.png)

### 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](https://github.com/f/awesome-chatgpt-prompts) easily.
- Fully customizable Commandline Interface.
- Interact with system commands on the fly.

### Prerequisites

- [x] [OPENAI_API_KEY](https://platform.openai.com/account/api-keys)

- [x] [Bard Cookies](https://bard.google.com)

- [x] [Bing cookies](https://bing.com) - *optional*

## Installation

Either of the following ways will get you ready.

1. Using pip

- From pypi

```sh
sudo pip install chatgpt4-cli
```

- Installing from source

```sh
sudo pip install git+https://github.com/Simatwa/gpt-cli.git
```

2. Cloning locally and install

```sh
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=`

After that you can launch the script with or without a prompt

> For instance :
```sh
#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 ` at the terminal.

> For instance :

```sh
$ gpt-cli -k xxxxxxxxxxxxxxxxxx How to scan for SMB vulnerability using NMAP?
```

The [awesome-chatgpt-prompts](https://github.com/f/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

```sh
$ gpt-cli-emage --cookie-file
```
- Visit [EdgeGPT](https://github.com/acheong08/EdgeGPT#requirements) to learn more on how to get the cookies.

2. ChatGPT

```sh
# Make OPENAI_API_KEY environment variable
$ gpt-cli-image
```

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](https://chatgpt-prompts.tiiny.site).

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

## Contributions

- Anyone is free to [fork](https://github.com/Simatwa/gpt-cli/fork), submit an [issue](https://github.com/Simatwa/gpt-cli/issues) without any **guideline** or submitting a [pull request](https://github.com/Simatwa/gpt-cli/pulls).

### ToDo

- [x] Use dialogue
- [x] Issue prompt from a file
- [x] Busy bar
- [ ] Add prompts to the [prompts.csv](https://github.com/Simatwa/gpt-cli/edit/main/assets/prompts.csv)

> Review [CHANGELOG](https://github.com/Simatwa/gpt-cli/blob/main/docs/CHANGELOG.md)

## Acknowledgements

1. [remo7777](https://github.com/remo7777/T-Header)

2. [acheong08](https://github.com/acheong08/ChatGPT)

3. [f](https://github.com/f/awesome-chatgpt-prompts)

You wanna save your bill? Well, purpose to make use of [WebChatGPT](https://github.com/Simatwa/WebChatGPT), which is reverse engineer of ChatGPT web-version.

> **Note** Consider supporting this project by purchasing [Prompts for ChatGPT and Bard](https://payhip.com/b/zxQM0) ebook.