Plugin Commands
Commands for managing plugin catalogs, installed plugin copies, enabled state, and extension pages.
The extended management commands and metadata on this page are supported since 3.0.0-dev.4.
get_plugins
Returns metadata for all installed effect, controller, and extension plugins.
Parameters: none
→ {"jsonrpc":"2.0","method":"get_plugins","id":1}
← {"jsonrpc":"2.0","result":{
"effects": [
{
"id": "rainbow",
"name": {"raw": "Rainbow", "byLocale": {"zh-CN": "彩虹"}},
"enabled": true,
"description": {"raw": "Flowing rainbow animation"},
"icon": "Waves",
"permissions": ["log"],
"version": "1.0.0",
"publisher": "Skydimo",
"language": "native-c",
"abi": "skydimo-effect-c-v3",
"repository": "https://github.com/...",
"license": "MIT",
"params": [],
"pluginDir": "...",
"dataDir": "...",
"bundled": false,
"installSource": "import-dev",
"reimportsOnRefresh": false
}
],
"controllers": [
{
"id": "skydimo_serial",
"name": {"raw": "Skydimo Serial"},
"enabled": true,
"version": "1.0.0",
"publisher": "Skydimo",
"language": "lua",
"pluginDir": "...",
"bundled": true,
"installSource": "bundled",
"reimportsOnRefresh": false
}
],
"extensions": [
{
"id": "led_canvas",
"name": {"raw": "LED Canvas"},
"enabled": true,
"version": "1.0.0",
"publisher": "Skydimo",
"language": "native-c",
"abi": "skydimo-extension-c-v2",
"page": {"type": "path", "value": ".../page/dist/index.html"},
"pluginDir": "...",
"bundled": false,
"installSource": "import-dev",
"reimportsOnRefresh": false
}
]
},"id":1}
Each plugin item can include:
| Field | Type | Description |
|---|---|---|
id | string | Plugin ID |
name | LocalizedText | Display name |
enabled | boolean | Whether the plugin is enabled |
version | string | Manifest version |
publisher | string | Manifest publisher |
language | string | Runtime language, e.g. lua or native-c |
abi | string | null | Native ABI identifier for native-c plugins |
repository | string | null | Source repository URL |
license | string | null | License identifier |
pluginDir | string | Resolved runtime plugin directory |
dataDir | string | null | Plugin data directory, if it exists |
bundled | boolean | Whether plugin is bundled with the application |
installSource | string | bundled | import | import-dev | package | manual |
reimportsOnRefresh | boolean | Whether refresh can reimport this plugin from a source queue |
page | object | null | Extension page source, if the extension declares one |
refresh_plugins
Refresh plugin state and apply pending imports.
Parameters: none
→ {"jsonrpc":"2.0","method":"refresh_plugins","id":1}
← {"jsonrpc":"2.0","result":null,"id":1}
Typical effects of refresh:
- Import queued plugins
- Reload plugin registries
- Refresh runtime state so plugin updates are picked up
- Emit plugin-changed events to UI
open_plugin_dir
Open the plugin root directory or one plugin's resolved directory in the system file manager.
Parameters:
| Field | Type | Required | Description |
|---|---|---|---|
pluginId | string | no | If provided, opens this plugin's resolved directory; otherwise opens the plugin root directory |
→ {"jsonrpc":"2.0","method":"open_plugin_dir","params":{"pluginId":"rainbow"},"id":1}
← {"jsonrpc":"2.0","result":null,"id":1}
open_plugin_data_dir
Open a plugin's data directory in the system file manager.
Parameters:
| Field | Type | Required | Description |
|---|---|---|---|
pluginId | string | yes | Plugin ID |
→ {"jsonrpc":"2.0","method":"open_plugin_data_dir","params":{"pluginId":"rainbow"},"id":1}
← {"jsonrpc":"2.0","result":null,"id":1}
delete_plugin
Delete an installed user plugin copy.
Parameters:
| Field | Type | Required | Description |
|---|---|---|---|
pluginId | string | yes | Plugin ID |
deleteData | boolean | no | Whether to delete plugin data directory too |
→ {"jsonrpc":"2.0","method":"delete_plugin","params":{
"pluginId":"my_effect",
"deleteData":true
},"id":1}
← {"jsonrpc":"2.0","result":null,"id":1}
Bundled plugins cannot be deleted directly. Use reset_plugin instead.
reset_plugin
Reset a plugin to default bundled state by removing a user override copy.
Parameters:
| Field | Type | Required | Description |
|---|---|---|---|
pluginId | string | yes | Plugin ID |
resetData | boolean | no | Whether to also reset plugin data |
→ {"jsonrpc":"2.0","method":"reset_plugin","params":{
"pluginId":"rainbow",
"resetData":false
},"id":1}
← {"jsonrpc":"2.0","result":null,"id":1}
get_plugin_dir
Get the plugin root directory path as a string.
Parameters: none
→ {"jsonrpc":"2.0","method":"get_plugin_dir","id":1}
← {"jsonrpc":"2.0","result":"C:/.../plugins","id":1}
set_controller_plugins_enabled
Enable or disable controller plugins.
Parameters:
| Field | Type | Required | Description |
|---|---|---|---|
pluginIds | string[] | yes | List of controller plugin IDs |
enabled | boolean | yes | true to enable, false to disable |
→ {"jsonrpc":"2.0","method":"set_controller_plugins_enabled","params":{
"pluginIds":["skydimo_serial"],
"enabled":true
},"id":1}
Disabling a controller plugin disconnects all devices currently managed by that plugin.
set_effect_plugins_enabled
Enable or disable effect plugins.
Parameters:
| Field | Type | Required | Description |
|---|---|---|---|
pluginIds | string[] | yes | List of effect plugin IDs |
enabled | boolean | yes | true to enable, false to disable |
→ {"jsonrpc":"2.0","method":"set_effect_plugins_enabled","params":{
"pluginIds":["rainbow"],
"enabled":true
},"id":1}
set_extension_plugins_enabled
Enable or disable extension plugins.
Parameters:
| Field | Type | Required | Description |
|---|---|---|---|
pluginIds | string[] | yes | List of extension plugin IDs |
enabled | boolean | yes | true to enable, false to disable |
→ {"jsonrpc":"2.0","method":"set_extension_plugins_enabled","params":{
"pluginIds":["openrgb"],
"enabled":false
},"id":1}
ext_page_send
Send a message to an extension's embedded page.
Parameters:
| Field | Type | Required | Description |
|---|---|---|---|
extId | string | yes | Extension plugin ID |
data | any | yes | Arbitrary JSON data to send |
→ {"jsonrpc":"2.0","method":"ext_page_send","params":{
"extId":"openrgb",
"data":{"action":"refresh"}
},"id":1}
Lua extensions receive this through on_page_message(data). Native-c extensions receive it through on_page_message_json.
Plugin Download Session Commands
These commands support download-and-install flows from remote sources.
start_download_plugin_session
Start a server-side download session from a source URL.
install_from_plugin_session
Install selected plugin IDs from a session into managed plugin storage.
cancel_download_plugin_session
Cancel and clean up a download session.
Exact payload schemas may evolve across development builds. Prefer checking current API data types in your target build when integrating tooling.