A C# library that manages communication with the Stream Deck, allowing you to focus on actually writing your plugin's logic.
This toolkit is still a work in progress. It is useable and is currently feature complete for my needs, but there might still be some bugs or rough edges. If you encounter any issues or want to request a feature, please head to the Discussions section.
Expect breaking changes soon, especially around naming. I intend to move away from the "streamdeck" and "sd" naming conventions.
There is currently no NuGet package, so you'll have to clone the repository. I suggest starting with the sample plugin as your base.
- Take a look at the wiki for usage instructions and examples.
- Full API documentation can be found here, if you're into that sort of thing.
Discussions: Start here for support and general questions about the toolkit. Questions about plugins that use this toolkit should first be directed toward their developers.
- Encapsulates all the communication with the Stream Deck. Writing a plugin requires only implementing one of three base classes.
- Cross-platform.
- Native AOT thanks to source generators and System.Text.Json
- Automatic manifest generation sourced from your plugin, MSBuild properties and a few attributes.
- Automatic plugin action registration.
- MSBuild tasks to automatically stop and restart the Stream Deck software at build time.
- MSBuild task to package your plugin when you build in Release mode.
- Comprehensive sample plugin.
- Auto-populated user settings when modified in the Property Inspector.
- Access the Global Settings from anywhere in your code.
- Simplified working with filenames from the Stream Deck SDK.
- Large set of helper functions to simplify creating images and sending them to the Stream Deck.
- NLog for logging.
- Jetbrains Rider might occasionally hold onto the MSBuild tasks and prevent the solution from building. If this happens, use kill-msbuild.ps1 and try rebuilding.
- Update to latest Stream Deck SDK and add new devices.
- Complete incompatibility with BarRaider's streamdeck-tools, on which this is based.
- Update to latest Stream Deck SDK.
- Better documentation for SDPI (property inspector) generation
- Add more tests.
- More functional (manual) testing.
- BarRaider's streamdeck-tools: This project is based on BarRaider's fantastic streamdeck-tools, on which many Stream Deck plugins are based. Thank you for maintaining streamdeck-tools over the years. I learned a lot from pouring through your work!
