AttendiBotAttendiBot

Slash Commands

Full slash command reference for AttendiBot.

AttendiBot uses Discord slash commands. Admin commands require Manage Server permission.

Terminology: Voice channel tracking (/admin track-channel, /admin track-user) controls which channels and members are counted. Leaderboard tracks (/admin tracks, optional track on stats commands) are concurrent period schedules — use /admin tracks list to see track names and slugs.

Track option: Many commands accept an optional track parameter (name or slug). Omit it to use the server's default track.

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.

OptionTypeDefaultDescription
limitInteger10Number of users to show (max 25)
trackStringDefault trackLeaderboard track name or slug
/leaderboard
/leaderboard limit:15
/leaderboard track:monthly

Dashboard equivalent: Leaderboard


/stats

Show voice attendance stats for a user in the current or an archived period.

OptionTypeDefaultDescription
userUserYouUser to inspect
trackStringDefault trackLeaderboard track name or slug
periodIntegerCurrent periodPeriod number to inspect
/stats
/stats user:@MemberName
/stats user:@MemberName track:yearly
/stats user:@MemberName track:yearly period:2

Dashboard equivalent: User Stats


/channel-stats

Show the voice leaderboard for a specific channel.

OptionTypeDefaultDescription
channelChannelRequiredVoice or stage channel
limitInteger10Number of users to show (max 25)
trackStringDefault trackLeaderboard track name or slug
periodIntegerCurrent periodPeriod number to inspect
/channel-stats channel:#Study-Hall
/channel-stats channel:#Study-Hall track:monthly
/channel-stats channel:#Study-Hall track:monthly period:3

Dashboard equivalent: Channel Stats


/occupancy

Show members currently in tracked voice channels (live occupancy).

/occupancy

Dashboard equivalent: Analytics (live occupancy widget)


/vote

Show vote links for AttendiBot on bot listing sites (top.gg and others). The reply is only visible to you.

/vote

Votes help AttendiBot rank higher in bot listing search results.


Admin commands

All /admin subcommands require Manage Server permission.

/admin tracking-mode

Set how voice channels are selected for tracking.

OptionValues
modeOff, Allowlist, Denylist, All
/admin tracking-mode mode:Allowlist

Dashboard equivalent: Settings → Tracking → Tracking mode


/admin track-channel

Add, remove, or list tracked channels (for Allowlist/Denylist modes).

OptionValuesRequired
actionAdd, Remove, ShowYes
channelVoice channelFor Add/Remove
/admin track-channel action:Add channel:#Voice-1
/admin track-channel action:Remove channel:#Voice-1
/admin track-channel action:Show

Dashboard equivalent: Settings → Tracking → Tracked channels


/admin track-user

Add, remove, or list tracked members (global or per-channel).

OptionValuesRequired
actionAdd, Remove, ShowYes
userDiscord memberFor Add/Remove
channelVoice channelNo — omit for global list
/admin track-user action:Add user:@Alice
/admin track-user action:Remove user:@Bob channel:#Study-Hall
/admin track-user action:Show

Dashboard equivalent: Settings → Tracking → Global tracked users / per-channel members


/admin reset-interval

Configure how often a leaderboard track resets.

OptionTypeDescription
valueIntegerInterval amount (e.g. 2 for every 2 weeks)
unitChoiceHour, Day, Week, Month, Year
anchor_modeChoiceRolling, StartOfHour, StartOfDay, StartOfWeek, StartOfMonth, StartOfYear
timezoneStringIANA timezone (default UTC)
custom_anchorStringISO 8601 start time for rolling mode
trackStringTrack name or slug (default track if omitted)
/admin reset-interval value:1 unit:Week anchor_mode:StartOfWeek timezone:America/New_York
/admin reset-interval value:1 unit:Month track:yearly

Dashboard equivalent: Settings → Tracks (default track)


/admin reset-now

