Plugin API overview
The Yrendr 1.0.0 plugin API is a host-driven extension model. Plugins register processing features; Yrendr owns project persistence, timeline state, Track/Master routing, UI integration and failure isolation.
Supported extension types
A package can register any combination of:
- video effects with
register_video_effect(); - audio effects with
register_audio_effect(); - procedural generators with
register_generator(); - timeline processors with
register_timeline_processor().
Effects and generators can declare native parameters, presets, randomization, bypass/time-dependency predicates and an optional custom editor. Timeline processors use host-owned parameter UI and return validated actions/outputs instead of mutating the live project.
Choose the appropriate UI model
Use PluginParameterDefinition for ordinary parameters such as sliders, knobs, toggles, choices, segmented choices, XY pads, colors, curves, EQ controls and file/folder pickers.
Use custom_editor= only when an effect or generator needs an inherently visual interface such as a canvas, node surface, meter or bespoke gesture system.
Note: A custom editor does not replace the persisted parameter model. Declared parameters remain the stable state passed to preview and render processors.
Stable identifiers
Effect and processor references are package-scoped:
<plugin_id>:<effect_id>
<plugin_id>:<processor_id>
Caution: Treat package, effect and processor IDs as persistent API. Changing an ID can leave existing project references unresolved.
Host/plugin boundary
Plugins should use the public API instead of reaching into editor internals:
- effects and generators process host-provided buffers and context;
- timeline processors receive a detached project snapshot;
- timeline changes return as validated action dictionaries;
- editor-owned media rendering is requested through
runtime.render_media; - custom editors use the host modal/window system and preserve
window_key; - Yrendr owns persistence, undo/redo integration, routing and error isolation.