Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
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.
- Host: GitHub
- URL: https://github.com/simatwa/gpt-cli
- Owner: Simatwa
- License: mit
- Archived: true
- Created: 2023-02-03T14:17:22.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2024-02-16T17:26:36.000Z (7 months ago)
- Last Synced: 2024-09-25T00:14:39.477Z (3 days ago)
- Topics: chatgpt, chatgpt4, cli, gpt-, gpt-2, gpt-3, gpt-4, gpt-cli, gpt-terminal, gpt3-terminal, python, terminal
- Language: Python
- Homepage: http://smarttalks.pythonanywhere.com/post/34
- Size: 1.63 MB
- Stars: 55
- Watchers: 4
- Forks: 7
- Open Issues: 3
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
gpt-cli
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 ChatGPT1.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.