About

A moderation bot that respects its operator.

MARVIN started from one specific complaint: the most popular Discord moderation bots are excellent at the easy stuff and weak at the hard stuff. Anti-spam works. Anti-invite-link works. But the actual modern attack — three to six scam images dropped in a burst with@everyone attached — slips through. That's the gap MARVIN was built to fill.

What we're building

A multi-guild bot that's modular at the cog level (drop in a new feature, restart, it auto-appears in the dashboard), entirely free to operate (no paid APIs, no subscriptions), and self-hostable so you actually own the data your community produces.

Design decisions

  • Everything in MySQL. No file-based config. No in-process-only state. If you delete the bot's machine but keep the database, your config + history come back on next boot.
  • No Redis, no Docker for v1. Two moving parts: Python bot + Node dashboard sharing a MySQL. Redis becomes attractive only when running >1 bot process; the architecture in PLAN.md shows where it would slot in.
  • $0/mo target. Every paid API was swapped for a local model. NudeNet, OpenNSFW2, CLIP zero-shot, Tesseract, and Ollama all run on your bot host.
  • Per-guild everything. Module toggles, settings, role mappings, ticket categories — all per-guild. Nothing is global except the bot identity and theknown_scam_phashes table (operator-curated).
  • Honest scaffolding. Empty states say “empty”, not “0” faked into looking populated. If the bot is offline, the dashboard says so.

Who's behind it

Built by kamikaze-skynet with AI pair-programming. The Skynet project family also ships allcarpvp.com and other small tools — same dark theme, same “simple stack, honest defaults” philosophy.

Open source

The repo is at https://github.com/kamikaze-skynet/discord_moderation_bot. Issues + PRs welcome. The license is intentionally permissive so you can fork and run your own variant.