🪄 Pixie Docs
Overview Commands Blog Status Invite
Setup & Server

Anonymous Reports

Lets members DM in a report that reaches staff with zero identifying information attached - staff can reply through the bot, and can only ever ban a reporter (not identify them) within a short window using the report's short ID.

How it works

A member runs /report, confirms they want to be DMed, and describes their issue in their DMs. Pixie posts it into your configured report channel as a thread, relayed through an anonymous "Reporter" webhook - no username, avatar, or account info tying it back to them anywhere in the thread. Staff replies in the thread get relayed back to the reporter's DMs the same way, and the connection is two-way until either side closes it.

🔒

Staff can never identify who filed a report. Bans use a one-way hash of the reporter's ID that gets purged after 7 days - after that window, not even Pixie can connect a report back to anyone.

Setup

Manage Guild
$reportconfig

Set a channel for reports and turn the system on. Also configurable: auto-close duration (default 14 days, up to 60).

Filing a report

/report

Confirms in the server (ephemeral), then continues entirely in DMs. The reporter has 1 hour to describe their issue before it auto-cancels - a Cancel button is also provided. Attachments (images, files) are re-uploaded with metadata stripped.

Reporter-side DM commands

CommandWhat it does
$switchreport <number>Switch which open report your DMs go to
$closereportFully cut the connection for your focused report

Staff side

Reply directly in a report's thread to talk to the reporter. Closing and banning both use a short report ID (shown when the report opens):

CommandPermission
$reportclose (also $closereport) / /reportconfig closereportTimeout Members
$reportban add <report_id> / /reportconfig ban addManage Guild + Ban Members
$reportban remove <ban_id> / list (slash: /reportconfig ban remove / list)Manage Guild + Ban Members

The ban commands' prefix and slash forms genuinely live in different places - $reportban is its own top-level command, while the slash version is nested under /reportconfig ban. Not a typo, just how it's built.

Spam protection

If either side sends several messages in a short burst, they're queued and delivered together ~20 seconds later instead of relaying each one individually, with a heads-up that they can close the report if that's what they'd rather do.