DeckBridge for DaVinci Resolve
Every DaVinci Resolve command on your Stream Deck - live.
DeckBridge puts DaVinci Resolve on your Stream Deck as a native plugin, not a profile pack. A profile pack is a bag of static hotkeys; DeckBridge holds a live connection to Resolve. Keys light with Resolve's real playback state, timecode streams to a dial, the Fairlight mixer echoes real fader levels, and the deck re-skins as you move between Resolve's pages.
Every keyboard-accessible Resolve command - all 491 of them - can be placed on any key. When a key fires, it presses your active keymap's shortcut, not a hardcoded one: rebind a command in Resolve's Keyboard Customization and the deck follows within seconds. Commands with no binding render greyed instead of firing the wrong thing.
DeckBridge has no telemetry. Nothing leaves your machine unless you copy and paste it yourself (section 10.3).
| Operating system | macOS 12 or later · Windows 11. Windows 10 runs keystroke-only, best effort (no mixer or timecode over MIDI). |
|---|---|
| DaVinci Resolve | Free and Studio, versions 19, 20 and 21. |
| Stream Deck app | Version 7.1 or later. |
| Stream Deck devices | Stream Deck +, MK.2, XL, Mini, Neo, Studio, + XL and Galleon 100 SD - each with curated starting profiles (section 9). Dial and touch-strip features need a deck with dials (Stream Deck +, + XL, Studio, Galleon 100 SD). |
Newer Resolve versions than the tested band still work in most cases - diagnostics carry a gentle untested-version note rather than refusing.
Get DeckBridge from the Elgato Marketplace. One click installs it into the Stream Deck app, on macOS and Windows alike - there is no separate installer.
On install, the Stream Deck app lays down the DeckBridge profiles for your device - one per Resolve page (Edit, Color, Fairlight, and the rest). Your deck is populated instantly: transport cluster, the Status key (and on button-only decks the Timecode corner tile beside it), and - on dial decks - the page and mixer dials. As Resolve changes pages, the deck switches to that page's profile by itself. Every profile is a starting point, not a cage: edit the Color profile and only Color changes, and any profile can grow extra Stream Deck pages of its own (section 9). A deck plugged in later is offered its profiles automatically, once.
From the first launch, the Status key on your deck is the setup guide's index: whenever something needs you, the tile names it, and pressing the key opens the matching guide section in your browser. A green check means everything works. (Every settings panel also carries an Open Setup Guide button - DeckBridge never opens a browser by itself.)
Most people never see this step. DeckBridge presses keys on Resolve's behalf, which macOS gates behind the Accessibility permission - granted to the Stream Deck app (DeckBridge runs inside it), which usually already has it for its own Hotkey actions. A red Grant Access tile appears only when the permission is genuinely missing: a fresh Stream Deck install, a declined prompt, or a macOS upgrade that reset it.
On a fresh install, macOS asks first with its own dialog - "Stream Deck" would like to control this computer using accessibility features. Choosing Open System Settings from it lands directly on the right pane. If it was dismissed or declined, the steps by hand:
DeckBridge never sends a keystroke while this tile is red - a key that can't reach Resolve does nothing rather than typing into whatever has focus.
Everything else already works without this step - transport, every command, page following and timecode need no MIDI at all. MIDI adds the extras: faders you can turn from the deck and transport keys that light with Resolve's real playback state. Skip it freely and come back whenever.
Nothing touches your MIDI configuration until you press the amber Enable MIDI tile on the deck. Pressing it once:
DeckBridge Out and
DeckBridge In - in about two seconds;
IAC Driver
DeckBridge Out and MIDI Output to IAC Driver DeckBridge
In
As on macOS, MIDI is the optional extra: without it, transport, all 491 commands, timecode and page following still work over keystrokes - only the mixer faders and transport lights are off, and the deck says so honestly instead of pretending. Unlike macOS there is no Enable MIDI press: the loopback pair is created automatically, and nothing system-wide is modified without room to undo.
Windows MIDI Services (WMS) is Microsoft's current MIDI stack, and on Windows 11 24H2 or later it ships with Windows - the loopback transport and the MIDI service are already on your PC. There is nothing to download and nothing to install. DeckBridge adds its own two loopback pairs to the shared Windows MIDI configuration (it needs no administrator rights to do so, and leaves every other entry in that file untouched); Windows starts its MIDI service on demand and publishes them. Zero further clicks.
On every startup DeckBridge checks for its two loopback pairs -
DeckBridge Out and DeckBridge In - and declares them when
absent, writing them into the WMS configuration as permanent. In practice
they show up as soon as the Windows MIDI service next starts, which normally means
restarting the Stream Deck app; a restart of the PC always does it. Wire Resolve
once and the wiring survives every reboot after that.
In Resolve, open DaVinci Resolve → Preferences → System → Control Panels and configure the Fairlight MIDI console:
| Resolve setting | Select exactly |
|---|---|
| MIDI In | DeckBridge Out (B) |
| MIDI Out | DeckBridge In (B) |
These are two different devices, and the crossover is deliberate: the bus
DeckBridge writes ("DeckBridge Out") is the one Resolve reads, and
vice versa. Always pick the (B) endpoints - the (A) ends
of each pair belong to the plugin. A trailing endpoint number after the
(B) (say, DeckBridge Out (B) 3) is normal - Windows
numbers the endpoints. Then restart Resolve once.
On a Windows that predates the in-box MIDI stack (anything before Windows 11 24H2) there is nothing for DeckBridge to configure. Install loopMIDI instead - DeckBridge finds and uses your loopMIDI port automatically. It is also what DeckBridge uses on a newer Windows if you already have it. With no MIDI stack at all, faders park with an honest amber note on the Status key - everything keystroke-driven keeps working.
Both editions get the same features. They differ only in how DeckBridge reads Resolve's live state:
The amber Start Bridge tile appears only when that automation needs a hand - most commonly because a modal dialog is open in Resolve, which makes Resolve's menus silently inert. Close any open dialog, or run Workspace → Scripts → DeckBridge yourself (one click); the tile clears within a couple of seconds. Upgrades handle themselves: an out-of-date bridge left running inside Resolve is detected, retired and replaced automatically.
During video-page playback, Resolve Free suspends its script host entirely; the timecode readout switches to an amber freeroll estimate and re-anchors exactly on stop. This is by design, on Studio too (section 10.2).
DeckBridge ships ten actions. Drag any of them from the Stream Deck app's action list onto any key or dial; the starting profiles (section 9) pre-place the most useful arrangement per device. Actions marked dial require a deck with dials (Stream Deck +, + XL, Studio, Galleon 100 SD) - on button-only decks they don't appear in the action list.
Play, stop, in/out marks and every transport keystroke - keys light with Resolve's real playback state (over MIDI, section 4.2/5). In the bundled per-page profiles each key is pinned to its page's control. Dropped into your own profile with no command assigned, a Transport key instead morphs with Resolve's page: the same physical key re-skins as you move Edit → Color → Fairlight. The settings panel also offers label and icon overrides and a per-command key override.





