"Guides Meshroom plugin, node-folder, template, submitter,
Scanned 9/8/2026
Install to Claude Code
npx -y skills add VectorSpaceLab/AREX-Skill --skill plugin-system --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Plugin System?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/vectorspacelab-plugin-system)More formats (shields.io, HTML) on the badges page.
---
name: plugin-system
description: "Guides Meshroom plugin, node-folder, template, submitter,
config.json, user-plugin, Rez-plugin, and process-environment discovery
workflows."
disable-model-invocation: true
metadata:
disco-role: operating
license: NOASSERTION
---
# Meshroom Plugin System
Use this route when Meshroom cannot see a custom node/template/plugin, when plugin configuration or process environments are involved, or when a user asks how to package a Meshroom plugin.
## Read First
- [Plugin loading reference](references/plugin-loading-reference.md)
- [Process environments](references/process-environments.md)
- [Troubleshooting](references/troubleshooting.md)
- Run [scripts/check_plugin_folder.py](scripts/check_plugin_folder.py) before debugging a loaded provider.
## Minimum Plugin Shape
```text
plugin-root/
meshroom/
customNodes/
__init__.py
MyNode.py
customTemplate.mg
config.json # optional
venv/ # optional plugin runtime
```
Set `MESHROOM_PLUGINS_PATH` to `plugin-root`, not to the nested `meshroom/` folder. Meshroom scans packages below that folder, loads node descriptor providers, registers `.mg` templates, and constructs a process environment.
## Initialization Order
For programmatic inspection, initialize in this order when needed:
```python
import meshroom
meshroom.setupEnvironment()
import meshroom.core
meshroom.core.initPlugins()
meshroom.core.initNodes()
meshroom.core.initPipelines()
meshroom.core.initSubmitters()
```
- `initPlugins()` loads classic/user/Rez plugin roots.
- `initNodes()` loads built-in nodes plus `MESHROOM_NODES_PATH` folders.
- `initPipelines()` registers templates from explicit template paths and loaded plugins.
- `initSubmitters()` loads submitter packages from `MESHROOM_SUBMITTERS_PATH`.
The CLI may choose a different order for its workflow; do not assume a template is visible before its plugin has been loaded.
## Configuration Rules
`config.json` is an array of entries with `key`, `type`, and `value`. `type: "path"` resolves relative paths against the plugin root when the path exists. User environment variables take precedence over config defaults in the merged process environment.
## Route Elsewhere
- Author the node descriptor itself with [node-descriptors](../node-descriptors/SKILL.md).
- Use a discovered template or run it from the CLI with [cli-pipeline-execution](../cli-pipeline-execution/SKILL.md).
- Debug LocalFarm daemon/task behavior with [local-farm-submission](../local-farm-submission/SKILL.md).

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!