Local DCC Agent for Plumber Workflow Editor - Enables Maya, Blender, and Houdini operations
Project description
Plumber Agent
Local DCC agent for Plumber Workflow Editor.
Keeps Maya, Blender, Houdini, and Nuke running as persistent background servers so Plumber workflows send operations in ~100ms instead of cold-starting the DCC every time (25–200x faster).
Requirements
- Python 3.8, 3.9, 3.10, 3.11, or 3.12
- pip
- At least one DCC application:
- Maya 2022–2026 (requires
mayapyon PATH, or auto-discovered) - Blender 4.0–5.0+ (auto-discovered from standard install locations)
- Houdini 20.0+ (requires
hythonon PATH, or auto-discovered) - Nuke 13–15 (requires
nukeon PATH, or auto-discovered)
- Maya 2022–2026 (requires
Install
pip install plumber-agent
Upgrade:
pip install --upgrade plumber-agent
Run
Start the agent in the foreground (useful for first-time setup and debugging):
plumber-agent
The agent starts on http://127.0.0.1:8001, connects to the Plumber cloud backend, and auto-discovers your installed DCC applications. A status line is printed for each DCC found:
[OK] Maya 2026 detected at /usr/autodesk/maya2026/bin/mayapy
[OK] Blender 4.4 detected at /Applications/Blender.app/Contents/MacOS/Blender
[--] Houdini not found
Windows Service (recommended for beta testers)
Run the agent as a background Windows Service that starts automatically with Windows:
# Run as Administrator
plumber-agent install-service
plumber-agent start
plumber-agent status
Service management:
plumber-agent stop
plumber-agent restart
plumber-agent logs # tail the log file
plumber-agent uninstall-service
macOS / Linux background process
plumber-agent & # run in background
plumber-agent logs # check logs
Custom Nodes
Place Python files in ~/plumber/custom_nodes/ and they appear automatically in the editor's node menu. No restart required — the agent hot-reloads when files change.
~/plumber/
custom_nodes/
my_studio_node.py ← your nodes go here
vfx_pipeline.py
See the SDK documentation for the full API reference.
Minimal example (~/plumber/custom_nodes/hello.py):
from plumber_sdk import Node, Property, Output, ExecutionContext
class HelloNode(Node):
_description = "Greet the world"
_category = "Examples"
name: str = Property(default="World", label="Name")
greeting: str = Output(type=str, label="Greeting")
def execute(self, context: ExecutionContext) -> dict:
return {"greeting": f"Hello, {self.name}!"}
Diagnostics
plumber-agent version # print installed version
plumber-agent discover # list detected DCC applications
plumber-agent status # show running service status and active sessions
plumber-agent logs # stream the log file
Log file location:
- Windows:
%LOCALAPPDATA%\plumber-agent\plumber_agent.log - macOS / Linux:
~/.plumber-agent/plumber_agent.log
Workspace Variables
Workflows can reference portable paths using $VAR placeholders:
plumber-agent set-var PROJECTS /mnt/studio/projects
plumber-agent set-var RENDERS /mnt/studio/renders
plumber-agent list-vars
In a workflow, use $PROJECTS/my_shot/scene.ma and the agent expands it to the full path on each machine. This lets one workflow JSON run correctly across different artists' workstations.
Troubleshooting
Agent not connecting to the editor
- Confirm
plumber-agent statusshowsrunning. - Check firewall rules — the agent needs outbound HTTPS to
plumber-production-446f.up.railway.app(port 443) and WebSocket on the same host.
DCC not discovered
- Maya: ensure
mayapyis on yourPATH, or setMAYA_LOCATION. - Blender: install to the default location for your OS; the agent scans standard paths.
- Houdini: ensure
hythonis on yourPATH(sourcinghoudini_setupdoes this). - Nuke: ensure
nukeis on yourPATH. - Run
plumber-agent discoverto see exactly which paths were scanned.
Custom node not appearing
- Confirm the file is in
~/plumber/custom_nodes/with a.pyextension. - Run
plumber-agent logsand look for import errors — a syntax error in your file prevents all nodes in that file from loading. - Make sure the class inherits from
Nodeor one of the DCC base classes.
DCC operation is slow or times out
- The first operation in a workflow warms up the persistent server (~1–10 s depending on DCC). Subsequent operations in the same session should be ~100 ms.
- Increase
timeoutin_run_raw_script()for heavy renders or exports.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file plumber_agent-1.1.1.tar.gz.
File metadata
- Download URL: plumber_agent-1.1.1.tar.gz
- Upload date:
- Size: 136.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.1
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4b98abad5064dfe44ad1051cf0e79bdee48644274ebf53b308143b7bb20a746f
|
|
| MD5 |
365f2ab8b7f7fbffcc2d8ade5394a887
|
|
| BLAKE2b-256 |
c58f08866e1d687a2e8d056f575299f7b92f83ad23a72e940cec2d4259dfff09
|
File details
Details for the file plumber_agent-1.1.1-py3-none-any.whl.
File metadata
- Download URL: plumber_agent-1.1.1-py3-none-any.whl
- Upload date:
- Size: 152.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.1
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
bd766e52cd9de62999f714b337d7515a0b86c9ab93a130aefe7de3e567c5799a
|
|
| MD5 |
e37174ef97bc4d5af6e63a59d4652261
|
|
| BLAKE2b-256 |
ed9c95c5a750190f194c36a96d7f86938e65797fb7a168732e76737c29dea394
|