d42082f8fe
commit 7b16b63f5f269baa0441ee171d906419585d2526 Author: wunderwuzzi23 <johannr@wunderwuzzi.net> Date: Sat Mar 18 19:34:34 2023 -0700 update text commit d99b7ebf211a517d74fcf3241843e78a71e99d05 Author: wunderwuzzi23 <johannr@wunderwuzzi.net> Date: Sat Mar 18 19:31:28 2023 -0700 fix formatting commit 65b1f6218cc32f0a0001637b22b9f1b4640de983 Author: wunderwuzzi23 <johannr@wunderwuzzi.net> Date: Sat Mar 18 19:17:08 2023 -0700 updating messages commit 314071228395a595503dc3a15fda2b3c8b5e6095 Author: wunderwuzzi23 <johannr@wunderwuzzi.net> Date: Sat Mar 18 19:13:40 2023 -0700 updating install.bat for yolo.yaml settings commit 85c9f381415c86e7c95572bdcbd98d6478f616ef Author: wunderwuzzi23 <johannr@wunderwuzzi.net> Date: Sat Mar 18 19:08:09 2023 -0700 load yolo.yaml from executing directory commit d9ee70035e186c8b21875d58e7a7bf3f980eaa60 Author: wunderwuzzi23 <johannr@wunderwuzzi.net> Date: Sat Mar 18 18:43:45 2023 -0700 update readme commit f2ae85827c675e3f2c87bf4d455709e227e1bfb4 Author: wunderwuzzi23 <johannr@wunderwuzzi.net> Date: Sat Mar 18 18:37:41 2023 -0700 cleanup commit fc5cf55982dd6de3a4e81de2b0286f18788bc87c Author: wunderwuzzi23 <johannr@wunderwuzzi.net> Date: Sat Mar 18 18:31:00 2023 -0700 fix formatting commit 3ec4cf959cf4a43d061b0d579c863af5bb495631 Author: wunderwuzzi23 <johannr@wunderwuzzi.net> Date: Sat Mar 18 18:27:49 2023 -0700 set safety: True in config commit d13153141bbdb4ada5d9bf742b19fd9c10624c86 Author: wunderwuzzi23 <johannr@wunderwuzzi.net> Date: Sat Mar 18 18:25:07 2023 -0700 update readme commit 39f82ee8cf744ef6fbfbe6622e4d39cc6323d69a Author: wunderwuzzi23 <johannr@wunderwuzzi.net> Date: Sat Mar 18 18:24:43 2023 -0700 update readme commit 944046c11bdcd3b01b33798dae5ca33e8ddda9db Author: wunderwuzzi23 <johannr@wunderwuzzi.net> Date: Sat Mar 18 18:21:47 2023 -0700 update requirements commit 0c22313bdc6b3a9f272faf99b9998930ede9502a Author: wunderwuzzi23 <johannr@wunderwuzzi.net> Date: Sat Mar 18 18:15:17 2023 -0700 formatting commit 08e16c67ad8fd588962f9bf22fe0588ac4c0ec3a Author: wunderwuzzi23 <johannr@wunderwuzzi.net> Date: Sat Mar 18 17:39:35 2023 -0700 default gpt-3.5-turbo (gpt-4 is waitlist for many) commit eec224fe3b34a2627d771682cde291ccdf96bcac Author: wunderwuzzi23 <johannr@wunderwuzzi.net> Date: Sat Mar 18 17:16:57 2023 -0700 add yolo.yaml, gpt-4 support, improve install.sh
164 lines
5.8 KiB
Markdown
164 lines
5.8 KiB
Markdown
# Yolo Demo
|
|
|
|

