SGPT allows you to ask simple questions and receive informative answers. For example:
$ sgpt "mass of sun"
The mass of the sun is approximately 1.989 x 10^30 kilograms.If you want to stream the completion to the command line, you can add the --stream flag. This will stream the output
to the command line as it is generated.
You can also pass prompts to SGPT using pipes:
$ echo -n "mass of sun" | sgpt
The mass of the sun is approximately 1.989 x 10^30 kilograms.You can also use the --clipboard flag to write the answer to the clipboard:
$ sgpt --clipboard "mass of sun"
The mass of the sun is approximately 1.989 x 10^30 kilograms.SGPT can efficiently generate code based on given instructions. For instance, to solve the classic FizzBuzz problem using Python, simply provide the prompt as follows:
$ sgpt code "Solve classic fizz buzz problem using Python"
for i in range(1, 101):
if i % 3 == 0 and i % 5 == 0:
print("FizzBuzz")
elif i % 3 == 0:
print("Fizz")
elif i % 5 == 0:
print("Buzz")
else:
print(i)The second argument is the code command that identifies the persona to use.
SGPT will return the appropriate Python code to address the FizzBuzz problem.
SGPT also supports a shell persona that can generate shell commands based on your input:
$ sgpt sh "make all files in current directory read only"
chmod -R 444 *You can also generate a shell command and execute it directly:
$ sgpt sh --execute "make all files in current directory read only"
chmod -R 444 *
Do you want to execute this command? (Y/n) yYou can override the OpenAI base URL by setting the OPENAI_API_BASE environment variable:
export OPENAI_API_BASE=https://api.openai.com/v1To prevent an attacker-set environment variable from silently redirecting your API key to a hostile endpoint, the value is validated before use:
https://<any-host>— always allowed.http://localhost,http://127.x.x.x,http://[::1]— allowed (loopback).http://10.x.x.x,http://172.16-31.x.x,http://192.168.x.x,http://[fd00::/8]— allowed (RFC1918 + RFC4193 ULA).- Everything else over plain
http://is rejected, including link-local addresses such ashttp://169.254.169.254/(cloud instance metadata).
Setups that point at a single-label hostname like http://thinkbox:8080/v1
can't be classified by IP literal and must opt out of validation explicitly.
Either of the following enables the opt-out (the flag takes precedence over
the config file):
# 1. CLI flag
sgpt --insecure-api-base "..."
# 2. Config file (~/.config/sgpt/config.yaml)
insecureAPIBase: trueThere is deliberately no environment-variable form of this opt-out: the
OPENAI_API_BASE SSRF report that
introduced this validation assumes an attacker who controls the environment,
and an env-var opt-out would undo that protection. The flag and config file
both require either CLI access or write access to your config directory.
When the opt-out is active, a warning is logged once per invocation so you know validation was skipped.