openclaw-profanity

Verified·Scanned 2/18/2026

Content moderation plugin for OpenClaw/Moltbot AI agents. Use when building chatbots that need profanity filtering, moderating user messages in Discord/Slack/Telegram bots, or adding content moderation to OpenClaw agents.

from clawhub.ai·v0e9f5bc·3.8 KB·0 installs
Scanned from 1.0.0 at 0e9f5bc · Transparency log ↗
$ vett add clawhub.ai/thegdsks/openclaw-profanity

OpenClaw Profanity Plugin

Profanity detection plugin for OpenClaw and Moltbot AI agents. Adds automated content moderation to your chatbot with leetspeak, Unicode, and multi-language support.

Installation

npm install openclaw-profanity

Setup with OpenClaw

import { OpenClaw } from 'openclaw';
import { profanityPlugin } from 'openclaw-profanity';

const bot = new OpenClaw({
  plugins: [
    profanityPlugin({
      action: 'warn',              // warn | censor | block | log
      detectLeetspeak: true,
      normalizeUnicode: true,
      languages: ['english'],
      customWords: [],
      ignoreWords: []
    })
  ]
});

Configuration Options

OptionTypeDefaultDescription
actionstring'warn'Action on profanity: warn, censor, block, log
detectLeetspeakbooleantrueCatch f4ck, sh1t patterns
normalizeUnicodebooleantrueCatch Cyrillic lookalikes
languagesarray['english']Languages to check
customWordsarray[]Additional words to flag
ignoreWordsarray[]Words to whitelist
onViolationfunction-Custom handler for violations

Actions

warn - Respond with warning

profanityPlugin({ action: 'warn' })
// Bot responds: "Please keep the chat clean."

censor - Replace and continue

profanityPlugin({ action: 'censor', replaceWith: '***' })
// "What the ***" is processed normally

block - Ignore message entirely

profanityPlugin({ action: 'block' })
// Message is not processed

log - Log and continue

profanityPlugin({ action: 'log' })
// Logs violation, processes normally

Custom Violation Handler

profanityPlugin({
  action: 'custom',
  onViolation: async (message, result, context) => {
    // Track repeat offenders
    await trackViolation(message.userId, result.profaneWords);

    // Custom response
    if (getViolationCount(message.userId) > 3) {
      await banUser(message.userId);
      return { blocked: true };
    }

    return { blocked: false, warning: "First warning..." };
  }
})

Platform Examples

Discord Bot

const bot = new OpenClaw({
  platform: 'discord',
  plugins: [
    profanityPlugin({
      action: 'censor',
      detectLeetspeak: true,
      languages: ['english', 'spanish']
    })
  ]
});

Telegram Bot

const bot = new OpenClaw({
  platform: 'telegram',
  plugins: [
    profanityPlugin({
      action: 'warn',
      onViolation: (msg, result) => {
        return {
          reply: `Watch your language, ${msg.username}!`,
          deleteOriginal: true
        };
      }
    })
  ]
});

Slack Bot

const bot = new OpenClaw({
  platform: 'slack',
  plugins: [
    profanityPlugin({
      action: 'log',
      onViolation: (msg, result) => {
        notifyModerators(msg.channel, msg.user, result);
      }
    })
  ]
});

Detection Capabilities

The plugin catches:

  • Direct profanity: Standard bad words
  • Leetspeak: f4ck, sh1t, @$$, b1tch
  • Unicode tricks: Cyrillic а instead of a, etc.
  • Spaced letters: f u c k, s.h.i.t
  • Mixed obfuscation: fü©k, $h!t

Resources