Hotkey HUB
Config
Root configuration schema that defines the entire setup including remote PCs, shortcuts, RGB settings, and macros. All sections must follow their respective schemas strictly.
Object containing the following properties:
| Property | Description | Type | Default |
|---|---|---|---|
ips (*) |
Maps PC names to IP addresses or host names. If port is omited default is usedExample value: {“PC1”: “192.168.1.100”, “PC2”: “domain.name”, “PC3:”domain.or.ip:5000"} Each key identifies a remote PC, value is its IP/Domain. The address must be accessible from this PC. For internet access, use VPN or tunneling (e.g. ngrok.com). | Ips | |
clientPort |
HTTPS port for secure client PC connections. Must be accessible and not blocked by firewalls. Default is 5000 if not specified. | number |
5000 |
rgb |
RGB keyboard lighting for shortcut feedback. Changes key colors during execution. You need to run openrgb server for it, which you can download from https://openrgb.org. Run the application, go to the SDK server tab and click on Start server. Needs OpenRGB server and compatible keyboard, the supported keyboards are here: https://openrgb.org/devices.html. For Linux just install openrgb via your package manager and run the openrgb from root with you default service manager like systemd | Rgb | |
name |
Name of this schema to print in logs | string |
|
combinations (*) |
Array of shortcut definitions that map keyboard combinations to command sequences. Each shortcut must have a unique key combination. This is the main configuration that defines what happens when specific keys are pressed. | Shortcuts | |
delays |
Global delays config between commands. If ommited commands will run instantly after each other | GlobalDelay | |
macros |
A map of macros where a key is the macro name and value is its body | MacrosList |
(*) Required.
Ips
Maps PC names to IP addresses or host names. If port is omited default is usedExample value: {“PC1”: “192.168.1.100”, “PC2”: “domain.name”, “PC3:”domain.or.ip:5000"} Each key identifies a remote PC, value is its IP/Domain. The address must be accessible from this PC. For internet access, use VPN or tunneling (e.g. ngrok.com).
Object record with dynamic keys:
- keys of type
string - values of type
string
Shortcut
This allows to bind a shortcut to a commands list and define execution behaviour. E.g. press alt+1 on local PC to send a mouseClick on a remote one
Object containing the following properties:
| Property | Description | Type | Default |
|---|---|---|---|
delayAfter |
Delay (ms) after each command. Ensures commands have time to complete. | number |
|
delayBefore |
Delay (ms) before each command. Helps coordinate timing between different shortcuts. | number |
|
name (*) |
Name shown during startup. Helps identify the shortcut’s purpose. | string |
|
shortCut (*) |
Keyboard shortcut format: Modifier+Key (e.g., Alt+1, Ctrl+Shift+A). Needs at least one modifier. Max 3 modifiers (e.g., Ctrl+Alt+Shift+S). | string |
|
commands (*) |
Commands to run when shortcut triggered. Executes in order unless parallel execution specified. | Array of UnknownCommand items | |
behaviour |
Controls the the behaviour of the process when you press again the shortcut and the old process is still running. | 'stacking' \| 'pausable' \| 'restart' or BehaviourObject |
'stacking' |
(*) Required.
UnknownCommand
A command that would be executed on this machine
Union of the following possible types:
RemoteCommand
One of the commands that would be sent to a remote machine specified in destination property
Union of the following possible types:
KeyboardCommands
Keyboard-related remote commands
Union of the following possible types:
MouseCommands
Mouse-related remote commands
Union of the following possible types:
- MouseMoveClickRemoteCommand
- MouseMoveRemoteCommand
- MouseClickRemoteCommand
- LeftMouseClickRemoteCommand
ProcessCommands
Process-related remote commands
Union of the following possible types:
WindowCommands
Window-related remote commands
Union of the following possible types:
LocalCommand
A local command that would be executed on this machine
Union of the following possible types:
- MacroLocalCommand
- ExpressionLocalCommand
- TransactionLocalCommand
- ThreadsLocalCommand
- LoopLocalCommand
- IfLocalCommand
- ExceptionLocalCommand
- ShuffleLocalCommand
- PrintLocalCommand
- ReloadConfigLocalCommand
ExceptionLocalCommand
Allows to execute statements in try block and fail silently by keeping next commands after this command executing
Object containing the following properties:
| Property | Description | Type |
|---|---|---|
try (*) |
Commands to execute if the condition is true | Array of UnknownCommand items |
catch |
Execute this commands on catch block. If catch is omited, commands in the try block will fail silently | Array of UnknownCommand items |
finally |
Execute this command after try block, whether it fails/succeed | Array of UnknownCommand items |
(*) Required.
ExpressionLocalCommand
Allows to create/assign a variable by expression.
Object containing the following properties:
| Property | Description | Type |
|---|---|---|
assignVariable (*) |
Name of the variable to store the expression result. This variable can be referenced in subsequent commands using {{variableName}} syntax. | string |
expression (*) |
JS like expression that evaluates to some values. E.g. x*2. | string |
(*) Required.
IfLocalCommand
Conditional execution of commands based on a boolean condition. If the condition is true, executes the “then” commands, otherwise executes the “else” commands if they exist.
Object containing the following properties:
| Property | Description | Type |
|---|---|---|
if (*) |
JS like expression that evaluates to some values. E.g. x*2. | string |
then (*) |
Commands to execute if the condition is true | Array of UnknownCommand items |
else |
Optional commands to execute if the condition is false | Array of UnknownCommand items |
(*) Required.
LoopLocalCommand
Allow to run same commands multiple time or in iteration or loop
Object containing the following properties:
| Property | Description | Type |
|---|---|---|
commands (*) |
Sequence of commands to repeat in the loop. Each iteration will execute all commands in order. | Array of UnknownCommand items |
loop (*) |
Number of times to repeat the commands sequence. Positive number: Executes that many iterations. Negative number: Runs indefinitely until manually stopped. If the parent command is pausable, pressing the shortcut again will exit the loop.If string is passed evaluated that string as expresssion and repeat the loop while it’s true | number \| string |
(*) Required.
MacroLocalCommand
Executes a predefined macro, which is a reusable sequence of commands. Similar to a function call, macros can accept parameters through variables. This helps avoid duplicating complex command sequences and makes configurations more maintainable.
Object containing the following properties:
| Property | Description | Type |
|---|---|---|
macro (*) |
Name of the macro to execute, which must match a key defined in the macros section. Macros help reduce configuration repetition by reusing command sequences. | string |
variables |
Variables to pass to the macro. Object where keys are variable names and values are their values. Values can be strings or numbers and must match the types defined in the macro’s variables section. | MacroLocalCommandVariables |
delayAfter |
Delay (ms) after command completes, before next command. Ensures command has time to take effect. | VariableValue or number |
delayBefore |
Delay (ms) before executing command. Helps create precisely timed sequences. | VariableValue or number |
(*) Required.
PrintLocalCommand
Print the expressions to log
Object containing the following properties:
| Property | Description | Type |
|---|---|---|
print (*) |
JS like expression that evaluates to some values. E.g. x*2. | string |
(*) Required.
ReloadConfigLocalCommand
Reloads config or loads config from a new place
Union of the following possible types:
- Object with properties:
-
reloadConfig(*):string(min length: 1) - Path to a new config. Leave it empty to use current path -
reloadVariables:string- Path to a variable config file. Leave it empty to use current path
-
- Object with properties:
-
reloadConfig:string- Path to a new config. Leave it empty to use current path -
reloadVariables(*):string(min length: 1) - Path to a variable config file. Leave it empty to use current path
-
ShuffleLocalCommand
Allow to run same commands in specific order
Object containing the following properties:
| Property | Description | Type |
|---|---|---|
commands (*) |
Sequence of commands to repeat in the loop. Each iteration will execute all commands in order. | Array of UnknownCommand items |
shuffle (*) |
Random = shuffle array so it takes next element randomly. Reverse = each time it changes the order from first to last, then from last to first. Straight = Default order from first to last | 'random' \| 'reverse' \| 'straight' |
(*) Required.
ThreadsLocalCommand
Allows to execute commands in parallel. Or in threads.
Object containing the following properties:
| Property | Description | Type |
|---|---|---|
threads (*) |
Command sequences to run in parallel. Each thread runs sequentially while threads run simultaneously. | Array of ThreadLocal items |
(*) Required.
TransactionLocalCommand
Run commands in a transaction. Prevents concurrent transactions with same name. Uses PC name for remote commands. Ensures atomic execution.
Object containing the following properties:
| Property | Description | Type |
|---|---|---|
commands (*) |
Commands to execute atomically in this transaction. All commands either succeed or fail together. | Array of UnknownCommand items |
transaction (*) |
Unique name for the transaction. Helps with logging and debugging transaction execution.If transaction is null, all commands in this block would run despite other commands on the destination pc | VariableValue, string or null |
(*) Required.
GetInfoCommand
Allows to execute getRequest on remote schema and assign it to a variable
Union of the following possible types:
GetMonitorCommands
Allows to get information about display and its windows
Union of the following possible types:
GetProcessCommands
Handles processes
Union of the following possible types:
GetWindowCommands
Allows to get information about windows, transform and move them
Union of the following possible types:
PingCommand
Pings this client to test whether it’s working
Object containing the following properties:
| Property | Description | Type |
|---|---|---|
destination (*) |
Remote PC from ips or aliases section to send this command to | VariableValue or string |
get (*) |
'ping' |
|
assignVariable (*) |
Assign result to a variable. If array is passsed then the result is gonna be destruted into corresponding variable. E.g. if result is [1,2] and assignVariable = [“a”,“b”], then a = 1, b = 2. If array length missmatch, an exception is thrown | Array<string> \| string |
(*) Required.
FocusProcessWindowRemoteCommand
Brings a window to front and gives it focus by process ID. Useful for window automation and ensuring windows are active.
Object containing the following properties:
| Property | Description | Type |
|---|---|---|
destination (*) |
Remote PC from ips or aliases section to send this command to | VariableValue or string |
delayAfter |
Delay (ms) after command completes, before next command. Ensures command has time to take effect. | VariableValue or number |
delayBefore |
Delay (ms) before executing command. Helps create precisely timed sequences. | VariableValue or number |
performOnRemote (*) |
'focusProcessWindow' |
|
variables (*) |
FocusProcessWindowRemoteCommandVariable |
(*) Required.
FocusProcessWindowRemoteCommandVariable
Object containing the following properties:
| Property | Description | Type |
|---|---|---|
pid (*) |
Process ID (PID) of the window to focus. Can be obtained from findPidsByName command or launch command with assignId. | number or VariableValue |
(*) Required.
FocusWindowRemoteCommand
Brings a window to the foreground and gives it focus based on its window ID. Window IDs can be retrieved using findProcessWindows or findProcessesWindows commands.
Object containing the following properties:
| Property | Description | Type |
|---|---|---|
destination (*) |
Remote PC from ips or aliases section to send this command to | VariableValue or string |
delayAfter |
Delay (ms) after command completes, before next command. Ensures command has time to take effect. | VariableValue or number |
delayBefore |
Delay (ms) before executing command. Helps create precisely timed sequences. | VariableValue or number |
performOnRemote (*) |
'focusWindow' |
|
variables (*) |
FocusWindowRemoteCommandVariable |
(*) Required.
FocusWindowRemoteCommandVariable
Object containing the following properties:
| Property | Description | Type |
|---|---|---|
wid (*) |
Window ID to focus. Can be obtained from findProcessWindows or findProcessesWindows commands. | number or VariableValue |
(*) Required.
KeyPressRemoteCommand
Simulates keyboard input on the remote PC by sending key press events. Supports single keys, key combinations, and modifier keys with customizable timing and randomness. Use this for automating keyboard input or triggering keyboard shortcuts.
Object containing the following properties:
| Property | Description | Type |
|---|---|---|
destination (*) |
Remote PC from ips or aliases section to send this command to | VariableValue or string |
delayAfter |
Delay (ms) after command completes, before next command. Ensures command has time to take effect. | VariableValue or number |
delayBefore |
Delay (ms) before executing command. Helps create precisely timed sequences. | VariableValue or number |
performOnRemote (*) |
'keyPress' |
|
variables (*) |
KeyPressRemoteCommandVariable |
(*) Required.
KeyPressRemoteCommandVariable
Object containing the following properties:
| Property | Description | Type | Default |
|---|---|---|---|
key (*) |
Key(s) to press. Can be a single key or array of keys for multiple presses. | Key or Array of Key items or VariableValue | |
duration |
How long to hold the key down in milliseconds. Recommended minimum 50ms to ensure reliable key registration. | number (≥50) or VariableValue |
|
durationDeviation |
Adds randomness to key press duration. Value is the maximum +/- deviation in milliseconds. Useful for simulating human-like input patterns. | number (≥0) or VariableValue |
0 |
holdKeys |
Modifier keys to hold (e.g., Alt for Alt+1, Ctrl+Shift for Ctrl+Shift+A). Can be a key or key array. | Key or Array of Key items or VariableValue |
(*) Required.
KillExeByNameRemoteCommand
Terminates all processes with the specified executable name. Use with caution - kills all instances of the program.
Object containing the following properties:
| Property | Description | Type |
|---|---|---|
destination (*) |
Remote PC from ips or aliases section to send this command to | VariableValue or string |
delayAfter |
Delay (ms) after command completes, before next command. Ensures command has time to take effect. | VariableValue or number |
delayBefore |
Delay (ms) before executing command. Helps create precisely timed sequences. | VariableValue or number |
performOnRemote (*) |
'killExeByName' |
|
variables (*) |
KillExeByNameRemoteCommandVariable |
(*) Required.
KillExeByNameRemoteCommandVariable
Object containing the following properties:
| Property | Description | Type |
|---|---|---|
name (*) |
Name of the executable file to terminate. Example: “Chrome.exe”. Case-sensitive on some operating systems. | string or VariableValue |
(*) Required.
KillExeByPidRemoteCommand
Terminates a specific process by its PID on the remote PC. More precise than killByName as it targets a single specific process.
Object containing the following properties:
| Property | Description | Type |
|---|---|---|
destination (*) |
Remote PC from ips or aliases section to send this command to | VariableValue or string |
delayAfter |
Delay (ms) after command completes, before next command. Ensures command has time to take effect. | VariableValue or number |
delayBefore |
Delay (ms) before executing command. Helps create precisely timed sequences. | VariableValue or number |
performOnRemote (*) |
'killExeByPid' |
|
variables (*) |
KillExeByPidRemoteCommandVariable |
(*) Required.
KillExeByPidRemoteCommandVariable
Object containing the following properties:
| Property | Description | Type |
|---|---|---|
pid (*) |
Process ID (PID) of the process to terminate. Example: 1234. Must be a valid running process ID. | number or VariableValue |
(*) Required.
LaunchExeRemoteCommand
Starts a program on a remote PC.
Object containing the following properties:
| Property | Description | Type |
|---|---|---|
destination (*) |
Remote PC from ips or aliases section to send this command to | VariableValue or string |
delayAfter |
Delay (ms) after command completes, before next command. Ensures command has time to take effect. | VariableValue or number |
delayBefore |
Delay (ms) before executing command. Helps create precisely timed sequences. | VariableValue or number |
performOnRemote (*) |
'launchExe' |
|
assignVariable |
If provided, would assign launched process id to this variable | string or VariableValue |
variables (*) |
LaunchExeRemoteCommandVariable |
(*) Required.
LaunchExeRemoteCommandVariable
Object containing the following properties:
| Property | Description | Type | Default |
|---|---|---|---|
path (*) |
Full absolute path to the executable file to run on the remote PC. | string or VariableValue |
|
arguments |
Command-line arguments to pass to the executable. Each array element is a separate argument. | Array<string> or VariableValue |
[] |
waitTillFinish |
Blocks current execution context until this timeout passes or process is finished, whichever comes first. | boolean or VariableValue |
false |
waitTimeout |
Awaits this timeout to pass to get processs id. If waitTillFinish is true, awaits maxium of this timeout. If process failed to finish before it, throws error. | number or VariableValue |
300 |
(*) Required.
LeftMouseClickRemoteCommand
Performs a left mouse click at the current cursor position without moving the mouse. Use when cursor is already positioned.
Object containing the following properties:
| Property | Description | Type |
|---|---|---|
destination (*) |
Remote PC from ips or aliases section to send this command to | VariableValue or string |
delayAfter |
Delay (ms) after command completes, before next command. Ensures command has time to take effect. | VariableValue or number |
delayBefore |
Delay (ms) before executing command. Helps create precisely timed sequences. | VariableValue or number |
performOnRemote (*) |
'leftMouseClick' |
(*) Required.
MouseClickRemoteCommand
Performs a left mouse click at the current cursor position without moving the mouse. Use when cursor is already positioned.
Object containing the following properties:
| Property | Description | Type |
|---|---|---|
destination (*) |
Remote PC from ips or aliases section to send this command to | VariableValue or string |
delayAfter |
Delay (ms) after command completes, before next command. Ensures command has time to take effect. | VariableValue or number |
delayBefore |
Delay (ms) before executing command. Helps create precisely timed sequences. | VariableValue or number |
performOnRemote (*) |
'mouseClick' |
|
variables (*) |
MouseClickRemoteCommandVariables |
(*) Required.
MouseClickRemoteCommandVariables
Object containing the following properties:
| Property | Description | Type |
|---|---|---|
button (*) |
Identifier of a mouse button | 'LEFT' \| 'RIGHT' \| 'MIDDLE' or VariableValue |
(*) Required.
MouseMoveClickRemoteCommand
Moves mouse cursor to specified screen coordinates and performs a left-click. Combines movement and clicking into one action.
Object containing the following properties:
| Property | Description | Type |
|---|---|---|
destination (*) |
Remote PC from ips or aliases section to send this command to | VariableValue or string |
delayAfter |
Delay (ms) after command completes, before next command. Ensures command has time to take effect. | VariableValue or number |
delayBefore |
Delay (ms) before executing command. Helps create precisely timed sequences. | VariableValue or number |
performOnRemote (*) |
'mouseMoveLeftClick' |
|
variables (*) |
MouseMoveClickRemoteCommandVariable |
(*) Required.
MouseMoveClickRemoteCommandVariable
Object containing the following properties:
| Property | Description | Type | Default |
|---|---|---|---|
x (*) |
X coordinate for mouse cursor. | number or VariableValue |
|
y (*) |
Y coordinate for mouse cursor. | number or VariableValue |
|
pixelsPerIteration |
Pixels to move per iteration for smooth movement. | number or VariableValue |
20 |
(*) Required.
MouseMoveRemoteCommand
Moves mouse cursor to specified screen coordinates.
Object containing the following properties:
| Property | Description | Type |
|---|---|---|
destination (*) |
Remote PC from ips or aliases section to send this command to | VariableValue or string |
delayAfter |
Delay (ms) after command completes, before next command. Ensures command has time to take effect. | VariableValue or number |
delayBefore |
Delay (ms) before executing command. Helps create precisely timed sequences. | VariableValue or number |
performOnRemote (*) |
'mouseMove' |
|
variables (*) |
MouseMoveClickRemoteCommandVariable |
(*) Required.
SetKeyboardLayoutRemoteCommand
Simulates keyboard input on the remote PC by sending key press events. Supports single keys, key combinations, and modifier keys with customizable timing and randomness. Use this for automating keyboard input or triggering keyboard shortcuts.
Object containing the following properties:
| Property | Description | Type |
|---|---|---|
destination (*) |
Remote PC from ips or aliases section to send this command to | VariableValue or string |
delayAfter |
Delay (ms) after command completes, before next command. Ensures command has time to take effect. | VariableValue or number |
delayBefore |
Delay (ms) before executing command. Helps create precisely timed sequences. | VariableValue or number |
performOnRemote (*) |
'setKeyboardLayout' |
|
variables (*) |
KeyboardLayoutCommandVariable |
(*) Required.
SetWindowBoundsRemoteCommand
Sets window width height and x y position
Object containing the following properties:
| Property | Description | Type |
|---|---|---|
destination (*) |
Remote PC from ips or aliases section to send this command to | VariableValue or string |
delayAfter |
Delay (ms) after command completes, before next command. Ensures command has time to take effect. | VariableValue or number |
delayBefore |
Delay (ms) before executing command. Helps create precisely timed sequences. | VariableValue or number |
performOnRemote (*) |
'setWindowBounds' |
|
variables (*) |
SetWindowBoundsRemoteCommandVariable |
(*) Required.
SetWindowBoundsRemoteCommandVariable
Object containing the following properties:
| Property | Description | Type |
|---|---|---|
wid (*) |
Window id | number or VariableValue |
bounds (*) |
WindowPropertiesVariable or VariableValue |
(*) Required.
TypeTextRemoteCommand
Types text on the remote PC.
Object containing the following properties:
| Property | Description | Type |
|---|---|---|
destination (*) |
Remote PC from ips or aliases section to send this command to | VariableValue or string |
delayAfter |
Delay (ms) after command completes, before next command. Ensures command has time to take effect. | VariableValue or number |
delayBefore |
Delay (ms) before executing command. Helps create precisely timed sequences. | VariableValue or number |
performOnRemote (*) |
'typeText' |
|
variables (*) |
TypeTextRemoteCommandVariable |
(*) Required.
TypeTextRemoteCommandVariable
Object containing the following properties:
| Property | Description | Type | Default |
|---|---|---|---|
text (*) |
Any string to type | string or VariableValue |
|
keyDelay |
Delay between keystroke in milliseconds. By default types as fast as possible, around 40ms per char | number or VariableValue |
100 |
keyDelayDeviation |
Deviation for randomness of delay. E.g if keyDelay = 100 and deviation = 0.2. Then value would be 80-120ms | number (>0) or VariableValue |
0.1 |
(*) Required.
MacroLocalCommandVariables
Variables to pass to the macro. Object where keys are variable names and values are their values. Values can be strings or numbers and must match the types defined in the macro’s variables section.
Object record with dynamic keys:
- keys of type
string - values of type
anyor VariableValue (optional)
GetActiveWindowCommand
Get information about current active window
Object containing the following properties:
| Property | Description | Type |
|---|---|---|
destination (*) |
Remote PC from ips or aliases section to send this command to | VariableValue or string |
get (*) |
'getActiveWindow' |
|
assignVariable (*) |
Assign result to a variable. If array is passsed then the result is gonna be destruted into corresponding variable. E.g. if result is [1,2] and assignVariable = [“a”,“b”], then a = 1, b = 2. If array length missmatch, an exception is thrown | Array<string> \| string |
(*) Required.
GetMonitorInfoCommand
Get monitor info
Object containing the following properties:
| Property | Description | Type |
|---|---|---|
destination (*) |
Remote PC from ips or aliases section to send this command to | VariableValue or string |
get (*) |
'getMonitorInfo' |
|
assignVariable (*) |
Assign result to a variable. If array is passsed then the result is gonna be destruted into corresponding variable. E.g. if result is [1,2] and assignVariable = [“a”,“b”], then a = 1, b = 2. If array length missmatch, an exception is thrown | Array<string> \| string |
variables (*) |
MonitorVariablesCommand |
(*) Required.
GetMonitorsCommand
List monitors
Object containing the following properties:
| Property | Description | Type |
|---|---|---|
destination (*) |
Remote PC from ips or aliases section to send this command to | VariableValue or string |
get (*) |
'getMonitors' |
|
assignVariable (*) |
Assign result to a variable. If array is passsed then the result is gonna be destruted into corresponding variable. E.g. if result is [1,2] and assignVariable = [“a”,“b”], then a = 1, b = 2. If array length missmatch, an exception is thrown | Array<string> \| string |
(*) Required.
GetPidsByNameCommand
Gets list of process ids that match criteria
Object containing the following properties:
| Property | Description | Type |
|---|---|---|
destination (*) |
Remote PC from ips or aliases section to send this command to | VariableValue or string |
get (*) |
'getPidsByName' |
|
assignVariable (*) |
Assign result to a variable. If array is passsed then the result is gonna be destruted into corresponding variable. E.g. if result is [1,2] and assignVariable = [“a”,“b”], then a = 1, b = 2. If array length missmatch, an exception is thrown | Array<string> \| string |
variables (*) |
GetPidsByNameCommandVariables |
(*) Required.
GetPidsByNameCommandVariables
Object containing the following properties:
| Property | Description | Type |
|---|---|---|
name (*) |
Name of the executable file to search for. Example: “Chrome.exe”. Case-sensitive on some operating systems. | string or VariableValue |
(*) Required.
GetProcessInfoCommand
Get process’s main window
Object containing the following properties:
| Property | Description | Type |
|---|---|---|
destination (*) |
Remote PC from ips or aliases section to send this command to | VariableValue or string |
get (*) |
'getProcessInfo' |
|
assignVariable (*) |
Assign result to a variable. If array is passsed then the result is gonna be destruted into corresponding variable. E.g. if result is [1,2] and assignVariable = [“a”,“b”], then a = 1, b = 2. If array length missmatch, an exception is thrown | Array<string> \| string |
variables (*) |
GetProcessInfoCommandVariables |
(*) Required.
GetProcessInfoCommandVariables
Object containing the following properties:
| Property | Type |
|---|---|
pid (*) |
number (int, >0) or VariableValue |
(*) Required.
GetWindowCommand
Get information about window with specified window id
Object containing the following properties:
| Property | Description | Type |
|---|---|---|
destination (*) |
Remote PC from ips or aliases section to send this command to | VariableValue or string |
get (*) |
'getWindow' |
|
assignVariable (*) |
Assign result to a variable. If array is passsed then the result is gonna be destruted into corresponding variable. E.g. if result is [1,2] and assignVariable = [“a”,“b”], then a = 1, b = 2. If array length missmatch, an exception is thrown | Array<string> \| string |
variables (*) |
WindowIdVariablesCommand |
(*) Required.
GetWindowsIdByMultiplePidsCommandVariables
Object containing the following properties:
| Property | Type |
|---|---|
pids (*) |
Array<number (_int, >0_)> or VariableValue |
(*) Required.
GetWindowsIdByMutliplePidsCommand
Get all windows with their IDs for a concrete process id
Object containing the following properties:
| Property | Description | Type |
|---|---|---|
destination (*) |
Remote PC from ips or aliases section to send this command to | VariableValue or string |
get (*) |
'getWindowsIdByMultiplePids' |
|
assignVariable (*) |
Assign result to a variable. If array is passsed then the result is gonna be destruted into corresponding variable. E.g. if result is [1,2] and assignVariable = [“a”,“b”], then a = 1, b = 2. If array length missmatch, an exception is thrown | Array<string> \| string |
variables (*) |
GetWindowsIdByMultiplePidsCommandVariables |
(*) Required.
GetWindowsIdByPidCommand
Get all windows with their IDs for a concrete process id
Object containing the following properties:
| Property | Description | Type |
|---|---|---|
destination (*) |
Remote PC from ips or aliases section to send this command to | VariableValue or string |
get (*) |
'getWindowsIdByPid' |
|
assignVariable (*) |
Assign result to a variable. If array is passsed then the result is gonna be destruted into corresponding variable. E.g. if result is [1,2] and assignVariable = [“a”,“b”], then a = 1, b = 2. If array length missmatch, an exception is thrown | Array<string> \| string |
variables (*) |
GetWindowsIdByPidCommandVariables |
(*) Required.
GetWindowsIdByPidCommandVariables
Object containing the following properties:
| Property | Type |
|---|---|
pid (*) |
number (int, >0) or VariableValue |
(*) Required.
BehaviourObject
Object containing the following properties:
| Property | Description | Type |
|---|---|---|
groupWith |
If type is “restart” or “pausable” then groupWith will restart/pause all shortcuts with the same name | string |
type (*) |
Stacking = Current process will keep running and new one will spawn as well. Since all executable items run in transaction by default.The next iteration will wait until current is finished. The default behaviour Pausable = Current process will stop running and new one won’t start. Restart = Current process will stop running and new one will start |
'stacking' \| 'pausable' \| 'restart' |
(*) Required.
GlobalDelay
Global delays config between commands. If ommited commands will run instantly after each other
Object containing the following properties:
| Property | Description | Type | Default |
|---|---|---|---|
beforeCommand |
Base delay (in milliseconds) before each command. Can be randomized using standardDeviation. | number |
0 |
afterCommand |
Base delay (in milliseconds) after each command. Can be randomized using standardDeviation. | number |
0 |
standardDeviation |
Controls randomness of global before/after delays.Final delay = base ± (base * standardDeviation). E.g. 0.2 with 1000ms delay gives random delay between 800ms and 1200ms. | number (>0, ≤1) |
0 |
commandDeviation |
Controls randomness of delays before/after on each command. This doesn’t affect global delays, only if a command has its own delayBefore or delayAfter property.Final delay = base ± (base * standardDeviation). E.g. 0.2 with 1000ms delay gives random delay between 800ms and 1200ms. | number (>0, ≤1) |
0 |
randomHugeDelayDeviation |
Deviation factor for huge delay. Applied only when randomHugeDelayChance is triggered. Final delay = base ± (base * standardDeviation) + (hugeDelay ± (hugeDelay * randomHugeDelayDiviation)). | number (>0, ≤1) |
0 |
randomHugeDelay |
Extra delay (in milliseconds) added on top of standard delays. Only applies when randomHugeDelayChance is triggered. | number (>0) |
0 |
randomHugeDelayChance |
Probability (0 to 1) of applying a random huge delay after the standard delay. | number (>0, ≤1) |
0 |
All properties are optional. (optional)
Key
One of the keyboard keys.
Enum, one of the following possible values:
Expand for full list of 139 values
'0''1''2''3''4''5''6''7''8''9''a''b''c''d''e''f''g''h''i''j''k''l''m''n''o''p''q''r''s''t''u''v''w''x''y''z''f1''f2''f3''f4''f5''f6''f7''f8''f9''f10''f11''f12''f13''f14''f15''f16''f17''f18''f19''f20''f21''f22''f23''f24''backspace''delete''return''enter''tab''escape''space''insert''print_screen''home''end''page_up''page_down''up''down''left''right''caps_lock''num_lock''scroll_lock''add''subtract''multiply''divide''clear''numpad_0''numpad_1''numpad_2''numpad_3''numpad_4''numpad_5''numpad_6''numpad_7''numpad_8''numpad_9''numpad_decimal'',''.''/'';'''''['']''\''-''=''’`'audio_mute''audio_vol_down''audio_vol_up''audio_play''audio_stop''audio_pause''audio_prev''audio_next''audio_rewind''audio_forward''audio_repeat''audio_random''lights_mon_up''lights_mon_down''lights_kbd_toggle''lights_kbd_up''lights_kbd_down''menu''pause''control''right_control''alt''right_alt''shift''right_shift''meta''right_meta''win''right_win''cmd''right_cmd''fn'
KeyboardLayoutCommandVariable
Object containing the following properties:
| Property | Description | Type |
|---|---|---|
layout (*) |
Keyboard layout | KeyboardLayoutValue or VariableValue |
(*) Required.
KeyboardLayoutValue
Keyboard layout
Enum, one of the following possible values:
Expand for full list of 164 values
'us''en''gb''au''nz''ie''za''de''at''ch''li''fr''be''lu''mc''es''mx''cl''ve''pe''ec''uy''py''bo''it''sm''va''pt''nl''sr''no''dk''fi''is''pl''cz''sk''hu''hr''ba''rs''me''mk''bg''ro''md''ee''lv''lt''mt''tr''az''ru''by''ua''kz''kg''tj''uz''tm''mn''gr''ar''ae''bh''dz''eg''iq''jo''kw''ly''ma''om''qa''sa''sy''tn''ye''fa''ir''ur''pk''il''he''cn''zh''tw''hk''mo''jp''ja''kr''ko''th''vn''vi''kh''km''lo''my''ms''id''ph''tl''sg''bn''bd''hi''in''ta''te''ml''kn''gu''or''pa''as''ne''si''lk''mm''am''et''sw''ke''tz''zu''xh''af''ha''ng''sn''bf''ci''gn''td''cf''cm''cg''cd''mg''dj''eo''la''eu''ca''gl''cy''ga''gd''br''oc''co''sc''fur''rm''lb''fo''kl''se''smj''sma''smn''sms'
MacroArrayVariableType
Union of the following possible types:
string- Object with dynamic keys of type
stringand values of type MacroVariableType
MacroDefinition
A reusable command sequence that can accept variables. Similar to a function that runs a predefined set of commands.
Object containing the following properties:
| Property | Description | Type |
|---|---|---|
commands (*) |
Set of commands for this macro | Array of UnknownCommand items |
variables |
Set of variables descriptors for macro | MacroVariablesDescription |
(*) Required.
MacroObjectVariableType
Object record with dynamic keys:
- keys of type
string - values of type MacroVariableType
MacroPrimitiveVariableType
Union of the following possible types:
'string''number''boolean''any'
MacroVariableType
To validate the type, or cast from env variables
Union of the following possible types:
MacroVariableValue
Variable description for macro
Object containing the following properties:
| Property | Description | Type |
|---|---|---|
type (*) |
To validate the type, or cast from env variables | MacroVariableType |
optional |
If set to true, the key is be removed is var is not passed | boolean |
default |
Default value if value is not passed. Optional should be set to true | any |
(*) Required.
MacroVariablesDescription
Set of variables descriptors for macro
Object record with dynamic keys:
- keys of type
string - values of type MacroVariableValue (optional)
MacrosList
A map of macros where a key is the macro name and value is its body
Object record with dynamic keys:
- keys of type
string - values of type MacroDefinition (optional)
MonitorVariablesCommand
Object containing the following properties:
| Property | Type |
|---|---|
mid (*) |
number (int, ≥0) or VariableValue |
(*) Required.
Rgb
RGB keyboard lighting for shortcut feedback. Changes key colors during execution. You need to run openrgb server for it, which you can download from https://openrgb.org. Run the application, go to the SDK server tab and click on Start server. Needs OpenRGB server and compatible keyboard, the supported keyboards are here: https://openrgb.org/devices.html. For Linux just install openrgb via your package manager and run the openrgb from root with you default service manager like systemd
Object containing the following properties:
| Property | Description | Type | Default |
|---|---|---|---|
deviceName (*) |
Device name of the keyboard. You can extract it with “openrgb –list-devices” command. Select the name after number. Also you can check in openrgb UI in Devices Tab. | string |
|
clientName |
Name of this client when connecting to openrg | string |
'RPC' |
serverPort |
Port of the openrgb server | number |
6742 |
serverAddr |
Address of the openrgb server | string |
'localhost' |
keyMapFn |
Mapping of openRGB provided keyboard “key” schema. In other words input: openRgb keyboard provider key name. Output should be a string a type of “key” schema.This should be a JS expression that accept variable “x” and evaluates to a string. Allows to properly setup mapping in order to avoid exceptions like “key XXX is not present in keymap”. Default value works for keyboard brand HyperX | string |
'x.toLowerCase().replace(" arrow", "").replace("pause/break", "pause").replace("key: ", "").replace(" (ansi)", "").replace(" ", "_")' |
(*) Required. (optional)
Shortcuts
Array of shortcut definitions that map keyboard combinations to command sequences. Each shortcut must have a unique key combination. This is the main configuration that defines what happens when specific keys are pressed.
Array of Shortcut items.
ThreadLocal
Object containing the following properties:
| Property | Description | Type |
|---|---|---|
name (*) |
name of the thread, required for req-id log, | string (max length: 10, min length: 1) |
commands (*) |
list of commands in this thread | Array of UnknownCommand items |
(*) Required.
VariableValue
Reference to a variable from a variables definition section. The value will be replaced at runtime with either: 1. A matching variable from variables.json 2. A matching environment variable 3. A variable created during execution (e.g., from assignId or expression commands)
Object containing the following properties:
| Property | Type |
|---|---|
$ref (*) |
string |
(*) Required.
Variables
Variable definitions for configuration. Values can be any type (numeric strings auto-convert to integers). Use {{varName}} to reference.
Object record with dynamic keys:
- keys of type
string - values of type
any
WindowIdVariablesCommand
Object containing the following properties:
| Property | Type |
|---|---|
wid (*) |
number (int, >0) or VariableValue |
(*) Required.
WindowProperties
Definition of window location and size
Object containing the following properties:
| Property | Description | Type |
|---|---|---|
x (*) |
x position | number |
y (*) |
y position | number |
width (*) |
width | number |
height (*) |
height | number |
(*) Required.
WindowPropertiesVariable
Object containing the following properties:
| Property | Description | Type |
|---|---|---|
x (*) |
x position | number or VariableValue |
y (*) |
y position | number or VariableValue |
width (*) |
width | number or VariableValue |
height (*) |
height | number or VariableValue |
(*) Required.