Any DaVinci Resolve command on a key. Open the key's settings and search the picker across the full keyboard-customization inventory - all 491 commands. The key fires your active keymap's shortcut for that command at press time. Commands with no binding in your keymap render greyed and light up by themselves the moment you assign one in Resolve (section 8).


A ± command pair on a dial - printer lights, stills, versions, nodes. Rotate to fire the plus/minus commands; hold and rotate to fire the quarter-step variants where they exist; a press-and-release without rotation fires an optional third command. The dial's LCD ring echoes your input and lights the firing side briefly.

A live Fairlight channel strip on a dial: rotate for the fader, press to mute, with real levels echoed back from Resolve over MIDI. The touch strip segment shows the strip's name and level, and its M / S / R letters are tap targets: tap the strip to mute, solo or record-arm without leaving the deck. The fader step per detent is adjustable in the dial's settings (0.5–10%, default 2%). On the Color page the mixer dials morph into Red/Green/Blue printer-light knobs.

Live timeline timecode on the touch strip; rotate the dial to jog the playhead. The readout's colour flags exact versus estimated: during playback Resolve's API goes quiet, so the timecode freerolls (shown amber) and re-anchors exactly on stop. Jogging stops when the dial stops - no trailing queue of keystrokes.


Follows Resolve's current page and doubles as a status panel: its LCD shows the page Resolve reports plus API and MIDI health dots. Rotate to jog the playhead; press-and-rotate to switch Resolve pages (a bare press deliberately does nothing - play lives on the transport keys). A page change made anywhere - this dial, a keyboard shortcut, Resolve's own page bar - is reflected within a tick. Its settings panel is the plugin's settings home, shared with the Status key (section 7.7): MIDI port selection, keymap import, the "Your keys" readout, Copy Diagnostics, "Reinstall default profiles" (section 9), and the "Remove DeckBridge data…" button all live here.

