Kick stream control plugin for OpenDeck — manage your Kick live stream directly from your deck. Send chat messages, view live viewers, toggle slow mode, manage bans and mutes, and more.
Control 7 Kick actions from your OpenDeck device:
- Kick Setup — Configure Kick authentication. Press to manually refresh your auth token
- Chat Message — Send preset messages to your Kick chat
- Viewer Count — Display current live viewer count
- Slow Mode — Toggle slow mode in your chat
- Ban User — Ban a user from your channel
- Unban User — Unban a user from your channel
- Mute User — Mute a user in your channel
Follow the OpenDeck installation guide for your operating system.
# Clone or download this repository
git clone https://github.com/PenguinzTech/kick-opendeck.git
cd kick-opendeck
# Install the plugin
make installThis copies the plugin to:
- macOS/Linux:
~/.config/opendeck/plugins/dev.penguin.kick.sdPlugin/ - Windows:
%APPDATA%\Elgato\StreamDeck\Plugins\dev.penguin.kick.sdPlugin\
- Open OpenDeck
- Add any Kick action to a button (Chat Message, Viewer Count, etc.)
- The Property Inspector appears on the right
- Add the Kick Setup action to a button
- Click Login with Kick in the Property Inspector
- A popup window displays an authorization URL
- Visit the URL in your browser
- Authorize the plugin to access your Kick account
- Return to OpenDeck — authentication is complete
- Press the Kick Setup button to manually refresh your auth token if needed
Your OpenDeck device is now authenticated with Kick. Actions will execute immediately when pressed.
| Action | Description |
|---|---|
| Kick Setup | Configure Kick authentication. Press to manually refresh your auth token. |
| Chat Message | Send a preset message to your Kick chat |
| Viewer Count | Display current live viewer count |
| Slow Mode | Toggle slow mode in your chat |
| Ban User | Ban a user from your channel |
| Unban User | Unban a user from your channel |
| Mute User | Mute a user in your channel |
- Rust 1.70 or later
- OpenDeck (installed)
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
source $HOME/.cargo/envgit clone https://github.com/PenguinzTech/kick-opendeck.git
cd kick-opendeck
# Build and install the plugin
make install
# Or build only
make build
# Or develop with live reload
make dev- Windows (x86_64)
- macOS (Intel x86_64, Apple Silicon ARM64)
- Linux (x86_64, ARM64)
-
Moderation Actions (Ban User, Unban User, Mute User, Slow Mode) require you to be:
- The channel broadcaster, OR
- A moderator in the channel
-
Chat Message works with any authentication but requires the channel to be live
-
Viewer Count works with any authentication but displays 0 if the channel is offline
Tokens are automatically:
- Persisted in OpenDeck's global settings (encrypted)
- Refreshed before expiration
- Validated on each button press
You can revoke access at any time from your Kick account settings.
Some actions support customization via the Property Inspector:
| Action | Configurable Fields |
|---|---|
| Chat Message | Preset message text |
| Slow Mode | Delay duration (configurable) |
| Ban User | Username to ban |
| Unban User | Username to unban |
| Mute User | Username to mute |
"Plugin not found" — Run make install again to ensure the plugin directory structure is correct.
"Login failed" — Verify your Kick account credentials and that you have API access enabled.
"Action failed: Not authorized" — Ensure you are a moderator in the channel or the channel broadcaster.
"Viewer count shows 0" — The channel may be offline. Viewer count only displays for live streams.
kick-opendeck/
├── src/
│ ├── main.rs # Plugin entry point and message dispatcher
│ ├── auth.rs # OAuth2 authentication implementation
│ ├── settings.rs # OpenDeck property persistence
│ ├── kick_api.rs # Kick API client
│ ├── global_handler.rs # Global plugin state and initialization
│ └── actions/ # Individual action implementations
│ ├── chat_message.rs
│ ├── viewer_count.rs
│ ├── slow_mode.rs
│ └── ... (other actions)
├── Cargo.toml # Rust dependencies
├── Makefile # Build and install targets
├── plugin/
│ └── manifest.json # Plugin manifest and action definitions
└── README.md # This file
make testThis plugin is open source. See LICENSE file for details.
For issues, feature requests, or contributions, visit the GitHub Issues page.