Shoutout Desk
Requirements: Windows 10/11, x64. OBS is not required.
Direct downloads from GitHub Releases. Windows x64.
Coming from an old version? Import your database
Screenshots
What it does
- OBS shoutout badges with an avatar, nickname and personal description. Three designs with independent colors: Air, Pass and Sticker.
- Customizable stamp, gradients, sizes and ten entrance/exit effects each. Test each badge without sending a Twitch shoutout.
- Send a private diagnostic report for the last hour, day or week, without tokens or chat text.
- Shouts out a person on your list after a new chat message, once their personal cooldown has expired.
- Keeps people, history and cooldowns across restarts. Each channel has separate data.
- Connects directly to Twitch or through an automatic Streamer.bot setup.
- Uses received shoutout events from other bots to cancel duplicates in the queue.
- Imports and exports people and history, with optional manual cooldown resets.
- Available in English, Ukrainian and Russian. Checks for new releases automatically or with a button.
- Optionally shouts out incoming raiders after 20 seconds, including people outside the list. An observed shoutout from another bot cancels the duplicate.
Installation
- Download the EXE and close Shoutout Desk if it is already running.
- Run the installer. It installs for the current Windows user without administrator rights.
- Open Shoutout Desk from the Start menu, then choose a connection method below.
First connection
Directly to Twitch
Choose “Direct Twitch / Standalone”, select “Sign in with Twitch” and confirm the code on the official Twitch page using your broadcaster account. You do not need to register a separate Twitch application. Sign-in renews automatically: temporary network or Twitch failures do not require another login.
Through Streamer.bot
Connect your broadcaster account to Twitch in Streamer.bot 1.0.7. Select this connection mode in settings and click “Set up Streamer.bot”. A running bot is detected automatically, or you can select its EXE. If asked to close the bot, exit it from the tray and repeat setup; it will start again afterwards. OBS can stay open. The bot’s settings are backed up before changes.
Add Twitch usernames or profile links, choose a cooldown and leave auto-shoutouts enabled. During a live stream, a new message from a listed person can queue a shoutout once their cooldown expires. The tool never starts your stream.
Settings and controls
| Setting | What it does |
|---|---|
| Badges → OBS source | Open Badges, copy the complete source URL and add an OBS Browser Source sized 560 × 560 with a transparent background. Keep the app/plugin running: desktop port 18771, plugin port 18772. The URL stays stable across restarts in the same profile. Do not use the editor URL as the source. |
| Description, theme and stamp | Enable display globally or per person. Add a description up to 140 characters, select a common or personal theme, edit independent colors for all three designs, fonts, padding, border and gradient. Customize stamp text, color, angle, corner and sizes. Long names shrink to one line; descriptions wrap. Click Save after editing. |
| Badge test and updates | A test displays only a badge and never changes history/cooldowns, even with automatic display disabled. Choose entrance and exit independently from ten effects each. The editor currently uses Russian labels. Streamer.bot users should rerun bridge setup for avatars. Preserve the complete profile when moving: the people-list JSON export does not include badge settings. |
| Send logs | Settings → Diagnostics: choose the last hour, 24 hours or 7 days, confirm sending and give the report reference to the maintainer. Channel name, version, state and pseudonymous queue events are visible only to the fermionaplay.win owner for 30 days. Detailed logs start after the update; earlier history may be incomplete. Nothing is sent automatically. |
| Automatic raid shoutouts | Off by default. Incoming raids during a live stream wait at least 20 seconds. Raiders are not added to your list; cooldowns and limits still apply. Only actual Twitch shoutouts count, not text-only !so messages. |
| Notify about new versions | On by default. Checks about 15 seconds after launch, then at most daily after success. Offline checks retry later. Shows a release banner without automatic downloads or installation. |
| Enabled | Pauses or resumes auto-shoutouts. Enabled again at every startup, without clearing saved cooldowns. |
| Cooldown, 1–168 hours | The interval for each person. Default: 24 hours. A new chat message is required after it expires; there is no automatic bulk sending. |
| Reset after a long closure | Off by default. Resets personal cooldowns on startup if the program was closed for strictly more than 60 minutes. Keeps history. A crash includes a 30-second heartbeat allowance. |
| Reset all cooldowns | Requires confirmation. Resets the current channel’s cooldowns and clears the queue, keeping people and history. Twitch limits still apply. |
| Connection mode / Sign in / Sign out | Direct Twitch or Streamer.bot. Signing out removes saved sign-in, not people or history. Other channels have separate databases. |
| Set up Streamer.bot | Creates a local bridge and a backup of actions/settings. Preserves the existing port, password and other actions. Desktop and OBS bridge settings are independent. |
| Reconnect | Restores the selected connection. Does not replay old messages or reset cooldowns. |
| Add / remove | Accepts a Twitch username or profile link. Removing a person keeps their history and cooldown. Duplicates are merged. |
| Search / sort / date | Only filter the displayed list, not who is eligible for auto-shoutouts. |
| History / Add | Shows outcomes and errors. Add someone back from history without sending a shoutout. |
| Import | Merges a JSON export or legacy shoutouts.sqlite for the same channel. Connect first. Creates a backup and pauses auto-shoutouts. Close the source program before copying SQLite. |
| Export / Data folder | Exports people, history and cooldowns as JSON, without tokens or passwords. Data folder opens the local profile and backups; do not publish its contents. |
| Language | English, Ukrainian and Russian. Some diagnostic messages may remain in Russian. |
| Check for updates | Manually checks GitHub releases and offers a download link. No silent installation; Twitch tokens are never sent to GitHub. |
| New in 0.6.0: OBS source protection | Standalone app only: Settings → Set up OBS protection. Local credentials are detected automatically and the password is encrypted. If control is disabled, close OBS when not streaming/recording, repeat setup, then launch OBS. After 20 seconds without a heartbeat, only an active source with the exact app URL can be refreshed: at most once per minute and three times per five minutes. Scenes, streaming and recording are never changed. Requires OBS 28+ with its built-in WebSocket server. |
| Badge reconnection | The page reconnects and loads updated files while preserving the URL, descriptions and themes. New badges wait for a connected viewer for up to two minutes, then expire. Old shoutouts are not resent. A deleted source, changed URL, occupied port or crashed OBS needs attention; see the status in Settings. |
| Signing in again | A sign-in banner and a system notification, when allowed by Windows, appear only after authorization is confirmed invalid. People, history and cooldowns stay intact. Temporary failures reconnect automatically. |
| Start minimized to tray | Hides the window at startup while auto-shoutouts keep running. Does not enable Windows startup. |
| Tray / minimize / maximize / close | Tray hides the window; double-click its icon to restore it. Minimize uses the taskbar. Close or Exit quits the app. |
“Sent” means Twitch confirmed the shoutout; “Queued / Sending” means pending; “Skipped” means cancelled; “Error” means rejected. “No confirmation” blocks a retry for the personal cooldown. A 10-second grace period lets other bots’ events arrive; channel-wide shoutouts are spaced 125 seconds apart.
Update without losing your data
Older versions do not have notifications yet: update once manually. Future versions will then be announced automatically when the option is enabled.
Click “Check for updates”, exit the app and install the new version over the old one. People, history and protected sign-in stay in your regular Windows profile.
%APPDATA%\Shoutout DeskZIP and portable data
No installation, with an optional self-contained data profile.
- Extract the entire ZIP. ShoutoutDesk.exe uses the same Windows profile as the installed app.
- For fully portable data, use Portable.cmd. It creates ShoutoutDesk-data next to the EXE. Keep using this launcher consistently.
- When updating, close the app and replace program files, but keep ShoutoutDesk-data. Use export/import to move data between profiles.
Coming from an old version? Import your database
Installing over the old version in the same profile needs no import. To change profiles, computers or move from the app to the plugin:
- The first standalone version stores the people list in %APPDATA%\Shoutout Desk\shoutouts.sqlite. Press Win + R, enter %APPDATA%\Shoutout Desk and open the folder.
- When launched through Portable.cmd, look for ShoutoutDesk-data\shoutouts.sqlite beside the EXE. Settings → Data folder also opens the exact location; save a JSON export if Export is available.
- Close the old app using Exit in the system tray (close OBS for the plugin), then back up the entire data folder. Do not copy an open database without its WAL.
- Connect the same Twitch broadcaster account in the new version. In Settings → Import, select the JSON or shoutouts.sqlite, including databases from the earliest releases.
- People, history and cooldowns merge; unfinished requests are not replayed. Check the result and enable automation: importing pauses it.
Do not import connection.json, authorization files or an EXE. Tokens are not transferred; repeated imports do not duplicate the same history. Keep your backup: downgrading from database schema 3 requires a pre-upgrade copy.
Data and security
Auto-shoutouts run locally; no account on this website is needed. Sign-in happens on Twitch’s official page. OAuth tokens and bridge secrets are protected using Windows encryption. JSON exports contain usernames and activity times, so share them thoughtfully. Only after confirming Send logs does the site receive your channel name, version, state and pseudonymous events, without tokens, chat or the people database. Reports are private to the site owner and deleted after 30 days. Technical server logs may contain your IP address. Sign in to Twitch again when moving to another computer.
Builds are not code-signed, so Windows may show a reputation warning. Verify the source and SHA256 checksums; do not disable system protection.
SHA256 checksums
Compare your downloaded file’s hash with the published value. The links beside each hash open the release checksum files.
- EXE · SHA256
96e60ce32350cf2e093c9f356b0de7460421122bcb9e03403c86906a60c54958- ZIP · SHA256
bc3ae851d079feab9277a415514e6a8bfb3481a6ca708ed6cd854d1f5acefc90












