unslop: a Claude Code plugin to detect and fix AI writing

I've written before about using LLMs for writing. A constant struggle with LLM writing assistance is the distinct "AI voice". You probably know exactly what I'm talking about, so I won't belabor the point.

I wrote a Claude Code plugin, unslop, as a quick first pass over AI slop to make it a bit less jarring. After installing it, you can say "unslop this" in any Claude Code conversation (or run /unslop) and it rewrites your text so it has less AI smell.

The detection patterns are organized into three tiers, drawn from Wikipedia's "Signs of AI writing" guide plus my own observations:

It does this using two strategies. The first is using a script which can detect the surface-level patterns using regex:

$ echo '...' | uv run scripts/detect_slop.py -v -

<stdin>  (slop score: 16.5, 79 words)
        [  high] high AI vocabulary density: 7.6% (6 words in 79)  "cornerstone, fostering, indispensable, meticulous, pivotal, robust"
       1: [  high] copulative avoidance: 'serves as a'  "serves as a"
       1: [  high] significance inflation: 'setting the stage for'  "setting the stage for"
       1: [   low] AI vocabulary pair in short sentence: pivotal, cornerstone
       1: [medium] dangling participle filler clause  ", underscoring the importance of..."
       1: [medium] dangling participle filler clause  ", ensuring that all stakeholders are aligned..."

────────────────────────────────────────────────────────────
Files scanned:                 1
Files with slop:               1
Total findings:                7 (3 high, 2 medium, 2 low)

This is useful for quickly finding glaring issues, but it won't catch vague fluff that the LLMs like to emit. For that, the skill has guidelines to help your copilot identify more tell-tale patterns of AI writing that don't necessarily use a specific set of words.

The hardest part of the scanner was calibrating false positives. I ended up using density-based thresholds rather than per-occurrence flags for most patterns.

Install

Add to your Claude Code settings.json:

{
  "enabledPlugins": {
    "unslop@unslop": true
  },
  "extraKnownMarketplaces": {
    "unslop": {
      "source": {
        "source": "github",
        "repo": "crypdick/unslop"
      }
    }
  }
}

Then restart Claude Code or run /reload-plugins.


Code and docs on GitHub. Let me know if you find it useful.

Copyright Ricardo Decal. ricardodecal.com