manage_effects
Edits a clip's effect stack (ordered, per-effect enable). action: 'add' (type; returns the new effect's id) | 'remove' (effectId) | 'move' (effectId + toIndex — the order IS the render order) | 'toggle' (effectId + enabled) | 'set' (effectId + params patch, clamped to the effect's ranges) | 'curve' (effectId + curve + points). Types: 'colorBasic' (Lumetri Basic Correction-compatible: temperature/tint -100..100, exposure -5..5 stops, contrast/highlights/shadows/whites/blacks -100..100, saturation 0..300, vibrance -100..100), 'colorWheels' (Resolve lift/gamma/gain/offset — {group}Master/{group}R/G/B; lift/gamma 0 neutral, gain 1, offset printer points 25 neutral), 'lut' (.cube from the project library — set resource), 'curves' (tone curves), 'hueCurves' (hue-vs-hue/sat/lum).
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| type | No | Effect type for 'add'. | |
| curve | No | For 'curve': which curve to replace. 'curves' effect: master|r|g|b (tone, identity = [0,0,1,1]); 'hueCurves': hueHue|hueSat|hueLum (x = hue with red at 0, y 0.5 = untouched). | |
| token | Yes | The session token `connect` returned. Pass it on every call — it says which browser to drive. | |
| action | Yes | add | remove | move | toggle | set | curve | |
| clipId | Yes | Target clip. | |
| params | No | For 'set': partial param patch, e.g. { exposure: 1.5 }. | |
| points | No | For 'curve': flat control points [x0,y0,x1,y1,…] in the unit square. | |
| enabled | No | For 'toggle'. | |
| toIndex | No | Target position for 'move' (0 = applied first). | |
| effectId | No | Effect instance id (from a previous add or get_timeline). | |
| resource | No | For 'set' on resource effects ('lut'): the LUT's library name (a .cube imported into the project). Empty string clears it. | |
| projectId | Yes | Project id from get_projects. | |
| timelineId | Yes | Target timeline. |