An Agent Skill that strips the tells out of AI-written text.
LLM prose has an accent — "it's worth noting that", "let's delve into", "it's not just X, it's Y", a hype verb in every sentence, an emoji on every bullet. Readers now spot it instantly and stop trusting the text. deslop teaches your AI agent to find those tells and rewrite them away — without flattening the writing or losing the meaning.
It's a skill, not an MCP server and not an agent: a SKILL.md of editing principles plus a zero-dependency Python linter that scores a draft and points at every tell with a line number and a fix.
$ python scripts/slopcheck.py draft.md
slopcheck — 45 words
score 577.8/1000w · heavy — reads unmistakably AI-generated
L1 !! [filler-opener] "it's worth noting"
→ Says nothing. Cut it and state the point directly.
L1 !! [epoch-cliche] "In today's fast-paced world"
→ Generic essay opener. Cut entirely.
L2 !! [not-just-x] "not just a tool, it's"
→ The 'not just X, it's Y' antithesis is a top tell. Make one claim.
...
- Scores any text/markdown file: weighted tells per 1,000 words, with a plain-English verdict.
- Locates every tell by line, category, and severity, each with a one-line fix.
- Guides the rewrite — the SKILL.md's principles tell the agent to rewrite the underlying sentence, not blind-delete phrases (the difference between cleaner prose and choppy prose).
- Knows when to stop: keeps domain terms, quotes, hedged uncertainty, and the author's voice. Em-dashes are flagged by density, not banned.
- Not a "make every sentence short" sledgehammer.
- Not a guarantee of bypassing AI detectors — it makes text read human by removing real tells, which is a different (and more honest) goal.
- Not an MCP server or autonomous agent — just instructions + a script, portable across hosts.
deslop follows the open Agent Skills (SKILL.md) spec, so it runs anywhere that format is supported — Claude Code, the Claude API, Codex, Cursor, Gemini CLI, and others.
Claude Code (personal):
git clone https://github.com/<you>/deslop ~/.claude/skills/deslop
# restart Claude Code, then run /skills to confirm it loadedClaude Code (project-scoped): clone into .claude/skills/deslop inside the repo.
GitHub CLI (v2.90.0+, inspect before you trust any skill):
gh skill preview <you>/deslop deslop
gh skill install <you>/deslop deslop --agent claude-code --scope userClaude API: upload the folder as a custom skill — see the Skills API quickstart in Anthropic's docs.
Once installed, just ask your agent to clean up a draft:
"Make this blog post sound less AI." · "Deslop my README intro." · "Edit this email so it reads like a person wrote it."
Or run the linter standalone, no agent required:
python scripts/slopcheck.py draft.md # full report
python scripts/slopcheck.py draft.md --min-severity high # worst offenders only
python scripts/slopcheck.py draft.md --json # machine-readable
cat draft.md | python scripts/slopcheck.py # from stdinRequires Python 3.8+. No pip installs, no API key, no network.
deslop/
├── SKILL.md # editing principles + workflow the agent follows
├── scripts/
│ └── slopcheck.py # the linter (stdlib only)
├── references/
│ └── tells.md # full catalog: every tell, why, before/after fix
└── README.md
Tells live as (category, severity, regex, note) tuples in slopcheck.py. PRs welcome for new patterns, language support, and false-positive fixes. See the bottom of references/tells.md for the gotchas.
Audit before you install — community skills aren't verified by anyone. slopcheck.py is pure stdlib, makes no network calls, and only reads the file you point it at. Read it yourself; it's short.
MIT.