This folder contains the Stream Deck 2.x plugin built with Elgato's official TypeScript SDK.
- Node.js 24 or newer
- Stream Deck 7.1 or newer
- My Stream Timer installed for app-backed actions
npm ci
npm run build
npm run link
npm run watchEnable developer mode with npx streamdeck dev to inspect property inspectors at
http://localhost:23654/. Plugin logs are written to
com.refractored.mystreamtimer.sdPlugin/logs.
npm run lint
npm run typecheck
npm test
npm run build
npm run validatenpm run packThe installer is written to dist. Tagged releases use v<version>-streamdeck, for example
v2.0.0-streamdeck.
The release workflow reruns every quality check, stamps the four-part manifest version, packages the installer, writes a SHA-256 checksum, and creates a GitHub Release. Upload that same installer to Elgato Maker Console for Marketplace review; the official Stream Deck CLI does not currently provide a documented Marketplace publish command.
Regenerate the white action-list icons and Marketplace media from the repository root:
./MyStreamTimer.StreamDeck/marketplace/generate-assets.ps1The script preserves the colorful 72 px and 144 px key images, converts only the category and
action-list icons to Elgato's required white-on-transparent treatment, and writes the 288 px app
icon, 1920 x 960 thumbnail, and three 1920 x 960 gallery images to marketplace.
- App Timer Start controls any Countdown, Count Up, or Current Time output through the
mystreamtimer://protocol. - App Timer Control supports add/subtract minutes or seconds, pause, resume, reset, and stop. Current Time supports start and stop.
- Stream Deck Start starts or restarts a Countdown, Count Up, or Current Time text-file timer.
- Stream Deck Control controls the matching file timer by its configured output folder and file name. Countdown and Count Up support pause, resume, reset, and stop; Current Time supports start and stop.
File timer output defaults to Documents/MyStreamTimerStreamDeck/countdown.txt. The inspector's
Copy output file path control copies the precise resolved path. Runtime files are written outside
the packaged plugin so the installer remains compatible with Marketplace DRM integrity checks.
Create and push a release tag from the repository root:
./scripts/create-release-tags.ps1 v2.0.0 -StreamDeck -PushAfter the GitHub Release is created:
- Install the attached
.streamDeckPluginon Windows and macOS. - Verify App Timer and Stream Deck actions.
- Upload the same installer to Maker Console without selecting automatic publication.
- Download and test the DRM-processed build, then submit it for Marketplace review.
Version 2 uses a new official plugin UUID and action model. Existing buttons from the legacy StreamDeckLib plugin must be removed and re-added.