LoupixDeck.PluginSdk
1.25.0
dotnet add package LoupixDeck.PluginSdk --version 1.25.0
NuGet\Install-Package LoupixDeck.PluginSdk -Version 1.25.0
<PackageReference Include="LoupixDeck.PluginSdk" Version="1.25.0" />
<PackageVersion Include="LoupixDeck.PluginSdk" Version="1.25.0" />
<PackageReference Include="LoupixDeck.PluginSdk" />
paket add LoupixDeck.PluginSdk --version 1.25.0
#r "nuget: LoupixDeck.PluginSdk, 1.25.0"
#:package LoupixDeck.PluginSdk@1.25.0
#addin nuget:?package=LoupixDeck.PluginSdk&version=1.25.0
#tool nuget:?package=LoupixDeck.PluginSdk&version=1.25.0
LoupixDeck.PluginSdk
The plugin SDK for LoupixDeck.
It contains only the contracts shared between the LoupixDeck core and dynamically loaded integration plugins — no application logic. Integrations (OBS, Elgato Key Lights, CoolerControl, Argus Monitor, HWiNFO, Windows audio, and third-party plugins) are built against this SDK and shipped independently of the core.
Installation
dotnet add package LoupixDeck.PluginSdk
The host supplies the SDK assembly when it loads a plugin, so a plugin must not
ship its own copy. Exclude the runtime asset in the plugin's .csproj:
<PackageReference Include="LoupixDeck.PluginSdk" Version="1.24.0">
<ExcludeAssets>runtime</ExcludeAssets>
</PackageReference>
Documentation
SDK documentation is available in the Wiki.
Contracts
| Type | Purpose |
|---|---|
LoupixPlugin |
Plugin entry point — one concrete subclass per plugin assembly. |
PluginMetadata |
Identity and versioning of a plugin. |
IPluginCommand |
A user-assignable action contributed by a plugin. |
IDisplayCommand |
A command that additionally renders dynamic text on a touch button. |
IMenuContributor |
Optional: contributes dynamically built submenu entries. |
IPluginHost |
The bridge from a plugin back into the core. |
IPluginSettings |
Per-plugin isolated settings store. |
IPluginLogger |
Logging sink scoped to a plugin. |
CommandContext / CommandDescriptor |
Execution context and declarative command metadata. |
ButtonTargets |
Which button types a command supports. |
MenuNode / DeviceInfo |
Menu and device value types. |
SdkInfo |
The SDK contract version. |
Versioning
The SDK uses SemVer. A plugin declares the SDK version it was built against; the host loads a plugin only when the major version matches.
License
MIT — see LICENSE.
Local development
Building this project produces a .nupkg under ./nupkg (via
GeneratePackageOnBuild). The LoupixDeck core consumes the SDK as a NuGet
package and resolves it from that folder through a local feed declared in the
core repository's nuget.config.
To refresh the package the core builds against:
dotnet build LoupixDeck.PluginSdk.csproj -c Release
Bump <Version> in the .csproj before building when the contract changes.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net9.0 is compatible. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 is compatible. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net10.0
- No dependencies.
-
net9.0
- No dependencies.
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.