{"id":19894647,"url":"https://github.com/fritzandfriends/streamdecktoolkit","last_synced_at":"2025-10-24T10:21:19.391Z","repository":{"id":33992647,"uuid":"164705047","full_name":"FritzAndFriends/StreamDeckToolkit","owner":"FritzAndFriends","description":"A .NET Standard library, template, and tools for building extensions to the Elgato Stream Deck","archived":false,"fork":false,"pushed_at":"2023-06-05T15:34:24.000Z","size":1499,"stargazers_count":168,"open_issues_count":34,"forks_count":45,"subscribers_count":13,"default_branch":"dev","last_synced_at":"2025-04-26T08:49:18.774Z","etag":null,"topics":["dotnetcore","stream-deck","streamdeck","streamdeck-sdk","template"],"latest_commit_sha":null,"homepage":"","language":"CSS","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/FritzAndFriends.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2019-01-08T18:01:10.000Z","updated_at":"2025-04-21T13:42:58.000Z","dependencies_parsed_at":"2024-06-21T19:09:25.374Z","dependency_job_id":"a76766f6-ce13-46d2-87ff-67da0ab5d3f6","html_url":"https://github.com/FritzAndFriends/StreamDeckToolkit","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/FritzAndFriends%2FStreamDeckToolkit","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/FritzAndFriends%2FStreamDeckToolkit/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/FritzAndFriends%2FStreamDeckToolkit/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/FritzAndFriends%2FStreamDeckToolkit/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/FritzAndFriends","download_url":"https://codeload.github.com/FritzAndFriends/StreamDeckToolkit/tar.gz/refs/heads/dev","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252103930,"owners_count":21695388,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["dotnetcore","stream-deck","streamdeck","streamdeck-sdk","template"],"created_at":"2024-11-12T18:34:05.775Z","updated_at":"2025-10-24T10:21:14.370Z","avatar_url":"https://github.com/FritzAndFriends.png","language":"CSS","readme":"# StreamDeckToolkit\r\n\r\n[![Build status](https://dev.azure.com/FritzAndFriends/StreamDeckTools/_apis/build/status/StreamDeckTools-CI)](https://dev.azure.com/FritzAndFriends/StreamDeckTools/_build/latest?definitionId=8)  ![](https://vsrm.dev.azure.com/FritzAndFriends/_apis/public/Release/badge/00a6d40c-eb0d-4aa8-a405-d13d03317ca9/1/1)  [![NuGet](https://img.shields.io/nuget/v/StreamDeckLib.svg)](https://www.nuget.org/packages/StreamDeckLib/)\r\n[![github pages](https://github.com/FritzAndFriends/StreamDeckToolkit/workflows/github%20pages/badge.svg)](https://github.com/FritzAndFriends/StreamDeckToolkit/actions?query=workflow%3A%22github+pages%22)\r\n\r\n![](https://img.shields.io/azure-devops/tests/FritzAndFriends/StreamDeckTools/8/dev.svg)\r\n\r\n[Intellicode Model](https://prod.intellicode.vsengsaas.visualstudio.com/get?m=409A792BE4F74201806A848409B2984D)\r\n\r\n## What Is This?\r\n\r\nThis is a template to help create plugins for the [Elgato Stream Deck][Stream Deck], using the [Stream Deck SDK][] with [Dotnet Core][].\r\n\r\n## Docs\r\n\r\nYou can read more in the [Docs](https://FritzAndFriends.github.io/StreamDeckToolkit/).\r\n\r\n## Pre-Requisites\r\n\r\nIn order to make use of this template, you will need to have the [Dotnet Core SDK][] (version 2.2.100 or above) installed on your development machine.\r\n\r\nWhile not absolutely necessary, it is **strongly** recommended to have the [Stream Deck Software][] installed, to be able to perform some integration testing of your plugin.\r\n\r\n## Install Project Template\r\n\r\n### From File System\r\n\r\nInstalling the template from your filesystem is useful for local testing of the template itself. If you are actively working on the template making changes, this is the route you need to use.\r\n\r\nTo install, run the following command from the root of the repository.\r\n\r\n    dotnet new -i Templates/StreamDeck.PluginTemplate.Csharp\r\n\r\nTo pick up any changes you have made to the template source, you must uninstall the template and reinstall it.\r\n\r\nTo uninstall, run the following command from the root of the respository.\r\n\r\n**Windows:**  `dotnet new -u Templates/StreamDeck.PluginTemplate.Csharp`\r\n\r\n**OSX/Linux:** `dotnet new -u $PWD/Templates/StreamDeck.PluginTemplate.Csharp`\r\n\r\n### From NuGet\r\n\r\n    dotnet new -i StreamDeckPluginTemplate\r\n    - OR -\r\n    Install-Package StreamDeckPluginTemplate [-Version x.y.zzz]\r\n\r\n## Using the Template\r\n\r\nOnce the template is installed, open a terminal in the folder of your choice and create a new project.\r\n\r\n    dotnet new streamdeck-plugin --plugin-name FirstPlugin --uuid com.yourcompany.pluginname.actionname --skipRestore false\r\n\r\nOr create a directory in a location of your choice, change to that directory and run the command, which will inherit the directory name as the project name with default values.\r\n\r\n    dotnet new streamdeck-plugin\r\n\r\n## Creating a Plugin Action\r\nThe Stream Deck Toolkit provides the functionality that communicates directly with the Stream Deck software. When creating a plugin, you are responsible for creating actions for the Stream Deck buttons to perform. There are two base classes that you can inherit from when creating your action:\r\n\r\n    1. BaseStreamDeckAction - this class contains all the integrations necessary to communicate with the Stream Deck at the 'barebones' level. Inheriting from this class will give you the greatest control over how your action sends and receives data from the software.\r\n\r\n    2. BaseStreamDeckActionWithSettingsModel\u003cT\u003e - this class inherits from BaseStreamDeckAction, this class will automate the population of model properties, where type T is defined as the data that is stored when issuing a 'setSettings' event to the Stream Deck software. The property **SettingsModel** will automatically instantiate an instance of class T, so it is best to assign default values when defining your class T. Also, when using the Property Inspector and passing data back and forth, ensure that the properties defined in the settingsModel in JavaScript matches those that you have defined in T for the automatic mapping to occur between both environments.\r\n\r\nYour project may contain any number of actions, inheriting from one of the classes above. In order for the Action to be automatically registered on start up, it must bear the **[ActionUuid(Uuid=\"com.fritzanfriends.pluginname.anotheraction\")]** attribute.\r\n\r\nActions must also be manually registered in the **manifest.json** file, with the Uuid that matches ActionUuid attribute.\r\n\r\n\u003c!-- Reference Links --\u003e\r\n\r\n[Dotnet Core]: https://dotnet.microsoft.com/ \"Free, cross-platform application framework\"\r\n[Dotnet Core SDK]: https://get.dot.net/ \"Download the Dotnet Core SDK or Runtime\"\r\n[Stream Deck]: https://www.elgato.com/gaming/stream-deck/ \"Elgato's Stream Deck product page\"\r\n[Stream Deck SDK]: https://developer.elgato.com/documentation/stream-deck \"Elgato's Stream Deck SDK documentation and reference site\"\r\n[Stream Deck Software]: https://www.elgato.com/gaming/downloads \"Download the Stream Deck desktop software\"\r\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffritzandfriends%2Fstreamdecktoolkit","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffritzandfriends%2Fstreamdecktoolkit","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffritzandfriends%2Fstreamdecktoolkit/lists"}