Logo for Gait

Upvote Gait


Behavioral bot detection for Discord. Catches automated accounts by how they act, never by what they say.

Back to Gait

Gait detects bot and automated accounts on Discord by behavior — never by message content.

Most anti-bot tools rely on keyword filters or CAPTCHA gates. Gait takes a different approach: it scores every member 0.00–1.00 based on how they act, then alerts your mod channel when a score crosses your threshold. Message text is never read or stored.

How it works

Each account gets a trust score from four behavioral dimensions:

  • Temporal (35%) — burst regularity, reply-latency consistency, typing-ratio variance. Bots run on clocks; humans don’t.
  • Content (25%) — message-length variance and edit rate. Length only — the text itself is discarded after measurement.
  • Lifecycle (25%) — account age at join, username entropy, avatar presence.
  • Social (Phase 2) — cross-server clustering, currently neutral.

A minimum of 50 events is required before any account is scored, so brand-new members aren’t auto-flagged.

What gets sent off your server
  • Anonymized user IDs (HMAC-SHA-256, two-stage salted — irreversible)
  • Event type (message_create, guild_join, etc.), message length, edit flag
  • Account age, avatar presence, username entropy
What never leaves your server
  • Message content
  • Raw Discord user IDs
  • DMs, voice audio, usernames, emails, IPs
Setup (2 steps, ~5 min)
  1. Click Add to Discord and authorize Gait for your server.
  2. Run /gait setchannel #your-mod-channel — Gait posts a test alert to confirm.

That’s it. No dashboard, no API keys, no account.

Slash commands
  • /gait setchannel — set the alert channel
  • /gait settings threshold:0.35 — adjust the alert threshold (default 0.45)
  • /gait mode auto — auto-kick confirmed bots instead of alerting only
  • /gait status @user — check the current trust score for any member
  • /gait whitelist @user — permanently mark an account as human
  • /gait suspects — list the top suspect accounts
  • /gait my-data — let a member request their own data (GDPR)
  • /gait forget-me — let a member request deletion (GDPR)
Permissions Gait asks for
  • Server Members (privileged) — to receive join/leave events for account-age and join-velocity signals
  • Message Content (privileged) — to measure message length only; text is discarded after measurement
  • Presence (privileged) — to observe online→idle→offline transitions for clockwork-presence detection
  • Send Messages + Embed Links — to post alerts in your configured channel
  • View Channels — to observe events in channels visible to the bot’s role
Feedback loop

Every alert ships with one-tap Confirm bot / False positive / Restrict / Whitelist buttons. Admin clicks become training labels — Gait gets sharper with use, across every server running it.


Privacy policy: https://usegait.dev/privacy
Terms of service: https://usegait.dev/terms
Website: https://usegait.dev

Check out the home page for the full Discord Bot List.