StreamDecky: Enhancing Productivity with Customizable Command Deck
Primary Purpose:
StreamDecky is a customizable desktop command deck and overlay designed for Windows users seeking an efficient way to trigger actions and shortcuts from a configurable on-screen interface. It can be installed via winget, ensuring easy setup.
Key Features:
Fullscreen Overlay: Engage with macro buttons, quick text chat lines, fill-in forms, and sticky notes for versatile command execution.
Trigger Methods: Activate the overlay using a global hotkey or a recorded gamepad combo for flexibility.
Navigation Options: Navigate through the interface using D-pad or stick controls within the overlay.
Text Input Modes: Choose between clipboard paste or simulated typing with an optional Enter after input for convenience.
Custom Form Creation: Build forms for repetitive tasks, featuring multiline fields, choice lists, and autocomplete suggestions to streamline workflows.
Audience & Benefit:
Ideal for gamers, streamers, and roleplayers who need quick access to commands without disrupting their workflow. StreamDecky enhances productivity by allowing users to customize workflows, reducing the time spent on repetitive actions and improving efficiency in various applications such as roleplay servers or dispatch reports.
README
StreamDecky
StreamDecky is a software command deck for Windows. Press a global hotkey (or a
gamepad combo) and a fullscreen overlay opens on top of your game: a grid of
macro buttons, ready-made chat lines, fill-in forms, and sticky notes. Click
something and StreamDecky hands focus back to the game and sends the keystrokes
or text there. No Stream Deck hardware needed — it's all software.
Download for Windows
· Windows 10/11 · self-contained, no .NET install · runs without admin · Apache-2.0
What it's for
Roleplay servers like FiveM. Fire emotes and animations from one-press
buttons (open chat → /e dance → Enter), keep your /me and /do lines in a
searchable quick-text panel, and pin radio channels or plates as sticky notes
over the game.
Repeated paperwork. Build a form once — text fields, choice fields,
auto-incrementing case or invoice numbers, {date}/{time} tokens — and fill
it from the overlay into a dispatch report or a real-world canned reply.
Hotkey and gamepad control. Open the overlay with a global hotkey or a
recorded gamepad combo, and navigate it with the D-pad or stick when you don't
want to reach for the keyboard.
Quick setup
Download and extract the latest Windows ZIP.
Run StreamDecky.exe and build a deck in the editor.
Set the overlay hotkey in Settings, then open the overlay over your game.
Optionally import one of the ready-made profiles below via Settings →
Import Profile. It is added next to your own profiles, never over them.
Trust at a glance
Official releases are built by GitHub Actions from the tagged source commit.
Releases since v2026.7.5 include a .sha256 file for the Windows archive.
The current Windows release is unsigned. Check the release notes for its
authoritative signing status and see the code signing policy.
Templates and guides
Ready-made profiles you can import and adapt:
and
. See
for what's inside and how to import.
The rest of this document is the detailed reference.
Requirements
Windows 10 or Windows 11
.NET 10 SDK for local development
A writable %LOCALAPPDATA%\StreamDecky folder for profiles, backups, and logs
A stable install path if you plan to use Start with Windows
Published releases are self-contained win-x64 builds, so end users do not need a separate .NET runtime installation.
Highlights
Overlay and focus
Full-screen topmost overlay (OverlayWindow)
Close with Esc or the close button
Attempts to regain focus if the overlay loses it unexpectedly
Restores focus to the previous foreground window before executing actions
Single instance and startup
Runs as a single-instance app
A second launch activates the existing window instead of starting a second process
Supports --minimized to start hidden in the tray
Start with Windows writes "" --minimized to HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
Tray and main window
Creates a tray icon with Show and Exit
Closing the main window hides it to the tray instead of exiting the process
Loads the tray icon from the executable icon with a Windows application icon fallback
Button actions
TextInput
Clipboard paste mode or simulated typing
Optional Enter after text input
KeyPress
SendKeys-style key strings with modifiers and special keys
MultiAction
Ordered action steps: KeyPress, TextInput, and Delay
LayoutNavigation
Jumps directly to another page or virtual layout
Layouts, notes, and profiles
Regular pages with previous/next navigation
Virtual layouts for hidden menus and direct navigation targets
Shared layout size (Rows and Columns) across layouts in a profile
Page-independent sticky notes stored in dedicated note pages
Multiple profiles with separate layouts, notes, quick text, and overlay/input settings
Export the active profile from Settings; import adds the file as a new profile
(renamed if the name is taken) and switches to it, leaving existing profiles untouched
Quick clipboard text
Profile-scoped quick text items and categories
Overlay search/filter support
Shared multi-step action pipeline for clipboard rows
Session-only inline edits in the overlay without autosaving temporary changes
Forms
Profile-scoped fill-in forms designed in the editor and filled in from the overlay
Field types: free text (single- or multiline) and choice fields where selecting an option prefills an editable text
Per-field autocomplete suggestions from previously submitted values (opt-in per field)
Optional shared suggestion keys let explicitly selected fields reuse autocomplete values across forms without sharing submissions or other field data
Optional required-field validation that blocks submission until required values are filled in
Auto-incrementing counters (e.g. invoice numbers) with optional zero padding; counters increment once per submission
Output composed from a template with {field}, Choice option-title {field_choice}, {counter}, and built-in {date}, {time}, {datetime} tokens, with live preview in both editor and overlay
Submit to clipboard, or through an optional per-form action-step pipeline against the previously focused window
Submission history stored outside the profile with view, copy, and delete in the editor
Clearing form history also clears autocomplete suggestion data, including orphaned suggestions
Draggable, resizable overlay panel persisted per profile
MicMixer music widget
Optional overlay widget (Music in the overlay top bar) that remote-controls MicMixer's built-in music player
Transport controls, seek, music/monitor volume, and a volume-link toggle synced with MicMixer
Delayed start with a configurable countdown that plays the track marked in the list, plus single-track mode
Library browsing with search, per-folder filter chips, click-to-mark and play/enqueue per track, and a reorderable queue
Compact mode hides the queue and library, keeping only the player controls
Draggable, resizable from both bottom corners, and persisted per profile; reconnects automatically when MicMixer is not running
Gamepad support
Optional per-profile XInput support
Recordable gamepad combo for toggling the overlay
D-pad and left stick navigation in the overlay
A activates the selected button, LB and RB switch pages
Keyboard shortcuts
In the main window, when a text field is not focused:
Delete: clear the selected button
Drag a configured button onto another slot to move it, or hold Ctrl while dragging to copy it; occupied slots ask before replacement
Ctrl+C: copy the selected button configuration
Ctrl+V: paste onto the selected button
In the overlay:
Esc: close the overlay
Installation
Download the latest release zip.
Extract it to a stable folder, for example %LOCALAPPDATA%\Programs\StreamDecky or another folder you control.
Run StreamDecky.exe.
If you want background startup, enable Start with Windows from Settings after the app is running from its final location.
Keeping the same install path helps Windows preserve tray icon preferences and keeps the startup registry entry valid.
StreamDecky is distributed outside Microsoft Store. Windows Defender SmartScreen
may show Windows protected your PC for an unsigned or newly published build.
Verify that the archive came from the official GitHub release and compare its
SHA-256 hash with the attached .sha256 file before selecting More info → Run
anyway. Windows 11 Smart App Control is a separate feature and may block unknown
unsigned apps without offering that override. See INSTALLATION.txt
for verification commands and details.
Release builds check GitHub for updates at most once every 12 hours while the
main window is open. When a newer version is available, StreamDecky can download,
verify, install, and restart itself. A manual check is available from
About → Check for updates. Installs in protected folders may trigger a UAC
prompt, and Windows may show a security warning when a new build restarts.
Development builds do not perform update checks.
Code signing and privacy
Current releases are unsigned. We have applied to
SignPath Foundation; approval and signing integration
are pending. Each release states its actual signing status.
See the code signing policy
for the signing scope, project roles, and build provenance. StreamDecky's
automatic update checks, local profile and form data, simulated input, and
MicMixer integration are covered by the
privacy policy.
Form submissions and autocomplete history: %LOCALAPPDATA%\StreamDecky\form-data.json (kept outside the profile store so submissions never churn profile backups and personal history stays out of profile exports)
Profile data is autosaved after real data mutations and can also be saved through explicit save flows.
The profile format uses explicit schema versions and versioned migrations. If StreamDecky opens data created by a newer app version, it will load that data without migration but block saving to avoid overwriting fields from a newer schema.
Integrations/MicMixer contains a reconnecting, same-user named-pipe client for
MicMixer's built-in music player. It provides typed state, all configured library
folders, folder management, transport, queue, volume, delayed-start, single-track,
source-mode, and download operations. The client does not start MicMixer and has no
UI or profile coupling.
ViewModels/MusicWidgetViewModel owns an IMicMixerClient for the overlay music
widget. The client is created lazily and Start() is only called once the widget is
visible in an open overlay, so sessions that never show the widget pay no pipe cost.
Widget visibility, compact mode, position, and size are persisted per profile.
No extra service or companion process is required. The matching server runs inside
MicMixer.exe and the connection remains offline until MicMixer is running for the
same Windows user.
Run locally
Requirement: Windows with the .NET 10 SDK installed.
dotnet restore StreamDecky.slnx
dotnet run --project src/StreamDecky/StreamDecky.csproj
If WPF design-time build or C# Dev Kit locks generated files such as App.g.cs and triggers MC1000-style failures, use the safer sequence below instead:
The executable embeds the app icon via ApplicationIcon.
The taskbar and window use the executable icon directly.
The tray icon is loaded from the executable icon at runtime.
No separate .ico file needs to ship next to the executable for normal runtime icon behavior.
Release pipeline notes:
Pushes to main only trigger release.yml when src/** changes.
release.yml restores the complete solution and runs the full test suite before
publishing anything.
It injects Version, AssemblyVersion, FileVersion, and
InformationalVersion during publish.
The local .csproj version is a fallback and can be overridden by CI.
The release workflow signs and verifies the executable when both required PFX
secrets are configured, and fails if only one secret is present.
The release tag points to the exact commit that was checked out and built.
RELEASE_NOTES.md contains the short, hand-written notes.
The workflow adds version, commit, archive hash, and verified signing status.
build.yml is a manual candidate-build for any selected branch. It runs the
full restore, test, publish, and packaging flow and uploads ZIP plus SHA-256
without creating a tag or public release.
Feature branches can be combined on the optional next branch when a set of
changes should be tested together before next is merged to main. Small fixes
can go directly through a feature branch to main. Only main publishes a
release. Without a trusted signature, Windows SmartScreen may require manual
approval; even a newly signed build can initially lack reputation.
Known limitations
Desktop apps cannot intercept system-level flows such as Ctrl+Alt+Del, Secure Desktop, or some UAC transitions.
Some games or applications with aggressive anti-cheat or low-level input filtering may ignore simulated input.
The overlay is primarily designed around the primary display.
Security and privileges
The app runs as asInvoker; administrator rights are not required by default.
Start with Windows writes to HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Run.
Profiles, backups, and logs stay under %LOCALAPPDATA%\StreamDecky.
Support and acknowledgements
StreamDecky is built and maintained by BenjiButten and released free of charge
as open-source software. A special thank you goes to
Pixlexi, who has contributed the use cases
behind the app, hands-on testing, and valuable feedback throughout development.
If you enjoy StreamDecky and would like to give something back, please consider
gifting a sub to Pixlexi on Twitch.
Third-party components and their license information are listed in
THIRD-PARTY-NOTICES.txt. That file, the project
license, and the attribution NOTICE are included in published distributions.
License
StreamDecky is licensed under the Apache License 2.0. Redistributions
must also preserve the applicable attribution information from NOTICE
as required by the license.
Published releases up to and including v2026.7.3 remain available under the
MIT terms under which they were originally released. Source from the Apache-2.0
relicensing commit onward is licensed under Apache-2.0.