About davinci-resolve-fusion
A reference and helper-script skill for writing Lua or Python automation for DaVinci Resolve and creating or editing Fusion compositions, macros, and animations. It is intended for people building Resolve workflows, with guidance that distinguishes authoritative API documentation from older Fusion references.
Key features
- 01Resolve scripting API reference
- 02Lua and Python examples
- 03Fusion macro authoring guidance
- 04Animation and template references
- 05Scripts for API and manual updates
Use cases
- 01Automating timelines, media pools, and rendering
- 02Creating or editing Fusion macros
- 03Building animated Fusion compositions
- 04Making reusable transition or title templates
Install
Copy the command and run it in a terminal.
npx skills add https:/ / github.com/ tmoroney/ auto-subs --skill davinci-resolve-fusionAfter installing, type/davinci-resolve-fusionin Claude Code to confirm it loaded.
Bundled files
References and scripts installed along with SKILL.md.
references/animation.mdreferences/fusion-manual/00-index.md01-introduction.md02-scripting-languages.md03-scripting-and-debugging.md04-object-model.md05-gui-and-askuser.md06-class-hierarchy.mdreferences/fusion-manual/classes/bezierspline.mdbinclip.mdbinitem.mdbinmanager.mdbinstill.mdchildframe.mdchildgroup.mdcomposition.mdfloatviewframe.mdflowview.mdfontlist.mdfuframe.mdfusion.mdfuview.mdgl3dviewer.mdglimageviewer.mdglpreview.mdglview.mdglviewer.mdgradient.mdgraphview.mdhotkeymanager.mdDetails
From the project READMEDaVinci Resolve & Fusion
This skill helps you write DaVinci Resolve automation scripts (Lua/Python) and build or edit
Fusion compositions, macros (.setting files), and animations. It bundles a reference set
and helper scripts so you can build new things, not just modify existing ones.
Source of truth — read this first
When sources disagree, trust them in this order:
references/resolve-api.txt— the official Resolve scriptingREADME.txt, kept as plain text (it is monospace column-aligned and unreadable rendered as Markdown). This is authoritative for the DaVinci Resolve API. It is a snapshot; if a Resolve install is present, the live file at…/Blackmagic Design/DaVinci Resolve/Developer/Scripting/README.txtis the very latest and supersedes the snapshot. Re-sync it after a Resolve update withscripts/update-resolve-api.sh(macOS/Linux) orscripts/update-resolve-api.bat(Windows).- Tested, working code — a real script that runs correctly beats any doc for usage details (exact parameter shapes, return values, ordering).
references/fusion-manual/— the Fusion 8 scripting manual. Use it for Fusion-specific concepts the Resolve API doc does not cover (object model, splines, tools, GUIs). It was converted from a PDF and is an older snapshot that can be outdated or inaccurate, so defer to (1) and (2) on anything they also describe.
Every manual file carries a banner repeating this, so the warning travels with the content even when only one file is open.
What's here
references/
resolve-api.txt # Resolve scripting API — SOURCE OF TRUTH (plain text; view monospace)
animation.md # Fusion animation: keyframes, handles, easing, connecting props
macro-authoring.md # Building .setting macros, exposing/hiding controls
fusion-templates.md # Transitions, generators, titles, effects as macros
fusion-manual/
00-index.md # START HERE for the manual — map of every section & class
01-introduction.md … 06-class-hierarchy.md
classes/<ClassName>.md # one file per Fusion class (46 of them)
scripts/
run-script.sh / .bat # run a script via fuscript (Studio only)
update-resolve-api.sh / .bat # re-sync resolve-api.txt from your Resolve install
split-fusion-manual.py # regenerate fusion-manual/ from a converted manual PDF
How to use it
Writing a Resolve automation script (timelines, media pool, rendering, project
management): start from references/resolve-api.txt. For working examples, see "Example
scripts" below. See "Running a script" below for how to actually run it.
Example scripts
DaVinci Resolve ships representative example scripts. They are not bundled into this skill (to
avoid redistributing Blackmagic's code); read them from your local install instead, in the
Examples subfolder of the Scripting folder:
- macOS:
/Library/Application Support/Blackmagic Design/DaVinci Resolve/Developer/Scripting/Examples - Windows:
%PROGRAMDATA%\Blackmagic Design\DaVinci Resolve\Support\Developer\Scripting\Examples - Linux:
/opt/resolve/Developer/Scripting/Examples(or/home/resolve/...)
For real, working Resolve API usage (not just illustrative examples), the most reliable
reference is the AutoSubs Lua server, autosubs_core.lua, in the AutoSubs project. It shows
the API used in production for timelines, the media pool, rendering, and driving the Fusion
macro.
Running a script
There are two ways to run a script, depending on the Resolve edition:
Menu method (works on every edition, free and Studio). Place the .lua/.py file in
Resolve's Fusion Scripts folder, then in Resolve go to Workspace → Scripts (top menu) and
pick it from the list. Put it under the Utility subfolder to have it listed on all pages.
The Scripts folder (from references/resolve-api.txt) is:
- macOS:
~/Library/Application Support/Blackmagic Design/DaVinci Resolve/Fusion/Scripts(or/Library/...for all users) - Windows:
%APPDATA%\Roaming\Blackmagic Design\DaVinci Resolve\Support\Fusion\Scripts(or%PROGRAMDATA%\...for all users) - Linux:
$HOME/.local/share/DaVinciResolve/Fusion/Scripts(or/opt/resolve/Fusion/Scripts)
External runner (DaVinci Resolve Studio only). scripts/run-script.sh <file.lua>
(macOS/Linux) or scripts/run-script.bat (Windows) invoke Resolve's fuscript directly, so
you can run a script from anywhere without going through the menu. This is often more
convenient, especially for AI agents, but external/fuscript invocation of the scripting API
requires Resolve Studio — it does not work on the free edition. The menu method above works
on both, so it's the reliable fallback.
Building or editing a Fusion macro (.setting): read references/macro-authoring.md
for the two-layer control model (UserControls vs published InstanceInputs) and the common
gotchas. For tool/class details, open references/fusion-manual/00-index.md and jump to the
specific class file.
Animating (keyframes, easing, character/word effects): read references/animation.md.
The single biggest gotcha: SetKeyFrames() handle coordinates are relative, but
.setting files store them absolute.
Making a reusable template (transition/generator/title/effect for the Edit & Cut
pages): read references/fusion-templates.md.
Navigating the Fusion manual efficiently
The manual is large, so it is split into one file per topic and per class. Do not read it
whole. Open references/fusion-manual/00-index.md, find the section or class you need from
its one-line summaries, then open only that file. To locate something by keyword, grep across
references/fusion-manual/ rather than scrolling.
To regenerate the split (e.g. from a newer manual), convert Blackmagic's Fusion scripting PDF
to Markdown for free with Mistral Document AI
(https://console.mistral.ai/build/document-ai/ocr-playground), then run
python3 scripts/split-fusion-manual.py <converted.md>.
Tips
- Lua and Python are both supported by Resolve/Fusion; the object model is the same across
both — see
fusion-manual/02-scripting-languages.md. - Connect an input to a modifier with
tool.Input = modifier.Result; disconnect withtool.Input = nilthentool:SetInput(...)for a static value. - After changing a macro's published controls, reload the comp or drop a fresh node instance — the Inspector layout is cached per instance.
- For editing
.settingfiles, the Fusion Setting Highlighter VS Code extension adds proper highlighting (incl. embedded Lua). Seereferences/macro-authoring.mdfor the install command, or https://github.com/tmoroney/fusion-setting-highlighter.