Skip to main content

Permissions

Plugins must declare required permissions in manifest.json. Core enforces these — API calls requiring undeclared permissions will fail.

Available Permissions

General

PermissionDescription
logWrite to the application log

Controller Plugins

PermissionDescription
serial:readRead from serial port
serial:writeWrite to serial port
hid:readRead from HID device
hid:writeWrite to HID device

Effect Plugins

PermissionDescription
screen:captureCapture screen content
audio:captureAccess audio FFT data
media:album_artAccess media album art

Extension Plugins

PermissionDescription
network:tcpOpen TCP connections
processSpawn and manage external processes

Declaring Permissions

Add a permissions array to your manifest.json:

{
"permissions": ["log", "network:tcp", "process"]
}

Security Model

  • Plugins run in a sandboxed Lua 5.4 environment
  • File system access is restricted to the plugin's own directory
  • Network access requires explicit network:tcp permission
  • Process spawning requires explicit process permission
  • Each plugin runs in an isolated Lua state — plugins cannot access each other's data