DOCS/COMMANDS.MD
Commands
GlassFrame Protocol registers no slash commands. Every command is a
prefix command (default prefix !gf, configurable via config.prefix),
requires Manage Server permission (or being the guild owner), and is
throttled per user per guild by performance.commandCooldownMs (default
3s) - a repeated or accidental double-send is silently ignored rather than
running twice or getting a "slow down" reply of its own.
| Command | Does |
|---|---|
!gf panel |
Sends the 5-button control panel (see below). |
!gf status |
Shows which of the four layers are currently active in this server. |
!gf scan |
Runs RoleAnalyzer.scanRoles() on demand and reports any role name/permission mismatches. |
!gf metrics |
Shows this server's metrics by default - a button on the message switches to bot-wide (all servers) and back. See docs/PERFORMANCE.md. |
!gf phishing add <domain> |
Adds a domain to the link blocklist. |
!gf phishing remove <domain> |
Removes a domain from the blocklist. |
!gf phishing list |
Lists every blocked domain. |
!gf whitelist add <userId> |
Exempts a user from punitive action in this server. |
!gf whitelist remove <userId> |
Removes that exemption for this server. |
!gf prefix set <newPrefix> |
Changes this server's own command prefix. |
!gf prefix reset |
Goes back to the default prefix. |
!gf help |
Lists these commands (this list, minus engine - see below). |
Everything above operates on the server the command was sent in - arming AntiRaid, whitelisting someone, or checking status in one server has no effect on any other server the bot is in. See docs/STATE.md.
The control panel
!gf panel sends a message with exactly five buttons in one row, scoped to
the server it was sent in:
- Activate/Deactivate AntiRaid
- Activate/Deactivate AI Moderation
- Activate/Deactivate AntiNuke
- Activate/Deactivate Basic Security
- Activate/Deactivate Full Protocol - arms or disarms all four at once, for this server only
Every layer starts disabled in every server - nothing runs until it's
explicitly activated, either from the panel or via
frame.enableLayer("antiRaid", guildId) in code. Button labels flip
between Activate/Deactivate based on that server's current state, and the
panel message updates in place on every click rather than posting a new
message each time. Clicking a button also drops one aggregated log line in
the security log channel noting who changed what.
The metrics button
!gf metrics (and the panel's numbers, indirectly) has one button of its
own, separate from the panel's five: Show Global (All Servers) /
Show This Server, flipping the message between this server's counts
(open cases, flagged members, active layers, whitelist size) and bot-wide
totals across every server (queue depth, cache stats, average latency).
Still shared, not per-guild: the phishing blocklist
(!gf phishing) is the one command surface left that applies to every
server this bot process is in, not just the one it was used in - see
Protocol Layers - Scope for the full breakdown of what's per-guild vs.
still shared.
!gf engine
Deliberately not in the table above, and not listed by !gf help. Gated
by options.owners (a Discord user ID allowlist checked in code) rather
than Manage Server permission, and optionally a second-factor password
(config.engine.password) with attempt-limited lockout. Opens a 5-page,
bot-wide dashboard - busiest servers, AI usage, live cross-server activity,
aggregate performance. Full reference: docs/ENGINE.md.