Skip to content


IllyriaBridge Logo

Streamocracy

Democracy, but for your stream


A Discord bot for voice channel votekicking during screenshares


ContributorsIssuesLicenseDocs

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.

CommandArgumentsDescription
/pingNoneResponds with Pong! 🏓 to verify the bot is responsive
/votekickuser (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.

VariableRequiredDefaultDescription
DISCORD_TOKENYes-Discord bot token from Developer Portal
GUILD_IDNo-Guild ID for instant command registration (testing)
LOG_LEVELNoinfoLog level filter (trace, debug, info, warn, error)
LOG_FORMATNoprettyLog output format: pretty or json
DEFAULT_VOTEKICK_DURATIONNo60Default votekick duration in seconds
MIN_VOTEKICK_DURATIONNo10Minimum votekick duration in seconds
MAX_VOTEKICK_DURATIONNo300Maximum votekick duration in seconds
RESULTS_DELETE_DELAYNo10Results message deletion delay in seconds
MIN_VOTEKICK_YES_VOTESNo2Minimum ✅ votes needed for a votekick to pass
VOTEKICK_RATE_LIMIT_SECSNo60Cooldown per initiator in the same guild/channel
POLL_STATE_FILENopoll_state.jsonPath 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

About

Democracy, but for your stream

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages