# GubHub

# Command Reference

## Argument Legend

- `{}` arguments/parameters in curly braces are REQUIRED for the command to work. ex: `{key}`
- `[]` arguments/parameters in square braces are OPTIONAL. ex: `[left|middle|right]`
- `...` means that the command can take many/infinite arguments of that type. For example for `hotkey`
    - `!hotkey alt tab` is valid
    - `!hotkey a b c d e f g h i j k l m n o p` is also valid

---

### **KEYBOARD COMMANDS**

<table id="bkmrk-command-description-"><thead><tr><th>Command</th><th>Description</th><th>Example</th></tr></thead><tbody><tr><td>`!key {key}`</td><td>presses a single key</td><td>`!key space`</td></tr><tr><td>`!type {message}`</td><td>writes a message out like a typewriter</td><td>`!type i like fortnite`</td></tr><tr><td>`!hotkey {key} {key} ...`</td><td>presses all keys at once</td><td>`!hotkey alt tab`</td></tr><tr><td>`!hold {key} {seconds}`</td><td>holds a key down for a certain amount of time.</td><td>`!hold tab 5` holds tab for 5 seconds</td></tr></tbody></table>

#### Keyboard notes

List of "keys" that gub understands: https://pyautogui.readthedocs.io/en/latest/keyboard.html#keyboard-keys

---

### **MOUSE COMMANDS**

<table id="bkmrk-command-description--1"><thead><tr><th>Command</th><th>Description</th><th>Example</th></tr></thead><tbody><tr><td>`!mouse {direction} {amount}`</td><td>moves the mouse a specified amount in the directions listed. Can take multiple directions</td><td>`!mouse downleft 10`</td></tr><tr><td>`!click [left|middle|right]`</td><td>clicks the mouse. If no argument specified defauls to left click</td><td>`!click, !click right`</td></tr><tr><td>`!scroll [down|up] {amount}`</td><td>scrolls the mouse either up or down an amount.</td><td>`!scroll down 100`</td></tr><tr><td>`!locate` (Requires your message has an attached image).</td><td>Cursed command that will try to find the image you uploaded on gubs screen and move the mouse to it.</td><td>[![](https://docs.kareth.io/uploads/images/gallery/2025-11/scaled-1680-/image-1764030187798.png)](https://docs.kareth.io/uploads/images/gallery/2025-11/image-1764030187798.png)</td></tr></tbody></table>

---

### **FIREFOX**

<table id="bkmrk-command-description--2"><thead><tr><th>Command</th><th>Description</th><th>Example</th><th>Aliases</th></tr></thead><tbody><tr><td>`!ffstart`</td><td>boots up firefox.</td><td>`!ffstart`</td><td></td></tr><tr><td>`!ffstop`</td><td>kills firefox</td><td>`!ffstop`</td><td></td></tr><tr><td>`!goto {url}`</td><td>loads the specifies url in firefox</td><td>`!goto http://tacobell.com/`</td><td>`!url`</td></tr><tr><td>`!youtube {query}`</td><td>will search youtube for whatever your query is and selects the first result</td><td>`youtube parkour civilization`</td><td>`!yt`</td></tr><tr><td>`!ffrefresh`</td><td>refreshes the page</td><td>`!ffrefresh`</td><td></td></tr><tr><td>`!ffinfo`</td><td>prints info about the current page</td><td>`!ffinfo`</td><td></td></tr><tr><td>`!bookmark {name} {url}`</td><td>adds a bookmark, if no url is specified it will try to use the current page</td><td>`!bookmark taco tacobell.com`</td><td>`!addbookmark`</td></tr><tr><td>`!unbookmark {name}`</td><td>removes the specified bookmark</td><td>`!unbookmark taco`</td><td>`!removebookmark` `!deletebookmark` `!delbookmark`</td></tr><tr><td>`!bookmarks`</td><td>lists the saved bookmarks</td><td>`!bookmarks`</td><td></td></tr><tr><td>`!gobookmark {name}`</td><td>loads the specified bookmark</td><td>`!gobookmark taco`</td><td>`!openbookmark`</td></tr><tr><td>`!execute {javascript}`</td><td>nightmare command, injects javascript into the current page and runs it.</td><td>`!execute document.body.innerHTML = '';` -- blanks out the page</td><td></td></tr></tbody></table>

#### Firefox Notes:

- You have to start firefox via !ffstart for the other firefox commands to work.
- Sometimes youtube will stop videos with `something went wrong refresh or try again later` try fully killing and starting firefox again

---

### **OBS**

<table id="bkmrk-command-description--3"><thead><tr><th>Command</th><th>Description</th><th>Example</th><th>Aliases</th></tr></thead><tbody><tr><td>`!start_obs`</td><td>boots up obs studio and tries to connect to the websocket server</td><td>`!start_obs`</td><td></td></tr><tr><td>`!stop_obs`</td><td>stops obs</td><td>`!stop_obs`</td><td></td></tr><tr><td>`!obs_status`</td><td>Checks if obs is running and if the websocket is reachable</td><td>`!obs_status`</td><td></td></tr><tr><td>`!obs_configure_replay {seconds}`</td><td>Configures the duration of OBS's replay buffer</td><td>`!obs_configure_replay 120`</td><td></td></tr><tr><td>`!obs_start_replay`</td><td>starts the replay buffer function</td><td>`!obs_start_replay`</td><td></td></tr><tr><td>`!obs_stop_replay`</td><td>stops the replay buffer function</td><td>`!obs_stop_replay`</td><td></td></tr><tr><td>`!obs_save_replay`</td><td>saves the replay to disk and if configured will ship it to google drive</td><td>`!obs_save_replay`</td><td>`!clip`</td></tr></tbody></table>

#### OBS Notes:

- OBS needs to be running for any of the other obs commands to work

---

#### Other Notes

You have to type the commands in the gubhub channel and you have to be a part of the "Gubbers" Role in discord.