OpenClaw Profanity Plugin

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.

Installa
$clawhub install 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

Option Type Default Description
action string 'warn' Action on profanity: warn, censor, block, log
detectLeetspeak boolean true Catch f4ck, sh1t patterns
normalizeUnicode boolean true Catch Cyrillic lookalikes
languages array ['english'] Languages to check
customWords array [] Additional words to flag
ignoreWords array [] Words to whitelist
onViolation function - 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