Observer

Every channel. Every server.
One queue.

A moderation dashboard for online communities. Observer reads every message in your Discord and Minecraft servers and flags the ones that need a human. Powered by LLMs — no keyword lists, no rule trees.

Live preview from app.observer.gg/moderation/queue. Three of fourteen items currently waiting on a moderator.

/moderation/queue 47 sources · 12,847 today · 14 in queue
live
filter
K
@kraken99 Discord · survival.example.gg · #general
AI screening · 2m ago
@everyone come join my server!! free diamonds » bit.ly/​diamonds
severe spamphishinginvite-bait conf 98%
A MP
@ada_92@minecraft_pop
Minecraft · survival.example.gg · DMs Long-form pattern · 14m ago

11 messages over 5 days · private DMs · last 3 excerpted:

  • day 3 · "you sound young, how old r u?"
  • day 4 · "don't tell anyone we talk lol"
  • day 5 · "lets switch to snapchat, more private"
severe grooming child-safety pattern detected
FJ
@flame_jr Discord · survival.example.gg · #general
AI screening · 38m ago
lmao you're so dumb get out, no one wants you here
moderate harassmenttoxicity conf 74%

· 11 more in queue ·

Observer isn’t a chat bot. It’s a moderation dashboard above your community — reading every message and flagging only what needs a human.

Today: Discord (hosted bot) and Minecraft (free, open-source plugin). Roblox, Twitch, and YouTube are next. Every flag from every surface lands in one queue at app.observer.gg.

Review every flag with full context.

Queue on the left. Selected item on the right with context, classification, and suggested action. Click to act. Every action logged.

/moderation/queue 14 in queue · sorted: severity desc
live

queue

FJ

@flame_jr

#general · 38m ago

mod

lmao you're so dumb get out, no one wants you here

K

@kraken99

#general · 2m ago

sev

@everyone come join my server!! free diamonds

A MP

@ada_92 → minecraft_pop

DMs · 5d · long-form

sev

don't tell anyone we talk lol

· 11 more ·

FJ

@flame_jr

Discord · survival.example.gg · #general

account age 8mo · 3 prior flags · 1 prior mute (reversed)

message in context

"anyone got a base build i can copy"@new_player_42, 2m before
lmao you're so dumb get out, no one wants you here @flame_jr, just now · flagged
"hey, that's not chill"@hannah, 24s after

AI classification

moderate harassment toxicity conf 74% AI screening

Reasoning → Directed personal attack at a specific user (@new_player_42, T1 new account). Borderline-moderate — insult, not threat. Confidence below auto-action threshold, held for human review.

your policy says

conf < 80% → hold for human

All actions write to /audit · actor=@you · logged immutably.

Detect patterns across
days and accounts.

Grooming. Raid coordination. Multi-account scams. Slow-burn harassment. These don’t show up in any single message — they unfold across days, accounts, and threads. Observer reads the conversation and flags the pattern.

  • grooming (age drift, isolation, platform pivot)
  • raid coordination in DMs, before it hits #general
  • multi-account scams (same script, different handles)
  • recurring harassment across channels

@ada_92@minecraft_pop · Minecraft DMs · 5 days

11 messages
day 1
A
ada_92 14:22
hey :) saw you in #help. you new here?
MP
minecraft_pop 14:25
yeah just joined!! love this server
day 3
A
ada_92 20:11
you sound young, how old r u? im 16
day 4
A
ada_92 22:38
don't tell anyone we talk lol · just our thing
day 5 · today
A
ada_92 01:14
lets switch to snapchat, more private

Long-form pattern detected

Grooming pattern across 11 messages, 5 days: age inquiry, isolation (“don’t tell anyone”), and platform pivot to a private app.

Sonnet · 1.4s · cross-referenced ada_92's prior 4 accounts (same fingerprint) · auto-escalated to senior reviewer queue

Synthetic example. Real flags are redacted in this view — mods see the full thread inside the dashboard.

Multi-account scams.

Each message looks like normal phishing. Observer links the accounts by shared IP, creation timing, and message structure — and flags the campaign as one item.

Six accounts.
One fingerprint.
Twenty-four targets.

Each victim sees one personalized DM and assumes it’s meant for them. The signals that tied the cluster together:

signal: creation cluster (47-min window)

signal: IP block: 185.220.101.0/24 (Tor exit)

signal: 2 message variants, 6 accounts

signal: common URL host: discord-verify.net

VX TS OM SD +2

Multi-account scam cluster · fp=0x...8a7f

Discord · survival.example.gg · DMs to 24 members Long-form pattern · 47m window

accounts in cluster

  • VX @verify-bot-x created 2h ago 3 DMs sent script #A
  • TS @observer-staff created 2h ago 4 DMs sent script #A
  • OM @official-mod-team created 2h ago 5 DMs sent script #A
  • SD @support-dnd created 1h ago 4 DMs sent script #B
  • DS @discord-secure created 1h ago 3 DMs sent script #B
  • MH @moderation-help created 1h ago 5 DMs sent script #B

