Skip to content


IllyriaBridge Logo

Streamocracy

Democracy, but for your stream


A Discord bot for voice channel votekicking during screenshares


Contributors Issues License Docs

Table of Contents

Features

  • Slash commands/ping and /votekick
  • Voice-channel aware/votekick validates that the caller and target are in the same voice channel and that the target is screensharing
  • Reaction-based polls — members vote ✅ or ❌; polls auto-complete and disconnect the target when the vote passes
  • Configurable durations — default, minimum, and maximum poll durations are set via environment variables

Usage

Streamocracy is a Discord bot driven entirely by slash commands. After inviting it to your server, type / in any channel to see the available commands.

Command Arguments Description
/ping None Responds with Pong! 🏓 to verify the bot is responsive
/votekick user (required), duration (opt) Start a votekick poll against a user who is screensharing

/votekick details

  1. You must be in a voice channel.
  2. The target user must be in the same voice channel and currently screensharing.
  3. Optionally override the poll duration in seconds.
  4. Members vote ✅ (yes) or ❌ (no).
  5. The vote passes if there are at least 2 yes votes and yes votes exceed no votes. If it passes, the target is disconnected from the voice channel.

Configuration

Configuration is loaded from environment variables. A .env file can be used for local development.

Variable Required Default Description
DISCORD_TOKEN Yes - Discord bot token from Developer Portal
GUILD_ID No - Guild ID for instant command registration (testing)
LOG_LEVEL No info Log level filter (trace, debug, info, warn, error)
LOG_FORMAT No pretty Log output format: pretty or json
DEFAULT_VOTEKICK_DURATION No 60 Default votekick duration in seconds
MIN_VOTEKICK_DURATION No 10 Minimum votekick duration in seconds
MAX_VOTEKICK_DURATION No 300 Maximum votekick duration in seconds
RESULTS_DELETE_DELAY No 10 Results message deletion delay in seconds
MIN_VOTEKICK_YES_VOTES No 2 Minimum ✅ votes needed for a votekick to pass
VOTEKICK_RATE_LIMIT_SECS No 60 Cooldown per initiator in the same guild/channel
POLL_STATE_FILE No poll_state.json Path to active poll persistence file

Quick start (from source)

export DISCORD_TOKEN="your-bot-token"
export GUILD_ID="your-guild-id"   # optional, for instant slash command updates
cargo run --release

For Docker Compose, binary releases, and a full setup walkthrough, see GUIDE.md.

Built With

Built With

Releases

Packages

Contributors

Languages