Force an immediate period reset. Archives the current period with a signed snapshot and starts a new leaderboard.

OptionTypeDescription
trackStringTrack name or slug (default track if omitted)
/admin reset-now
/admin reset-now track:monthly

Dashboard equivalent: Settings → Tracks → Reset now (default track)


/admin generate-keys

Create the initial Ed25519 signing keypair for the server. Allowed only once per server.

/admin generate-keys

Run once per server. If keys already exist, use /admin rotate-keys instead.

Dashboard equivalent: Signing → Generate keys (shown only when no keys exist)


/admin rotate-keys

Replace the active Ed25519 signing keypair. Older signed sessions and period snapshots remain verifiable.

/admin rotate-keys

Dashboard equivalent: Signing → Rotate keys


/admin signing-status

Show signing key status, tracking mode, and active period.

/admin signing-status

Dashboard equivalent: Signing panel


/admin setup-status

Show whether this server is activated for voice tracking: signing unlocked, tracking mode on, and channels configured (allowlist). Includes session count and a short next-step hint.

/admin setup-status

Use this after install (also linked from the welcome DM) when sessions are not appearing.


/admin public-key

Display the active Ed25519 public key (base64) for verification.

/admin public-key

Dashboard equivalent: Signing → Public key


/admin verify-session

Verify a voice session signature in Discord.

OptionTypeDescription
session_idStringVoice session UUID
/admin verify-session session_id:550e8400-e29b-41d4-a716-446655440000

Public alternative: Session verifier


/admin verify-period

Verify an archived period snapshot signature.

OptionTypeDescription
period_indexIntegerArchived period index
trackStringTrack name or slug (default track if omitted)
/admin verify-period period_index:1
/admin verify-period period_index:1 track:monthly

Dashboard equivalent: Signing → Verify period


/admin history

List archived periods for a leaderboard track.

OptionTypeDefaultDescription
limitInteger5Number of periods to list
trackStringDefault trackTrack name or slug
/admin history limit:10
/admin history track:yearly limit:10

Dashboard equivalent: Settings → Tracks → History (default track)


/admin adjust

Apply a manual time adjustment to a member for the current period.

OptionTypeDescription
userUserMember to adjust
amountIntegerSigned amount (positive to add, negative to deduct)
unitChoiceMinutes, Hours, Days, Weeks
reasonStringAudit reason stored with the adjustment
/admin adjust user:@Alice amount:2 unit:Hours reason:Event coverage
/admin adjust user:@Bob amount:-30 unit:Minutes reason:AFK correction

Dashboard equivalent: Automation → Manual adjustments


/admin rules

Manage automation rules. Subcommands:

/admin rules list

List configured rules with IDs.

/admin rules toggle

Enable or disable a rule by UUID.

OptionTypeDescription
rule_idStringRule UUID from /admin rules list
enabledBooleanEnable or disable

/admin rules delete

Delete a rule by UUID.

Creating recurring, quota, or DSL rules is dashboard-only — use Automation.

Dashboard equivalent: Automation


/admin adjustments

Inspect manual time adjustments. Subcommands:

/admin adjustments list

OptionTypeDefaultDescription
userUserFilter to one member
limitInteger10Max rows (1–25)

Dashboard equivalent: Automation → Manual adjustments


/admin tracks

Manage leaderboard tracks (concurrent period schedules). Subcommands:

/admin tracks list

List all tracks with slug, period number, and next reset.

/admin tracks create

OptionTypeDescription
nameStringDisplay name
valueIntegerReset interval amount
unitChoiceHour, Day, Week, Month, Year
anchor_modeChoiceRolling, StartOfHour, StartOfDay, StartOfWeek, StartOfMonth, StartOfYear
timezoneStringIANA timezone (default UTC)
/admin tracks create name:Monthly value:1 unit:Month anchor_mode:StartOfMonth

/admin tracks rename

Rename a track by slug or name.

/admin tracks set-default