script A (used by 3 accounts, 12 victims)

"Hey @[role], your account was flagged. Verify here to keep posting: discord-verify.net/auth/[varies]"

severe scam impersonation phishing coordinated-inauthentic pattern detected

Suggested: ban all 6 + alert 24 victims · per policy

What we measure.

Classification latency

<100ms

Median end-to-end. <400ms at p95. Haiku for most of the queue, Sonnet for context, Opus on the hard cases.

Audit coverage

100%

Every state change is recorded — actor, action, target, before, after, timestamp. Append-only, immutable.

Long-form window

5days

Default look-back for grooming, raid prep, and multi-account scams. Tunable up to 30 days.

Plugin license

$0

Apache 2.0, forever. The plugin is yours to inspect and run on your own server. Only the dashboard is the SaaS.

Beta targets. We’ll publish precision, recall, and real production numbers in our first public transparency report.

Read the source. Run it yourself.

The Minecraft plugin is a thin sensor + actuator. Zero business logic. Apache 2.0. Below: one chat event’s journey through the system.

One message.
200ms.
Ten log lines.

Plugin emits the chat event. Backend classifies and applies your policy. Plugin executes the decision and acks. Every line below is a real log entry.

build: observer-plugin-0.0.0.jar

runtime: paper-api 1.21.4 · folia-supported

transport: okhttp ws · auto-reconnect

integrations: LiteBans · LuckPerms · EssentialsX

plugin is Apache 2.0 · forever

observer.log · survival-main
tail -f · live
22:14:01.082 INGEST AsyncChatEvent · server=survival-main · author=kraken99 · payload=minecraft.chat
22:14:01.084 WS-OUT → /v1/events · ws://app.observer.gg · 1.2 KB · EventEnvelope
22:14:01.171 LLM Haiku 4.5 · system prompt cached (hit) · 87 ms · 142 tok in · 18 tok out
22:14:01.172 CLASSIFY severity=severe · categories=[spam,phishing] · conf=0.98 · src=ai_screening
22:14:01.173 POLICY OrgModerationPolicy[org=acme] · severe + spam → action=ban
22:14:01.176 DECISION decision_executed · target=@kraken99 · action=ban · scope=server · audit=ae-r-014
22:14:01.182 WS-IN ← decision frame · ban · target=kraken99 · ts=22:14:01.176
22:14:01.198 ACTUATE LiteBans softdep present · ban() → player.kick(reason) · 16 ms
22:14:01.201 ACK AckResult{ executed=true, integration=litebans, latency=22ms } → backend
22:14:01.204 BUKKIT ObserverDecisionEvent fired · companion plugins notified · 3 listeners
_

Frequently asked
questions.

Don’t see yours? Email hello@observer.gg.

What platforms does Observer support today? +
Discord (hosted bot) and Minecraft (free plugin). Roblox is next, then Twitch and YouTube.
Do you replace my existing moderation tools? +
No. Observer sits on top of them. Keep AutoMod, LiteBans, LuckPerms, EssentialsX, your custom Discord bot. We read events from them and run decisions back through them.
Do you read DMs? +
Yes — that’s where grooming, raid coordination, and multi-account scams hide. Encrypted at rest, 90-day default retention, deletable per user. Mods only see flagged threads, never raw scrolls.
How does pricing work? +
Core (plugin, queue, audit log) is free forever. Modules are paid monthly per community. AI runs on credits. Full breakdown at /pricing.
DSA, COPPA, UK OSA — compliance scaffolding? +
The transparency module handles DSA Article 24 reports, COPPA age-flag tooling, UK OSA risk-assessment templates, and per-user DSR access and erasure. Auditors get read-only audit-log access.
Can I self-host the backend? +
The plugin is Apache 2.0 — yours to fork and run anywhere. The backend runs on AWS, hosted by us. On-prem is on the roadmap; get in touch if you need it.
What about false positives? +
Default is human-in-the-loop: AI classifies, your team approves. Auto-action thresholds are tunable per severity and category. Appeals are built in. Every reversal trains the classifier.

What happens next.

A small team running a private beta. No drip campaigns. No qualification forms. No “book a meeting with our SDR.”

  1. step 01 · within 24h

    A real person replies.

    A short note asking which platforms you run and what your worst moderation moment was this month.

  2. step 02 · ~30 min call

    We learn your setup.

    What you have, where it hurts, what you wish a tool did. We’ll tell you straight if Observer isn’t a fit.

  3. step 03 · same week

    We set up together.

    Plugin install, Discord bot invite, dashboard onboarding. About 45 minutes. We do the work; you click approve.

  4. step 04 · ongoing

    Direct line to the team.

    Private Discord, weekly office hours. Your roadmap input shapes ours. Beta is free; pricing starts at 1.0.

Join the private beta.

We’re shipping with a small number of communities. Tell us which platforms, how many members, and what your current setup misses.

No marketing. A real person will reply within the day.