Shows the single worst thing that still needs setting up - Accessibility, Resolve, MIDI, bridge - and fixes or explains it on press. The tile wears the DeckBridge bridge mark: green deck line when everything works, an amber or red sawtooth deck line when something needs fixing, and a dimmed mark with its eyes closed (and a Zz) while Resolve is asleep. In the amber Enable MIDI state, the press itself performs the commissioning (macOS); in every other state, the press opens the setup guide at the matching section. Hold (about half a second) for the deck's next page of keys - the tile's right-edge chevron - so a profile with extra Stream Deck pages stays navigable on decks whose layout has no room for the app's page keys. Its settings panel is the plugin's settings home, the same panel as Page & Settings (section 7.6). The full state table is in section 10.1.



The dial-less deck's status panel: live timecode, current page, and connection health on one key. Tap for the next Resolve page (Edit → Color → …); hold (about half a second) for the deck's previous page of keys - the tile's left-edge chevron. In the bundled button-deck profiles it sits bottom-left, with the Status key bottom-right, so the two corner tiles page the deck left and right when you add extra Stream Deck pages to a profile.

Frame-stepping on a button deck, placed as a back/forward pair. On the Edit page: tap for one frame, hold to accelerate. On other pages it morphs into that page's natural prev/next - markers, stills, keyframes, in/out - because bare arrow-key frame steps only act on the Edit page.




A mixer fader on buttons. Place two side by side and they draw one fader across both keys - left steps down, right steps up; tap for one step, hold to repeat, and press both halves together to toggle mute. Pick the strip in the left key's settings. The top-right corner wears the strip's live state as coloured letters - grey M muted, green S soloed, red R record-armed - straight from Resolve's mixer (MIDI required). A key on its own shows the fader level with tap-to-mute. On the Color page the pair becomes a printer-light control - Master by default, or any of the seven lights via the left key's Printer light setting; the pair wears that light's colour, so a Master/Red/Green/Blue bank reads at a glance.




