AI-assisted rule authoring, the Maps editor, What-If score simulation, the selector toolchain and the Selector Grid rules engine.

    AI-Assisted Rule Authoring

    What it does

    Pipe a captured message into an LLM and get back a syntactically-correct Rspamd rule. The model analyses the captured message and its scan results, then returns a regex, multimap fragment, or composite expression that would catch it.

    Review the suggestion, paste it into the Maps editor, and ship it via hot-reload. No syntax errors, no trial-and-error — the model drafts, you review.

    What question it answers

    How do I write a regex for this header pattern? What composite expression captures these symbols? Can you suggest a multimap rule for this sender family?

    The rule-suggestion assistant answers these questions by analysing the actual message and returning ready-to-use Rspamd syntax.

    How it's different from manual authoring

    Manual rule authoring requires understanding Rspamd syntax, testing patterns, and iterating. LLM-assisted authoring accelerates this loop: observe a pattern, ask the model for a rule, review the output, and deploy.

    The model isn't making the decision. It's drafting syntax that you review and approve. Human in the loop is non-negotiable.

    End-to-end workflow

    Capture a message in Mail Streams. Click Ask LLM, pick the rule-suggestion preset or a custom prompt. The model returns a rule. Copy it to the Maps editor, save, and Rspamd picks it up on the next map poll. Under a minute from observation to deployed rule.

    Example: Sub-minute observation to deployed rule

    A capture stream catches a phishing campaign your existing layers missed. The operator opens one entry, selects 'Custom prompt' and asks: 'Suggest a multimap regex against the From: header that catches this sender family but not legitimate bank notification domains I'll paste in.' The model returns a regex; the operator pastes it into a sender blocklist map via the Maps editor. ~60 seconds end-to-end from observation to deployed rule.

    Maps Editor

    What it does

    Edit Rspamd maps directly in the dashboard with syntax highlighting for regex, SA-style lists, composites, and blocklists. Save changes and Rspamd picks them up on the next poll — no Rspamd reload required.

    The Symbols in this file panel shows which symbols reference the map, so you can see the impact of your changes before you save.

    What question it answers

    Which symbols use this map? What does the composites file look like? Can I edit this blocklist without SSH?

    The Maps editor answers these questions with an in-browser editor. No file access, no Rspamd reload — edit, save, and the change propagates via HTTP.

    How it's different from manual editing

    Manual map editing requires SSH, file access, and Rspamd reload. The Maps editor runs in your browser with syntax highlighting and validation.

    HTTP-served maps mean hot-reload. Rspamd polls the endpoint on its existing schedule — no restart, no reload, no service interruption.

    Map types supported

    Regex maps, multimap files, composites expressions, IP blocklists, domain blocklists, mail-from blocklists — all supported with syntax highlighting and validation.

    Maps Editor

    Example: Hot-reloaded composite update

    An operator opens the composites map in the Maps editor. The Symbols in this file panel lists the composites defined there. Adding a new composite expression for a recently-observed pattern, the operator saves the file. Rspamd picks up the change on the next map poll — no reload required. The new composite begins firing immediately.

    Score What-If

    What it does

    Simulate weight and threshold changes against historical traffic before you commit. The What-If simulator replays your scan data with proposed scores and shows the predicted impact on verdicts.

    Test a symbol weight change, threshold adjustment, or composite expression modification. See how many messages would flip from reject to allow — or vice versa.

    What question it answers

    If I lower this threshold, how many FPs will I introduce? What happens if I disable this RBL? Will my new composite cause collateral damage?

    What-If answers these questions with data from your actual traffic. No guesswork, no production testing.

    Safe tuning

    The simulator shows predicted verdict changes before you touch your production config. Validate a tuning decision against replayed traffic, then commit with confidence.

    Score What-If

    Example: Validating a threshold change

    An operator wants to lower the reject threshold from 15 to 12 to catch more spam. The What-If simulator predicts this will reject an additional 8,200 messages per day — but 1,200 of those are legitimate mail from a high-volume sender. The operator keeps the threshold at 15 and instead targets the specific symbols that missed those messages.

    Selector Constructor

    What it does

    Build a selector from the node's live registry, test it against a real message, and add it to the Selector Grid with a weight — without memorising selector syntax.

    The extractor and transform lists are fetched from the running node, so custom extractors you have deployed appear automatically, each with its own inline documentation. A raw-edit toggle drops you into the expression as text whenever the builder gets in your way.

    Test before you ship

    Paste a raw message, or pick one straight out of a capture stream, and evaluate: the constructor shows you what the selector actually extracts from it. One click then deploys the finished selector as a scoring rule.

    The loop from 'I noticed a pattern' to 'the rule is live' never leaves the browser.

    Selector Constructor

    Selector Code

    What it does

    When the built-in extractors don't reach far enough, author a selector in Lua. The console signs it with Ed25519 and stores it; the scanner verifies that signature before it will load the code.

    Once loaded, a custom selector behaves like any other — use it in the Constructor, in the Selector Grid, or as a clustering key.

    Why the signature matters

    Custom selectors are executable code running inside your scanner. The private signing key lives only in the console's environment, so gaining write access to the shared state store is not enough to inject code the scanner will run.

    Extensibility without turning your data store into a remote-code-execution surface.

    Selector Code

    Selector Grid

    What it does (premium)

    Selector Grid is a rules engine that builds scoring rules from lua_selectors value sets. One click turns a cluster or stream observation into a deployed scoring rule — no syntax, no config files.

    Define selectors (from-domain, ASN, header fingerprint, URL pattern), set match conditions and scores, and ship the rule. Rspamd picks it up via HTTP poll.

    What question it answers

    How do I turn this cluster into a rule? Can I score based on ASN? What's the fastest way to ship a header-fingerprint rule?

    Selector Grid answers these questions by turning observations into rules without touching Rspamd config files.

    From observation to rule

    The Clusters panel shows a pattern. Click 'Create Selector Grid rule', define the selector and score, save. The rule is live. No rspamd.conf, no reload — the rule propagates via HTTP.

    Selector Grid

    Example: ASN-based scoring

    Clusters identifies spam coming from a specific ASN. The operator clicks 'Create Selector Grid rule', selects the ASN selector, sets a score of 8.0, and saves. The rule is live within minutes. All subsequent mail from that ASN receives the score, and the cluster disappears from the spam stream.

    Ready to see it on your own traffic?