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": {}}
        ]
    }
}
FieldRequiredDescription
idyesUnique identifier. No spaces. Must match what the DCC passes as --host.
nameyesDisplay name in the Plugin Manager tab.
versionyesVersion string.
iconyesPath to a 128×128 PNG (relative to plugin root).
commands_diryesPath to your kiosk_*.py files (relative to plugin root).
render_enginesnoList of renderer names for the dropdown. Omit to hide it.
categoriesnoLimit to specific categories (hdri, assets, textures). Omit for all.
default_command_stacksnoWhat new users see before they edit anything.
kiosk_min_versionnoMinimum 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.

behind KioskMeet the maker →