Normally there is nothing to configure. DeckBridge reads the keymap you already use directly from Resolve's own preference files - built-in presets (DaVinci, Premiere, FCP, Avid, Pro Tools) and fully custom ones alike. Rebind a command in Resolve's Keyboard Customization, save, and the deck follows within seconds; no restart, no re-mapping. This is also why keys grey out: a greyed command key means that command has no binding in your active keymap - assign one in Resolve and the key lights up by itself.
For shared machines or locked-down preferences, an exported preset can be imported manually as an override:
.txt fileThe importer is strict on purpose: a malformed file is rejected whole and DeckBridge falls back to its shipped defaults - never a partial import, never wrong keys.
Each supported device gets a curated profile per Resolve page - eight profiles named after the pages (Media, Cut, Edit, Fusion, Color, Fairlight, Deliver, Photo). As Resolve changes pages, the deck switches to the matching profile by itself. This is what makes customization safe and scoped:
The per-device starting layouts:
| Stream Deck + | 4×2 keys: the page's transport cluster plus the Status key. All four dials filled: the combined Page & Settings/status dial, then three mixer dials (Red/Grn/Blu printer knobs on Color). The dedicated Timecode Dial action remains available for a big standalone readout. |
|---|---|
| MK.2 (5×3) | Transport cluster on top; the dial behaviours recomposed for buttons on the middle row - Jog back/forward pair and the two-key spanned Fader Pair; the page's command row beneath, bracketed by the corner tiles: Timecode bottom-left, Status bottom-right. |
| XL (8×4) | Transport row on top, then two full rows of page-specific commands that change with Resolve's page - node tools on Color, trim tools on Edit, export and proxy controls on Deliver - and a session row (save, undo, import media, project manager, new timeline) bracketed by Timecode bottom-left and Status bottom-right. |
| Mini (3×2) | Four transport keys plus the Timecode and Status corner tiles. |
| Neo (4×2) | Six transport keys plus the Timecode and Status corner tiles. |
| Studio (16×2) | The XL curation reflowed onto the rack's two long rows; dials carry Page & Settings and a mixer strip. |
| + XL (9×4) | The XL grid plus a live ninth column (Timecode, Jog pair, Status) and six dials: Page & Settings, four mixers, Timecode Dial. |
| Galleon 100 SD (3×4) | Six transport keys, the Timecode/Jog row, two command keys and Status; Page & Settings and mixer dials. |
| Tile | Meaning | Fix |
|---|---|---|
Grant Access | macOS Accessibility not granted - keystrokes are impossible | §4.1 |
Open Resolve | Resolve isn't running (or has no project/timeline open) | Launch Resolve; the deck lights up on its own |
Enable MIDI (macOS) | MIDI not yet commissioned - waiting for your one-time consent | §4.2 - press the key |
MIDI Setup (macOS, amber) | A MIDI write failed; your original configuration was restored intact | §4.2, then try Enable MIDI again |
MIDI Setup (macOS, red) | The automatic restore could not be verified - your backup is safe; we should talk | §10.3, email us |
Start Bridge | Resolve Free: the in-Resolve bridge isn't running | §6 |
Install MIDI (Windows) | This PC predates the in-box Windows MIDI stack (before 11 24H2) - mixer and fader echo off; everything keystroke-driven still works | §5.4 - install loopMIDI, then restart the Stream Deck app |
Restart PC (Windows) | The MIDI plumbing is present and the DeckBridge loopbacks are declared, but Windows hasn't published the ports yet | §5.2 - restart the PC (Resolve won't pick up ports that appeared after it started) |
MIDI Setup (Windows) | MIDI isn't connected - mixer and fader echo off; keys and timecode still work. Most often the Resolve side isn't pointed at the DeckBridge endpoints | §5.3 first; §5.1/§5.4 if no DeckBridge endpoint is listed at all |
Green check | Everything works | - |
DeckBridge Out (B) and MIDI
Out DeckBridge In (B) - two different devices, both with
the (B) suffix, and the In/Out crossover is correct as written
(section 5.3). Restart Resolve after changing it.Every DeckBridge settings panel has a Copy Diagnostics button. One click copies a plain-text snapshot: plugin and Resolve versions, channel health, your active keymap, the last MIDI error if any, and the last 50 log lines - no media, no project contents, no personal data. Paste it into an email to support@deckbridge.io; we can usually answer from that alone. Nothing is ever sent automatically.
Runtime logs live in DeckBridge's app-data directory:
| macOS | ~/Library/Application Support/com.deckbridge.resolve/logs |
|---|---|
| Windows | %APPDATA%\com.deckbridge.resolve\logs |
Copy Diagnostics already includes the tail of the newest log; you rarely need to open these by hand.
The Stream Deck app's uninstall removes the plugin itself but cannot run any cleanup, so do the cleanup first:
DeckBridge <Device>
<Page>, 8 per supported deck - in the Stream Deck app's
profile preferences. The Stream Deck SDK offers no profile-delete API,
so the cleanup button cannot remove these for you.
Prefer to do it by hand, or removed the plugin first? Delete
~/Library/Application Support/com.deckbridge.resolve (macOS) or
%APPDATA%\com.deckbridge.resolve (Windows); remove DeckBridge
from Resolve's Workspace → Scripts folder; and on macOS delete the two
DeckBridge buses in Audio MIDI Setup → MIDI Studio → IAC Driver.
One email with one Copy Diagnostics paste usually settles it: support@deckbridge.io - every DeckBridge settings panel also has a Get Support button that opens the support page, which carries the FAQ, a contact form and anything newer than this manual (deckbridge.io/support); the setup guide at deckbridge.io/setup is what the deck's Status key links into.
Purchases, receipts and refunds are handled by Elgato under the Marketplace refund policy - request refunds from your Marketplace account, not by email to us.
Privacy in one line: DeckBridge has no telemetry - nothing leaves your machine unless you paste it.