Commands
Every app command you can run from a hotkey, an action step, search or the Local API
Every command Vfinity can run by name, with the value it takes. The same names work in a global hotkey, an App command step, a Quick Deck pad, Search everything and the Local API.
Where commands run
| Place | How |
|---|---|
| Global hotkeys | SettingsAutomation & rulesGlobal hotkeys: pick a command for a key combination |
| Events and Quick Deck | An App command step, which asks for the command's value |
| Search everything | Press Ctrl+K/Cmd+K and type the command's name; only commands that take no value are listed |
| Local API | POST /api/command with {"name":"timer.add","args":30}, or the same message on /api/ws |
| Trigger API | {"type":"command","name":"timer.add","args":30,"requestId":"1"} |
Pickers group commands under the headings below, in this order. A command
appears once the part of the app that owns it is running, and the Local API's
GET /api/state lists every command available right now.
- Events
- Overlay widgets
- Settings
Run control
| Command | Name in pickers | Value |
|---|---|---|
control.pause | Pause triggers | None |
control.resume | Resume triggers | None |
control.togglePause | Pause or resume triggers | None |
control.panic | Panic: stop and clear everything | None |
Pause holds every trigger, auto-throw, TTS message and new alert while stats and leaderboards keep counting. Panic pauses too, and clears what is queued, speaking or on screen.
Quick Deck
| Command | Name in pickers | Value |
|---|---|---|
deck.press | Quick Deck: press a pad | The pad's name or ID |
deck.stopAll | Quick Deck: stop all pads | None |
In a step or a hotkey, Choose a Quick Deck pad lists every pad with its picture and name.
Events
| Command | Name in pickers | Value |
|---|---|---|
mapping.trigger | Run an Events mapping | An event's ID, or an API trigger's name |
In a step, Mapping to run lists your events. Right-click an event and choose Copy event ID to get its ID for the Local API.
Action queue
| Command | Name in pickers | Value |
|---|---|---|
queue.cancelActive | Cancel the running action | None |
queue.clearPending | Clear waiting actions | None |
queue.clearAll | Clear the action queue | None |
Text to speech
| Command | Name in pickers | Value |
|---|---|---|
tts.skip | Skip the TTS message | None |
tts.clear | Clear the TTS queue | None |
tts.toggle | Turn TTS on or off | None |
Alerts
| Command | Name in pickers | Value |
|---|---|---|
alerts.skip | Alerts: skip the alert on screen | None |
alerts.pause | Alerts: pause | None |
alerts.resume | Alerts: resume | None |
alerts.replay | Alerts: replay | An alert's ID; empty replays the last one shown |
alerts.clear | Alerts: clear | None |
Every open OBS alerts source obeys these.
Throwing
| Command | Name in pickers | Value |
|---|---|---|
throw.items | Throw items | JSON, with the same fields as a Throw items step |
throw.clear | Clear items | None |
throw.clear removes every thrown item from OBS and the preview, and stops a
combo still being thrown.
VTube Studio
| Command | Name in pickers | Value |
|---|---|---|
vts.reconnect | Reconnect VTube Studio | None |
Timer
| Command | Name in pickers | Value |
|---|---|---|
timer.start | Timer: start | None |
timer.pause | Timer: pause | None |
timer.reset | Timer: reset | None |
timer.add | Timer: add seconds | Seconds |
timer.set | Timer: set seconds | Seconds, 0 or more |
timer.toggleMode | Timer: count up or down | None |
timer.add and timer.set also take {"seconds":30}, and refuse anything past
a year.
Games
| Command | Name in pickers | Value |
|---|---|---|
wheel.spin | Spin wheel | None |
giftJar.clear | Empty gift jar | None |
poll.start | Start new poll | None |
poll.close | Close poll | None |
viewerQueue.next | Next viewer | None |
viewerQueue.clear | Clear queue | None |
viewerQueue.toggle | Open / close queue | None |
giveaway.open | Open entries | None |
giveaway.close | Close entries | None |
giveaway.draw | Draw winner | None |
giveaway.reset | Reset giveaway | None |
giveaway.clearWinners | Forget past winners | None |
tugOfWar.start | Start round | None |
tugOfWar.stop | End round now | None |
tugOfWar.reset | Reset round | None |
hypeMeter.boost | Boost hype | An amount; 50 when empty |
hypeMeter.reset | Reset hype | None |
While Vfinity is paused, Draw winner, Start round and Boost hype are refused with the reason, and the wheel does not spin.
Overlays
| Command | Name in pickers | Value |
|---|---|---|
sceneCard.showStarting | Scene card: show Starting soon | None |
sceneCard.showBrb | Scene card: show Be right back | None |
sceneCard.showEnding | Scene card: show Stream ending | None |
sceneCard.hide | Scene card: hide | None |
sceneCard.countdownStart | Scene card: start the countdown | None |
sceneCard.countdownStop | Scene card: stop the countdown | None |
checklist.checkNext | Checklist: check the next item | None |
checklist.uncheckAll | Checklist: uncheck all | None |
buddies.clear | Clear viewer buddies | None |
Showing a scene switches the Scene Card on, and each card counts down from its own Minutes. From a hotkey, a step or the API, these commands act on the widget and its copies: a copy you switched off stays off but follows the scene, and the checklist commands tick only copies showing the same list. Run from a card's right-click menu on the Overlay tab, they act on that one card only.
Stats
| Command | Name in pickers | Value |
|---|---|---|
stats.resetSession | Reset session | None |
Reset session starts this stream's totals and leaderboards over. All-time totals and point balances stay.
Goals
| Command | Name in pickers | Value |
|---|---|---|
goal.reset | Reset a goal | The goal's widget ID, such as goal1 |
goal.add | Add to a goal | JSON: {"id":"goal1","amount":5} |
Other
| Command | Name in pickers | Value |
|---|---|---|
triggers.reset | Reset trigger milestones and first-chat history | None |
tiktok.connect | tiktok.connect | Optional JSON: {"username":"…","autoRejoin":true,"waitForLive":true} |
tiktok.disconnect | tiktok.disconnect | None |
tiktok.cancelRejoin | tiktok.cancelRejoin | None |
tiktok.connect answers as soon as the request is accepted, before the LIVE is
joined. tiktok.cancelRejoin stops waiting or rejoining and leaves a joined room
connected.
Your script
POST /api/trigger
Host: 127.0.0.1:21424
Authorization: Bearer YOUR_TOKEN
Content-Type: application/json
{
"name": "hype",
"data": {
"name": "mochi"
}
}{"ok":true}Events
API trigger
hype
POST /api/trigger fires every mapping whose API trigger has that name.
Vfinity's own window commands, such as quitting, cannot be run from outside the app.