222ad10ded85f4f75538902419ce2c394a6ab8de
- package.py: addon manifest (v0.1.0) - server/__init__.py: BaseServerAddon definition - server/ayon_matrix_publish/plugins/publish/integrate_matrix.py: Pyblish plugin that uploads published representations to Matrix rooms during the Integration stage. Supports: - Upload to Matrix content repository (mxc:// URI) - Formatted messages with preview images - Auto room creation per asset - Configurable via Studio Settings or env vars - create_package.py: builds distributable .zip package
ayon-matrix-publish
AYON addon that publishes product representations (images, videos, previews) to Matrix/Element rooms automatically during the publish pipeline.
Architecture
Ayon Publish Pipeline
Collect → Validate → Extract → Integrate
│
▼
IntegrateMatrix plugin
│
┌───────────┴───────────┐
│ Matrix Client (mautrix) │
│ • Upload media │
│ • Send messages │
│ • Create rooms (opt.) │
└───────────────────────────┘
│
▼
Synapse Homeserver
(matrix.niklashmotion.art)
How It Works
- Artist publishes a product in any DCC (Maya, Houdini, Nuke, Blender, etc.)
- After extraction and standard integration, the
IntegrateMatrixplugin runs - For each published representation (thumbnail, preview video, review):
- Uploads the file to the Matrix media repository → gets
mxc://URI - Sends a formatted message to a configured Matrix room with:
- Product name, version, asset, task
- Thumbnail/preview inline
- Link to the AYON product page
- Uploads the file to the Matrix media repository → gets
- (Optional) Creates per-asset or per-task rooms automatically
Configuration
Studio Settings → Matrix Publish:
| Setting | Description |
|---|---|
homeserver_url |
Matrix homeserver (e.g. https://matrix.niklashmotion.art) |
access_token |
Bot access token (from Element → Settings → Help & About) |
room_id |
Target room ID (e.g. !abc123:niklashmotion.art) |
upload_representations |
List of representation names to upload (e.g. ["thumbnail", "preview"]) |
create_per_asset_rooms |
Auto-create rooms per asset (bool) |
message_template |
Jinja2 template for the message text |
Development
# Clone
git clone https://git.niklashmotion.art/Hermes/ayon-matrix-publish.git
cd ayon-matrix-publish
# Install AYON dev dependencies
pip install ayon-python-api mautrix
# Create package
python create_package.py
Dependencies
mautrix— Matrix client SDK (async)ayon-python-api— AYON server communicationJinja2— Message templating (bundled with AYON)
Related
Description
AYON addon: publishes products to Matrix/Element rooms on publish. Uploads representations (images, videos, files) to configurable Matrix rooms.
Languages
Python
100%