MacroDeck.Plugin.Protocol 3.0.0-beta.12

This is a prerelease version of MacroDeck.Plugin.Protocol.
dotnet add package MacroDeck.Plugin.Protocol --version 3.0.0-beta.12
                    
NuGet\Install-Package MacroDeck.Plugin.Protocol -Version 3.0.0-beta.12
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="MacroDeck.Plugin.Protocol" Version="3.0.0-beta.12" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="MacroDeck.Plugin.Protocol" Version="3.0.0-beta.12" />
                    
Directory.Packages.props
<PackageReference Include="MacroDeck.Plugin.Protocol" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add MacroDeck.Plugin.Protocol --version 3.0.0-beta.12
                    
#r "nuget: MacroDeck.Plugin.Protocol, 3.0.0-beta.12"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package MacroDeck.Plugin.Protocol@3.0.0-beta.12
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=MacroDeck.Plugin.Protocol&version=3.0.0-beta.12&prerelease
                    
Install as a Cake Addin
#tool nuget:?package=MacroDeck.Plugin.Protocol&version=3.0.0-beta.12&prerelease
                    
Install as a Cake Tool

MacroDeck.Plugin.Protocol

The wire contracts for the Macro Deck plugin protocol: a versioned HTTP handshake and a JSON WebSocket session that any language can implement. This package is pure contract - types, constants and pure rule functions, no transport.

What is in here:

  • Envelope - ProtocolEnvelope, the tolerant reader and writer, message types and directions.
  • Handshake - registration and session requests and responses, declared capabilities.
  • Capabilities - the capability.* message payloads.
  • Limits, Reconnection, Correlation - timeouts, queue limits, backpressure, backoff, resume and correlation rules, all as pure functions so both peers agree by construction.
  • Errors, Versioning, Serialization - error and close codes, version negotiation, the one fixed JsonSerializerOptions.

If you are writing a plugin in .NET, use MacroDeck.Plugin.Hosting instead - it speaks this protocol for you. Reference this package directly only when implementing the protocol yourself.

The specification lives at docs.macro-deck.app/reference/protocol.

Licensed under Apache-2.0.

Product Compatible and additional computed target framework versions.
.NET 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. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages (3)

Showing the top 3 NuGet packages that depend on MacroDeck.Plugin.Protocol:

Package Downloads
MacroDeck.Plugin.Hosting

DI-first hosting model for out-of-process Macro Deck plugins. Write a plugin as a normal ASP.NET Core application; registration, protocol framing, heartbeats and reconnection are handled for you.

MacroDeck.Plugin.Packaging

The Macro Deck plugin manifest and artifact format: parsing and validating manifest.json, reading and extracting .macroDeckPlugin archives, and the semantic-version ranges compatibility and dependency declarations use. Shared by the host and by tooling that packs or validates plugin artifacts outside it.

MacroDeck.Plugin.Serilog

Serilog sink for Macro Deck plugins. Forwards a plugin's own logs to the host over log.publish, so plugin authors write normal Serilog code and the entries show up in the host's log viewer.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
3.0.0-beta.12 103 9/23/2026
3.0.0-beta.11 249 9/17/2026
3.0.0-beta.7 97 9/16/2026
3.0.0-beta.6 81 9/15/2026
3.0.0-beta.5 101 9/14/2026
3.0.0-beta.4 203 9/11/2026
3.0.0-beta.3 89 9/9/2026
3.0.0-beta.2 89 9/6/2026
3.0.0-beta.1 81 9/6/2026