Xune.Plugins.Sdk
1.0.0-alpha.1
dotnet add package Xune.Plugins.Sdk --version 1.0.0-alpha.1
NuGet\Install-Package Xune.Plugins.Sdk -Version 1.0.0-alpha.1
<PackageReference Include="Xune.Plugins.Sdk" Version="1.0.0-alpha.1" />
<PackageVersion Include="Xune.Plugins.Sdk" Version="1.0.0-alpha.1" />
<PackageReference Include="Xune.Plugins.Sdk" />
paket add Xune.Plugins.Sdk --version 1.0.0-alpha.1
#r "nuget: Xune.Plugins.Sdk, 1.0.0-alpha.1"
#:package Xune.Plugins.Sdk@1.0.0-alpha.1
#addin nuget:?package=Xune.Plugins.Sdk&version=1.0.0-alpha.1&prerelease
#tool nuget:?package=Xune.Plugins.Sdk&version=1.0.0-alpha.1&prerelease
Xune.Plugins.Sdk
SDK for building out-of-process plugins for the Xune music player.
Xune plugins run in their own OS-sandboxed child processes and communicate with the host over JSON-RPC. The SDK provides the plugin base class, lifecycle hooks, event subscriptions, and service abstractions. You implement PluginBase, declare capabilities in plugin.json, and Xune handles process isolation, IPC, and permission prompts.
Install
dotnet add package Xune.Plugins.Sdk
Xune.Plugins.Protocol is pulled in transitively.
Minimal plugin
using Xune.Plugins.Sdk;
using Xune.Plugins.Protocol.Dto;
public sealed class HelloPlugin : PluginBase
{
public override string Id => "hello";
public override string Name => "Hello";
public override string Version => "1.0.0";
public override string Description => "Logs every track change";
public override string Author => "Your Name";
protected override Task OnStartAsync(CancellationToken ct)
{
Subscribe<TrackChangedDto>(evt =>
{
Logger.LogInformation("Now playing: {Title}", evt.CurrentTrack?.Title);
return Task.CompletedTask;
});
return Task.CompletedTask;
}
}
With a plugin.json alongside:
{
"$schema": "https://raw.githubusercontent.com/xune-software/xune-plugins-sdk/main/plugin-schema.json",
"id": "hello",
"name": "Hello",
"version": "1.0.0",
"author": "Your Name",
"sdkVersion": "1.0",
"entryPoint": "HelloPlugin.dll",
"capabilities": [
{ "type": "event-listening", "scopes": ["playback"] }
]
}
Documentation
Full plugin development guide, capability reference, and packaging instructions live in the repo README.
License
MIT
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. 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 was computed. 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. |
-
net8.0
- Microsoft.Extensions.Logging.Abstractions (>= 9.0.10)
- Xune.Plugins.Protocol (>= 1.0.0-alpha.1)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 1.0.0-alpha.1 | 121 | 4/11/2026 |