Slash Commands
Full slash command reference for AttendiBot.
AttendiBot uses Discord slash commands. Admin commands require Manage Server permission.
Public commands
Available to all server members.
/ping
Check if the bot is online and measure latency.
/ping/leaderboard
Show the voice time leaderboard for the current period.
| Option | Type | Default | Description |
|---|---|---|---|
limit | Integer | 10 | Number of users to show (max 25) |
/leaderboard
/leaderboard limit:15Dashboard equivalent: Leaderboard
/stats
Show voice attendance stats for a user in the current period.
| Option | Type | Default | Description |
|---|---|---|---|
user | User | You | User to inspect |
/stats
/stats user:@MemberNameDashboard equivalent: User Stats
/channel-stats
Show the voice leaderboard for a specific channel.
| Option | Type | Default | Description |
|---|---|---|---|
channel | Channel | Required | Voice or stage channel |
limit | Integer | 10 | Number of users to show (max 25) |
/channel-stats channel:#Study-HallDashboard equivalent: Channel Stats
Admin commands
All /admin subcommands require Manage Server permission.
/admin tracking-mode
Set how voice channels are selected for tracking.
| Option | Values |
|---|---|
mode | Off, Allowlist, Denylist, All |
/admin tracking-mode mode:AllowlistDashboard equivalent: Settings → Tracking → Tracking mode
/admin track-channel
Add, remove, or list tracked channels (for Allowlist/Denylist modes).
| Option | Values | Required |
|---|---|---|
action | Add, Remove, Show | Yes |
channel | Voice channel | For Add/Remove |
/admin track-channel action:Add channel:#Voice-1
/admin track-channel action:Remove channel:#Voice-1
/admin track-channel action:ShowDashboard equivalent: Settings → Tracking → Tracked channels
/admin reset-interval
Configure how often leaderboard periods reset.
| Option | Type | Description |
|---|---|---|
value | Integer | Interval amount (e.g. 2 for every 2 weeks) |
unit | Choice | Hour, Day, Week, Month, Year |
anchor_mode | Choice | Rolling, StartOfHour, StartOfDay, StartOfWeek, StartOfMonth, StartOfYear |
timezone | String | IANA timezone (default UTC) |
custom_anchor | String | ISO 8601 start time for rolling mode |
/admin reset-interval value:1 unit:Week anchor_mode:StartOfWeek timezone:America/New_YorkDashboard equivalent: Settings → Periods
/admin reset-now
Force an immediate period reset. Archives the current period with a signed snapshot and starts a new leaderboard.
/admin reset-nowDashboard equivalent: Settings → Periods → Reset now
/admin generate-keys
Create a new Ed25519 signing keypair for the server.
| Option | Type | Description |
|---|---|---|
passphrase | String | Encrypts the private key (≥ 8 characters) |
/admin generate-keys passphrase:your-secure-passphraseRun once per server. Re-generating invalidates previous keys.
Dashboard equivalent: Signing → Generate keys
/admin unlock-signing
Unlock the signing key in memory. Required after every bot restart.
| Option | Type | Description |
|---|---|---|
passphrase | String | Passphrase used when keys were generated |
/admin unlock-signing passphrase:your-secure-passphraseDashboard equivalent: Signing → Unlock signing
/admin signing-status
Show signing key status, tracking mode, and active period.
/admin signing-statusDashboard equivalent: Signing panel
/admin public-key
Display the active Ed25519 public key (base64) for verification.
/admin public-keyDashboard equivalent: Signing → Public key
/admin verify-session
Verify a voice session signature in Discord.
| Option | Type | Description |
|---|---|---|
session_id | String | Voice session UUID |
/admin verify-session session_id:550e8400-e29b-41d4-a716-446655440000Public alternative: Session verifier
/admin verify-period
Verify an archived period snapshot signature.
| Option | Type | Description |
|---|---|---|
period_index | Integer | Archived period index |
/admin verify-period period_index:1/admin history
List archived leaderboard periods.
| Option | Type | Default | Description |
|---|---|---|---|
limit | Integer | 5 | Number of periods to list |
/admin history limit:10Dashboard equivalent: Settings → Periods → History
/admin logs
Configure log channel destinations. Subcommands:
/admin logs add
Add a log destination to a text channel.
| Option | Type | Description |
|---|---|---|
channel | Text channel | Where to post logs |
log_type | Choice | VoiceJoin, VoiceLeave, SessionTime, Leaderboard, AttendanceSummary |
label | String | Optional label for /admin logs list |
interval_value | Integer | Required for Leaderboard / AttendanceSummary |
interval_unit | Choice | Hour, Day, Week, Month |
/admin logs add channel:#attendance-logs log_type:VoiceJoin
/admin logs add channel:#leaderboards log_type:Leaderboard interval_value:1 interval_unit:Day/admin logs remove
Remove a log destination by ID.
/admin logs remove destination_id:550e8400-e29b-41d4-a716-446655440000/admin logs list
List all configured log destinations.
/admin logs set-types
Enable or disable a log type on a destination.
/admin logs set-frequency
Update the posting frequency for periodic log types.
Dashboard equivalent: Logs
Log type reference
| Log type | Delivery | Description |
|---|---|---|
| VoiceJoin | Real-time | Member joined a tracked voice channel |
| VoiceLeave | Real-time | Member left a tracked voice channel |
| SessionTime | Real-time | Completed session with duration |
| Leaderboard | Periodic | Current period leaderboard embed |
| AttendanceSummary | Periodic | Attendance summary embed |