summaryrefslogtreecommitdiff
path: root/README.md
blob: a5e192fb770d9e194831f98fe24aadc264573132 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
                                                        
     ██████╗██╗     ██╗       ██████╗ ██████╗ ████████╗
    ██╔════╝██║     ██║      ██╔════╝ ██╔══██╗╚══██╔══╝
    ██║     ██║     ██║█████╗██║  ███╗██████╔╝   ██║   
    ██║     ██║     ██║╚════╝██║   ██║██╔═══╝    ██║   
    ╚██████╗███████╗██║      ╚██████╔╝██║        ██║   
     ╚═════╝╚══════╝╚═╝       ╚═════╝ ╚═╝        ╚═╝   
                                                   

cli-gpt is a ChatGPT-like terminal wrapper to make interfacing with GPT models with an OpenAI API key easier.

## Requirements and Installation

I've tried to keep requirements low as to keep the program pretty minimal. Outside of native Python libraries, we're grabbing `openai` (obviously) to interface with the OpenAI API, `tiktoken` to get token information, and `prompt_toolkit` + `pygments` for better terminal handling.

To install and run the program, simply execute the following commands.
```
# Clone repository
git clone https://github.com/jordanscharkey/cli-gpt.git
cd cli-gpt/

# Create environment
python -m venv .venv/
. .venv/bin/activate
pip install -r requirements.txt

# Fill token file and run
vim token
python chat.py
```

### Token File

To use this program, you will need an OpenAI API key. Keep this token in a file named `key` in the repository and the program should automatically read from it.

## Additional Functionality

The `/help` command will list all commands and a short description of what that command will accomplish. Here is a summary of those commands:

```
 - /exit: Closes the chat.
 - /context: Passthrough a URL to curl the context of into the chat history.
 - /help: Display this list of available commands.
 - /load: Load in a previous chat's JSON file.
 - /save: Saves messages to specified JSON file and closes chat.
 - /clear: Clears all messages and tokens from the chatlog, restarting the chat.
 - /model: Change the model being used.
 - /info: Print model information and cli-gpt version.
 - /write: Write out any code from the previous message to a specified file.
 - /copy: Copy code snippets from the previous message into the copy buffer.
```