Custom Plugins
Build a custom plugin to integrate a DCC that Kiosk doesn't ship with.
A custom plugin adds a new DCC tab to Kiosk’s Plugin Manager — useful for integrating a DCC that Kiosk doesn’t ship with (Nuke, Resolve, an in-house tool).
A plugin is just a folder with a manifest.json and a commands/ subfolder. No compilation, no installer.
Custom plugins are a Pro feature. The commands inside a plugin follow the same rules as Custom Commands.
Building for an AI assistant? Download the full guide as raw Markdown and hand it to your LLM of choice: plugin-development.md. The companion extension guide is at extension-development.md.
Folder structure
Nuke/
├── manifest.json
├── icon.png
└── commands/
└── kiosk_send_to_read.py
manifest.json
{
"id": "Nuke",
"name": "Nuke",
"version": "1.0.0",
"icon": "icon.png",
"commands_dir": "commands",
"render_engines": ["Nuke"],
"default_command_stacks": {
"assets": [
{"command": "kiosk_send_to_read", "active": true, "args": {}}
]
}
}
| Field | Required | Description |
|---|---|---|
id | yes | Unique identifier. No spaces. Must match what the DCC passes as --host. |
name | yes | Display name in the Plugin Manager tab. |
version | yes | Version string. |
icon | yes | Path to a 128×128 PNG (relative to plugin root). |
commands_dir | yes | Path to your kiosk_*.py files (relative to plugin root). |
render_engines | no | List of renderer names for the dropdown. Omit to hide it. |
categories | no | Limit to specific categories (hdri, assets, textures). Omit for all. |
default_command_stacks | no | What new users see before they edit anything. |
kiosk_min_version | no | Minimum Kiosk version required. |
Activating
In Plugin Manager → Custom Plugins Folder, point Kiosk at the folder that contains your plugin folder (the parent of Nuke/). Restart Kiosk — the tab appears.
If it doesn’t appear, check %APPDATA%\Kiosk\kiosk-<pc>.log for kiosk.plugins entries, or look for the ⚠ N plugins failed to load button in the Plugin Manager footer.
Making exports reach the DCC
The plugin folder covers the Kiosk side. For assets to actually land inside the DCC, you also need a small Python script running inside the DCC that launches Kiosk with a session ID, then watches a shared folder for export.json and dispatches the command stack when it arrives.
Use the bundled Blender plugin (Plugins/Blender/plugin/kiosk_blender_plugin.py) as a starting point — it implements the full round-trip. The helpers in Plugins/Common/kiosk_plugin_core.py (build_kiosk_launch_cmd, import_modules_from_folder, process_data) handle the platform-specific parts and are shared by all bundled DCC plugins.
Distribution
Point everyone’s Custom Plugins Folder at a network share containing the plugin folder. Updating the share updates everyone on their next restart. Kiosk never writes to the custom plugins folder.
To override a bundled plugin, set your custom plugin’s id to match (e.g. "id": "Maya"). Kiosk loads yours instead.