|
|
|
|
# Update Yolo v0.2 - Support for GPT-4 API
|
|
|
|
This update introduces the `yolo.yaml` configuration file. In this file you can specify which OpenAI model you want to query, and other settings. The safety switch also moved into this configuration file.
|
|
|
|
For now the default model is still `gpt-3.5-turbo`, but you can update to `gpt-4` if you have gotten access already!
|
|
|
|
```
|
|
Yolo v0.2 - by @wunderwuzzi23
|
|
|
|
Usage: yolo [-a] list the current directory information
|
|
Argument: -a: Prompt the user before running the command (only useful when safety is off)
|
|
|
|
Current configuration per yolo.yaml:
|
|
* Model : gpt-3.5-turbo
|
|
* Temperature : 0
|
|
* Max. Tokens : 500
|
|
* Safety : on
|
|
```
|
|
|
|
Happy Hacking!
|
|
|
|
# Installation on Linux and macOS
|
|
|
|
```
|
|
git clone https://github.com/wunderwuzzi23/yolo-ai-cmdbot
|
|
cd yolo-ai-cmdbot
|
|
pip3 install -r requirements.txt
|
|
chmod +x yolo.py
|
|
alias yolo=$(pwd)/yolo.py
|
|
alias computer=$(pwd)/yolo.py #optional
|
|
|
|
yolo show me some funny unicode characters
|
|
```
|
|
|
|
## OpenAI API Key configuration
|
|
|
|
There are three ways to configure the key on Linux and macOS:
|
|
- You can either `export OPENAI_API_KEY=<yourkey>`, or have a `.env` file in the same directory as `yolo.py` with `OPENAI_API_KEY="<yourkey>"` as a line
|
|
- Create a file at `~/.openai.apikey` with the key in it
|
|
- Add the key to the `yolo.yaml` configuration file
|
|
|
|
## Aliases
|
|
|
|
To set the alias, like `yolo` or `computer` on each login, add them to .bash_aliases (or .zshrc on macOS) file. Make sure the path is the one you want to use.
|
|
|
|
```
|
|
echo "alias yolo=$(pwd)/yolo.py" >> ~/.bash_aliases
|
|
echo "alias computer=$(pwd)/yolo.py" >> ~/.bash_aliases
|
|
```
|
|
|
|
## Installation script
|
|
|
|
Another option is to run `source install.sh` after cloning the repo. That does the following:
|
|
1. Copies the necessary files to `~/yolo-ai-cmdbot/`
|
|
2. Creates two aliases `yolo` and `computer` pointint to `~/yolo-ai-cmdbot/yolo.py`
|
|
3. Adds the aliases to the `~/.bash_aliases` or `~/.zshrc` file
|
|
|
|
That's it for Linux and macOS. Now make sure you have an OpenAI API key set.
|
|
|
|
# Windows Installation
|
|
|
|
On Windows you can run `.\install.bat` (or double-click) after cloning the repo. By default it does the following:
|
|
1. Copies the necessary files to `~\yolo-ai-cmdbot\`
|
|
2. Creates a `yolo.bat` file in `~` that lets you run equivalent to `python.exe ~\yolo-ai-cmdbot\yolo.py`
|
|
|
|
You also have the option to:
|
|
1. Change the location where `yolo-ai-cmdbot\` and `yolo.bat` will be created
|
|
2. Skip creating `yolo-ai-cmdbot\` and use the folder of the cloned repository instead.
|
|
3. Create a `.openai.apikey` file in your `~` directory
|
|
|
|
That's it basically.
|
|
|
|
## OpenAI API Key Configuration on Windows
|
|
|
|
On Windows `export OPENAI_API_KEY=<yourkey>` will not work instead:
|
|
- Run `$env:OPENAI_API_KEY="<yourkey>"` to set key for that terminal
|
|
- Or, Run PowerShell as administrator and run `setx OPENAI_API_KEY "<yourkey>"`
|
|
- Or, Go to `Start` and search `edit environment variables for your account` and manually create the variable with name `OPENAI_API_KEY` and value `<yourkey>`
|
|
|
|
Optionally (since v.0.2), the key can also be stored in `yolo.yaml`.
|
|
|
|
## Running yolo on Windows
|
|
|
|
Windows is less tested, it does work though and will use PowerShell.
|
|
|
|
```
|
|
python.exe yolo.py what is my username
|
|
```
|
|
|
|
That's it.
|
|
|
|
## yolo.bat
|
|
|
|
If you use `install.bat` you should have a `yolo.bat` file in your `~` directory that lets you run the command like so:
|
|
|
|
```
|
|
.\yolo.bat what is my username
|
|
```
|
|
|
|
You can put the `yolo.bat` file into a $PATH directory (like `C:\Windows\System32`) to use in any directory like so:
|
|
|
|
```
|
|
yolo what is my username
|
|
```
|
|
|
|
Have fun.
|
|
|
|
# Disabling the safety switch! **Caution!**
|
|
|
|
By default `yolo` will prompt the user before executing commands.
|
|
|
|
Since v.0.2 the safety switch setting moved to `yolo.yaml`, the old `~/.yolo-safety-off` is not used anymore.
|
|
|
|
To have yolo run commands right away when they come back from ChatGPT change the `safety` in the `yolo.yaml` to `False`.
|
|
|
|
If you still want to inspect the command that is executed when safety is off, add the `-a` argument, e.g `yolo -a delete the file test.txt`.
|
|
|
|
Let's go!
|
|
|
|
# Demo Video on YouTube
|
|
|
|
https://www.youtube.com/watch?v=g6rvHWpx_Go
|
|
|
|
[](https://www.youtube.com/watch?v=g6rvHWpx_Go)
|
|
|
|
|
|
# Examples
|
|
|
|
Here are a couple of examples on how this utility can be used.
|
|
|
|
```
|
|
yolo whats the time?
|
|
yolo whats the time in UTC
|
|
yolo whats the date and time in Vienna Austria
|
|
yolo show me some unicode characters
|
|
yolo what is my user name and whats my machine name?
|
|
yolo is there a nano process running
|
|
yolo download the homepage of ycombinator.com and store it in index.html
|
|
yolo find all unique urls in index.html
|
|
yolo create a file named test.txt and write my user name into it
|
|
yolo print the contents of the test.txt file
|
|
yolo -a delete the test.txt file
|
|
yolo whats the current price of Bitcoin in USD
|
|
yolo whats the current price of Bitcoin in USD. Ext the price only
|
|
yolo look at the ssh logs to see if any suspicious logons accured
|
|
yolo look at the ssh logs and show me all recent logins
|
|
yolo is the user hacker logged on right now?
|
|
yolo do i have a firewall running?
|
|
yolo create a hostnames.txt file and add 10 typical hostnames based on planet names to it, line by line, then show me the contents
|
|
yolo find any file with the name yolo.py. do not show permission denied errors
|
|
yolo write a new bash script file called scan.sh, with the contents to iterate over hostnames.txt and invokes a default nmap scan on each host. then show me the file.
|
|
yolo write a new bash script file called scan.sh, with the contents to iterate over hostnames.txt and invokes a default nmap scan on each host. then show me the file. Make it over multiple lines with comments and annotiations.
|
|
```
|
|
|
|
# Thanks!
|
|
|
|
# License
|
|
|
|
MIT. No Liability. No Warranty. But lot's of fun.
|