freeq provides IRC-standard moderation tools enhanced with cryptographic identity.
| Mode | Meaning |
|---|---|
+o nick |
Operator — full channel control |
+h nick |
Half-op — can kick/ban, can't change modes |
+v nick |
Voice — can speak in moderated (+m) channels |
+b mask |
Ban — prevent user from joining |
+i |
Invite-only |
+m |
Moderated — only voiced/ops can speak |
+t |
Topic locked — only ops can change topic |
+n |
No external messages |
+k key |
Channel key (password) |
Because users have cryptographic identities, moderation actions are more meaningful:
MODE #chan +b did:plc:abc123 bans the identity, not just a nick/op nick — Give operator status
/deop nick — Remove operator status
/voice nick — Give voice
/kick nick reason — Kick from channel
/ban did:plc:... — Ban by DID
/ban nick!*@* — Ban by hostmask pattern
/unban mask — Remove ban
/mode #chan +i — Set invite-only
/invite nick — Invite to +i channel
Instead of manual /invite and /ban, channels can use the Policy Framework for automated, credential-based access control.
Example: Only GitHub org members can join #dev:
POLICY #dev SET REQUIRE github:org:mycompany
Server operators have global privileges:
OPER_DIDS=did:plc:abc123 # in server environment
Opers can:
- Operate in any channel
- Set global modes
- Access server administration
Built-in per-user rate limiting:
- 5 messages per 2 seconds per session
- Line length limit: 8KB
- Nick validation: 1-64 chars, no control characters
- SASL: 3 failures → disconnect
+nt on all channels (default on new channels)