vibe‑mod A field guide to deterministic moderation · built on Reddit Devvit

Reddit moderation, compiled

Write a moderation rule.
In plain English. It runs —
deterministically.

You shouldn’t have to learn YAML to keep your subreddit clean — or hand it to a black-box bot. vibe-mod turns a sentence into a deterministic, auditable, reversible rule you can read before it runs.

Install on your subreddit

Free for mods. One-click install · works on any subreddit you moderate.

rule : compile

You write

“Send brand-new accounts’ short posts to the mod queue.”

It runs

author.accountAgeHours lt 24 content.wordCount lt 40 modqueue
0 AI / post free for mods 24h shadow
01 The problem

Moderating a subreddit means writing rules. Today a mod has two bad options.

Moderators want to say what they mean, in their own words — and trust exactly what will happen.

— what mods actually ask for

AutoModerator YAML · regex

Powerful, but you hand-write YAML and regex. It’s technical, fiddly, and easy to get subtly wrong — and there’s no preview. You find out it misfired after it has already actioned real posts.

Generic “AI moderator” bots black box

You can’t see the rule it applies or audit why a post was removed. It calls an LLM on every post — cost, latency, nondeterminism — and undoing a mistake is painful.

02 Our solution

vibe-mod turns a plain-English sentence into a deterministic, auditable, reversible rule.

When you write it the AI runs once
01

Describe it

Type the rule the way you’d explain it to a co-mod. No config language to learn.

02

It clarifies, it doesn’t guess

If a rule is ambiguous, vibe-mod asks and lets you choose — it never decides silently.

03

You see the compiled rule

The exact logic, rendered back in readable English with its token cost. You approve it before it runs.

When it runs pure TypeScript, no AI
04

Zero AI per post

At runtime the rule is pure, deterministic TypeScript. No LLM in the loop — fast, consistent, cheap.

05

Safe by default

Every rule starts in a dry-run preview and a 24-hour shadow window before it can act.

06

Auditable & reversible

Every action is logged and has 30-day, one-click undo.

And it reacts to mod actions too — apply the Spam flair to a post and vibe-mod instantly removes and locks it, deterministically.

03 How it works

01 Write

Say it in plain English.

Describe the behaviour you want, exactly how you’d say it out loud. No syntax, no escaping, no regex reference open in another tab.

You type“Send brand-new accounts’ short posts to the mod queue.”
The vibe-mod Confirm form, titled "Confirm: brand-new short post, mod queue", showing the rule name, original sentence, and the compiled deterministic logic before it is saved.
Confirm form. The compiled rule and its token cost, shown back to you before anything is saved.

02 Clarify & Confirm

It asks, then shows the rule.

“Brand-new” could mean an hour old or a month old — so vibe-mod asks instead of guessing. You pick the threshold; it compiles your answer into deterministic logic, rendered back in English with the exact token cost, for you to approve.

This edit-time question is the only place AI runs. Once you approve, the rule is plain deterministic code — 0 AI calls per post.

It compiles toauthor.accountAgeHours lt 24 → modqueue
The vibe-mod Clarify dialog, titled "Clarify the rule", asking what counts as a brand-new account with a selectable option for accounts under 24 hours old.
Clarify modal. “What counts as a brand-new account?” — you choose the threshold; it never assumes one.

03 Preview → Activate

Dry-run, then go live — reversibly.

See what the rule would have done against recent posts, then activate it per rule. It runs in a 24-hour shadow window by default, and every action is one-click reversible for 30 days.

Lifetime cost on this sub$0.0019 across 6 compiles · 0 AI calls at runtime
The vibe-mod dashboard modal showing active and draft rule counts, recent actions, and lifetime token cost for the subreddit.
Dashboard. Dry-run previews and lifetime compile cost, all in one place.
04 Breadth

Any rule you can describe.

A sentence on the left; the deterministic predicate it compiles into on the right.
Real examples, exactly as vibe-mod renders them.

“Remove posts shorter than 20 characters.” content.length lt 20 remove
“Send titles that are mostly in CAPS to the mod queue.” content.title.upperCaseRatio gt 0.7 modqueue
“Remove posts with more than 3 links in the body.” content.linkCount gt 3 remove
“Auto-flair posts from users with under 50 karma as ‘new’.” author.totalKarma lt 50 set flair
“Send posts submitted between 2am and 6am UTC to mod queue.” time.hourOfDay gte 2 lt 6 modqueue
“Send posts from users without verified email to mod queue.” author.hasVerifiedEmail eq false modqueue
“Remove NSFW posts not tagged with the NSFW flair.” content.over18 eq true ∧ NOT post.flair nsfw remove
“Lock comment threads on weekends.” time.dayOfWeek in [0,6] lock
“Send posts from users who joined the sub less than a week ago.” author.subJoinAgeHours lt 168 modqueue
“Remove crossposts from other subreddits.” content.isCrosspost eq true remove
“Send posts with excessive emojis to mod queue.” content.nonAsciiRatio gt 0.2 modqueue
“Send off-topic posts to the mod queue.” post.flairText matches /(?i)off[- ]topic/ modqueue
“Auto-approve users with the ‘Verified Contributor’ flair.” author.flairText eq 'Verified Contributor' approveguarded
“When the ‘Spam’ flair is applied, remove the post and lock it.” on flairUpdate · post.flairText eq 'Spam' remove + lock
…or anything else you can put into a sentence. Mix 34 signals, 9 operators & 9 actions with and / or / not thousands of possible rules

Every right-hand line is the exact predicate vibe-mod runs — compiled once from your sentence, then deterministic on every post.

05 In action
demo — flair → remove + lock · 0:22

Flair it “Spam.” It’s gone.

vibe-mod reacts to mod actions, not just new posts. One flair triggers a deterministic chain — no second click, no waiting on a model.

A mod applies the “Spam” flair on r/SocialSeeding — vibe-mod removes and locks the post in real time. Loops automatically, muted.
06 Why trust it

Side by side, the difference is accountability.

Comparison of vibe-mod, AutoModerator, and a generic AI bot across authoring, readability, runtime AI calls, preview, reversibility, and audit log.
Capability vibe-mod deterministic AutoModerator config Generic AI bot black box
Author rules in plain English YAML / regex plain English
Read the final rule yes — deterministic yes, if you know YAML no — black box
AI calls per post at runtime 0 0 1 — every post
Preview before it acts dry-run + 24h shadow no rarely
Every action reversible 30-day 1-click undo manual manual
Audit log yes partial usually no
runtime
0
LLM calls per post once a rule is live — pure deterministic code.
compile free
~$0.0003
what a compile costs on gpt-5.4-mini — on us, never you.
on us
50/day
free compiles per subreddit — we cover the AI cost, no key needed.
shadow
24hr
dry-run window by default before any rule acts for real.
undo
30day
one-click reversal on every action, with a full audit log.