Promote a track to the default used when track is omitted.

/admin tracks disable

Disable a track (cannot disable the current default).

/admin tracks reset-now

Force reset for a specific track (default track if track omitted).

/admin tracks history

List archived periods for a track.

Dashboard equivalent: Settings → Tracks


/admin fairness

Configure voice fairness rules. Subcommands:

/admin fairness show

Display current pause-on-mute/deafen/solo and minimum session duration.

/admin fairness set

Update one or more fairness fields (at least one required).

OptionTypeDescription
pause_on_muteBooleanPause accrual when self-muted
pause_on_deafenBooleanPause accrual when self-deafened
pause_when_soloBooleanPause accrual when alone in channel
min_session_secondsIntegerMinimum session duration

/admin fairness preset

Apply a preset: Patrol, Meeting, or StrictAfk.

Dashboard equivalent: Settings → Tracking → Fairness rules


/admin counting-hours

Inspect or clear the server's counting hours schedule (when voice time counts toward leaderboards). Subcommands:

/admin counting-hours show

Display the current schedule mode (24/7 or scheduled windows), timezone, and whether time is counting right now.

/admin counting-hours clear

Clear the schedule and revert to counting 24/7 (fairness rules still apply).

Creating or editing weekly schedules and exceptions is dashboard-only — use Settings → Tracking → Counting hours.

Dashboard equivalent: Settings → Tracking → Counting hours


/admin repair-sessions

Re-sign voice sessions that fail verification.

OptionTypeDefaultDescription
period_indexIntegerLimit to one archived period
dry_runBooleantruePreview without writing signatures

Dashboard equivalent: Signing → Repair sessions


/admin repair-periods

Re-sign archived period snapshots that fail verification.

OptionTypeDefaultDescription
period_indexIntegerLimit to one archived period
trackStringLeaderboard track name or slug
dry_runBooleantruePreview without writing signatures

Dashboard equivalent: Signing → Repair period snapshots


/admin backfill-transparency-log

Backfill the server's transparency log with historical signed sessions and period archives that predate transparency logging.

OptionTypeDefaultDescription
dry_runBooleantruePreview how many records would be appended without writing
/admin backfill-transparency-log
/admin backfill-transparency-log dry_run:false

/admin logs

Configure log channel destinations. Subcommands:

/admin logs add

Add a log destination to a text channel.

OptionTypeDescription
channelText channelWhere to post logs
log_typeChoiceAll, VoiceJoin, VoiceLeave, SessionTime, Leaderboard, AttendanceSummary
labelStringOptional label for /admin logs list
interval_valueIntegerRequired for All, Leaderboard, and AttendanceSummary
interval_unitChoiceHour, 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 add channel:#all-logs log_type:All 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 typeDeliveryDescription
VoiceJoinReal-timeMember joined a tracked voice channel
VoiceLeaveReal-timeMember left a tracked voice channel
SessionTimeReal-timeCompleted session with duration
LeaderboardPeriodicCurrent period leaderboard embed
AttendanceSummaryPeriodicAttendance summary embed

Dashboard-only features

These dashboard capabilities have no Discord slash command. Use the dashboard for them.

FeatureRouteNotes
Automation rule creation/dashboard/automationCreate recurring adjustments, quota rules, and custom DSL rules. Discord supports list/toggle/delete via /admin rules.
Activity heatmap/dashboard/analyticsGitHub-style participation calendar — no Discord equivalent
Signed export (Pro)/dashboard/exportDownload signed period bundles as JSON or CSV
Webhooks (Pro)/dashboard/webhooksOutbound webhooks for session and period events
Verified auto-roles (Pro)/dashboard/verified-rolesGrant or remove roles based on signed voice time
Subscription / billing/dashboard/subscriptionView tier, upgrade, and manage billing

Pro-gated features require Pro or Enterprise. See Subscription Tiers.


Edit on GitHub

On this page