The Problem
Our team does daily standups in Discord voice channels. Every week someone asks “who’s been skipping?” and I’d pull up my spreadsheet like it’s 2010.
There had to be a better way.
Sir Standsalot
I built a Discord bot that tracks voice channel attendance automatically and handles async updates for people who think 9 AM standups are a war crime.
Quick Setup:
git clone https://github.com/tsensei/Sir-Standsalot.git
cd Sir-Standsalot
cp .env.example .env # Add your Discord token and channel IDs
docker-compose up -d
Or with Poetry if you prefer:
poetry install && poetry add pynacl
poetry run python standup_bot.py
What It Does
Voice Channel Tracking
- Automatically detects who joins standup voice channels
- Records attendance with timestamps
- No manual intervention needed
Async Updates
- Accepts text updates in
Yesterday:/Today:
format - Counts as attendance for people in different timezones
- Posts in designated text channels
Reports
- Generates weekly attendance summaries
- Shows who’s consistently showing up (or not)
- No passive-aggressive commentary (unfortunately)
Why “Sir Standsalot”?
Team inside joke. The monocle in the avatar was non-negotiable.
Tech Stack
- Python 3.12+ with discord.py
- Docker or Poetry for deployment
- Environment-based configuration
Discord Permissions Needed:
- Message Content
- Server Members
- Presence Intent
The wiki has guides for setup, configuration, and commands if you need more details.
Does It Work?
Been using it for weeks. Saved me about 10 minutes a week, which I promptly waste on Reddit.
If you’re tracking Discord standup attendance manually, this might help.
Repository: github.com/tsensei/Sir-Standsalot