FreeGuard v3.0.0 · Open source

FreeGuard — AI Moderation for Discord

Your server, guarded by AI as it lands

FreeGuard watches text, images, reactions and voice across 7 detection layers — then hands your staff a beautiful OAuth-secured console to manage strikes, bans and appeals. No subscriptions. Every record encrypted.

Free forever MIT licensed Encrypted by default
0Detection layers
0Per-server settings
0Bit encryption
0Free AI tiers
Capabilities

Everything a healthy server needs

Real-time analysis across every surface of Discord — configured per server, adjusted live, no restarts.

Detection core

Seven layers, one sweep

Every message passes the full stack. A lightning demo — watch the sweep:

L1Spam
L2Links
L3Invites
L4Caps
L5Mentions
L6Images
L7AI text
How it works

Silent in the channel, loud in the ledger

The bot never babysits a config menu — it watches, scores, warns, and lets your staff decide from the console.

01

Watch

Messages, attachments, reactions and voice streams are analysed live against the server's ruleset.

02

Score

Violations increment encrypted per-user strike records with reason, category and timestamp.

03

Enforce

Thresholds auto-delete, DM-warn and eventually auto-ban — with automatic lift after a set duration.

04

Appeal

Banned users press a button in their DM, submit a form, and staff approve or deny from the console.

Slash commands

One command set per role

Commands surface automatically based on Discord permissions — everyone gets self-service, staff get the guard toolkit, admins get the control surface.

Web console

A glass console, not a spreadsheet

Discord OAuth login. Per-guild. Warn, role, kick, ban, resolve appeals and search the live audit trail — all behind an allow-list of server IDs.

console — overview
Risk mix live
+14 today HIGH
6 pending appeals OPEN
100% encrypted OK
Auto-actions live
3 warnings sentDM
1 ban liftedAUTO
0 overrides—
Appeals queue 2
Everything is instant

All six views pre-fetch at login, so tab switches render from cache in near-zero time — even from a Raspberry Pi.

Locked down

Access requires the session user to moderate an allow-listed server. No server ID, no access.

Encrypted from the keystroke up

AES-256-GCM at rest, PBKDF2 key derivation, HMAC file naming — every stored byte is protected.

Get started

Three steps, two minutes

freeguard · quickstart
# install
$ npm install
$ cp .env.example .env     # add DISCORD_TOKEN

# run bot + console
$ node index.js
  → bot online ✓
  → dashboard on :3000
  → funnel → raspberrypi.tail6bc7fe.ts.net

# as a service
$ sudo ./install-dashboard.sh
  → systemd active (running) ✓
1
Invite the bot

One OAuth click with Administrator permissions — or self-host your own instance from source.

2
Point the console at your server

Log in with Discord, add your server's ID to the allow-list, and every view is live.

3
Set rules in Discord, not code

Change strike thresholds, durations and systems over 30+ runtime settings — no restarts.

FAQ

Questions, answered

Is anything stored in plain text?
No. User records, appeals, bans and logs are encrypted with AES-256-GCM before they touch disk. Secrets live in a gitignored .env.
Does it cost anything to run?
It uses free AI tiers — OpenRouter for text analysis and Hugging Face for NSFW images and voice transcription. A Raspberry Pi runs the whole stack comfortably.
How do banned members appeal?
The ban DM includes an "Appeal this ban" button. It opens a short form; the submission appears in the console's Appeals queue. Approving lifts the ban immediately, clears strikes and DMs a one-time invite back.
Do members need to install anything?
No. Moderation runs passively. Members can check /my-strikes and /my-log, and submit /appeal. Staff commands appear automatically to users with the right permissions.
Can the public bot serve many servers?
Yes — the bot's commands work in any server it joins. The web console is scoped by ALLOWED_GUILD_IDS: add a server's ID (comma-separated) or leave it empty to allow any server where the logged-in user is a moderator.
Where can I host it?
Anywhere Node.js 18+ runs: VPS, Raspberry Pi, a cloud function. The bundled installer wires a systemd unit; the docs cover funnels for a public URL.
Get started

Your server deserves a FreeGuard

Two minutes from invite to live protection. Free forever — no credit card, no trial clock.