Skip to content
Back to skills

Openclaw Profanity

ASecurity

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.

  • 14 stars
  • 0 votes
  • 0 copies
  • 1 view
  • Added September 7, 2026
ai-agentsjavascriptjavabashgit

Security analysis

A96/100
  • mediumInstalls packages at runtime which could introduce malicious dependencies

Pro shows the line behind each finding and how to fix it

Scanned September 7, 2026

npx -y skills add modbender/skill-library-mcp --skill openclaw-profanity --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Openclaw Profanity?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Openclaw Profanity
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/modbender-openclaw-profanity/badge)](https://www.skillsdirectory.com/skills/modbender-openclaw-profanity)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: openclaw-profanity
description: 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.
---

# 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

```bash
npm install openclaw-profanity
```

## Setup with OpenClaw

```javascript
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
```javascript
profanityPlugin({ action: 'warn' })
// Bot responds: "Please keep the chat clean."
```

### `censor` - Replace and continue
```javascript
profanityPlugin({ action: 'censor', replaceWith: '***' })
// "What the ***" is processed normally
```

### `block` - Ignore message entirely
```javascript
profanityPlugin({ action: 'block' })
// Message is not processed
```

### `log` - Log and continue
```javascript
profanityPlugin({ action: 'log' })
// Logs violation, processes normally
```

## Custom Violation Handler

```javascript
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
```javascript
const bot = new OpenClaw({
  platform: 'discord',
  plugins: [
    profanityPlugin({
      action: 'censor',
      detectLeetspeak: true,
      languages: ['english', 'spanish']
    })
  ]
});
```

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

### Slack Bot
```javascript
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

- npm: https://www.npmjs.com/package/openclaw-profanity
- GitHub: https://github.com/GLINCKER/glin-profanity/tree/release/packages/openclaw
- Core library docs: https://www.typeweaver.com/docs/glin-profanity

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…