Skip to main content

Installation

Requirements

  • A C++23 compiler (GCC, Clang, or MSVC). Because no standard-library types cross the host ↔ plugin boundary, you do not need to match the compiler the host was built with.
  • CMake 3.28 or newer.
  • A copy of FrameLift to load your plugin into.

You do not need any third-party UI, logging, image, or JSON library. The SDK is dependency-free (it builds against Qt) — see the Introduction for why.

Get the SDK

The SDK is published as a framelift-sdk-<ver>.zip archive attached to each tagged FrameLift release. Download and unpack it anywhere:

framelift-sdk-<ver>/
├── CMakeLists.txt # skeleton build root (declare your plugin here)
├── cmake/
│ ├── FrameLiftSdk.cmake # add_framelift_plugin() + the FrameLiftSdk target
│ ├── FrameLiftSdkConfig.cmake # find_package(FrameLiftSdk) entry point
│ └── FrameLiftSdkConfigVersion.cmake
├── include/framelift/ # public headers (umbrella: core.h, services.h, platform.h)
├── src/ # SDK helper sources, compiled into your plugin
├── README.md
└── LICENSE

Verify your toolchain with an example

Worked example plugins live in the separate FrameLift-Examples repository. Building one against the SDK is the fastest way to confirm your toolchain is set up correctly. Clone the repo, point it at your unpacked SDK, and build:

cmake -B build -DFRAMELIFT_SDK_DIR=/path/to/framelift-sdk-<ver>
cmake --build build
# → build/plugins/framelift.helloplugin.so

Plugin DLLs/SOs are emitted under build/plugins/ with lowercase artifact names: the artifact is publisher.plugin (here framelift.helloplugin). If that file is produced, your environment is ready.

Load a plugin into FrameLift

  1. Copy the built plugin DLL/SO into the plugins/ directory next to the framelift executable.

  2. Launch FrameLift. Every plugin is enabled by default — there is no opt-in list to maintain. To stop a specific plugin from loading, set its id to disabled in plugins.ini in the FrameLift config directory:

    example.hello_plugin=disabled

    (Plugins can also be toggled from Settings → Plugins, which writes the same file. See the Configuration Reference.)

  3. A plugin whose embedded ABI version does not exactly match the host's is skipped, and the reason is logged.

Next

Continue to Your First Plugin to write one from scratch.