Skip to main content

Zero-GPU, zero-API heuristic AI-writing detector

Project description

   .--""--.
  /  o  o  \      "I sniff. I score. I judge your prose."
 |    ^^    |
  \  ------ /     +---------------------------+
   '.____.'       |      S L O P C H E C K    |
  /|      |\      +---------------------------+
 ^ |      | ^

Meet Sniffy, SlopCheck's official mascot and resident AI-prose bloodhound 🐾

SlopCheck

Zero GPU. Zero API keys. Zero mercy for "delving into a multifaceted journey."

PyPI License: MIT Python Deps Status


What is this thing?

Your writing sounds like it was "delving" into a "tapestry" of "multifaceted" ideas and "testament"-ing its way to a conclusion? SlopCheck knows.

It's a fully offline, zero-dependency AI-prose detector that reads your text the way a tired English teacher reads a suspicious essay, then hands back a cold, hard score.

No GPU. No API key. No cloud. No excuses.

Why developers actually like it

The Old Way The SlopCheck Way
Pay for a cloud "AI detector" Runs 100% on your CPU, offline
Wait on network round-trips Instant, local, stdlib-only
Black-box "trust me" score 5 transparent heuristic signals
Manual review before merge Drop it in your CI, block the slop

Get it running (30 seconds, we timed it)

pip install slopcheck

Point it at a file:

slopcheck doc.txt --explain

Or pipe anything into its mouth:

echo "delving into multifaceted layers" | slopcheck -

Sample verdict

slopcheck: stdin
Score: 45/100  (medium AI-signal density)

Phrase matches         5/40
Sentence rhythm        15/20
Punctuation             10/15
Paragraph uniformity   10/15
Lexical diversity        5/10

Flagged spans:
  L1: "...delving into this multifaceted ecosystem..."

  Heuristic estimate, not proof. False positives happen
    on formal/corporate writing and non-native English styles.

How Sniffy actually smells the slop

Five independent signals, no ML, no black box:

  • 📖 Phrase matcher: greedy scan against a weighted bank of known AI clichés
  • 🎵 Sentence rhythm: flags suspiciously uniform sentence lengths (real humans ramble)
  • ✒️ Punctuation signature: em-dash, colon, and parenthesis frequency checked against a bot-like baseline
  • 📐 Paragraph uniformity: every paragraph exactly the same size? Suspicious.
  • 🔤 Lexical diversity: Type-Token Ratio checks if your vocabulary is actually alive

CLI cheat sheet

slopcheck <file|->     # target file, or "-" for stdin
  --json                # machine-readable output
  --explain              # show flagged spans + context
  --no-color              # for your soulless CI logs

Use it as a library too

from slopcheck import scorer

result = scorer.score("Text to evaluate")
print(result.score, result.signals)

CI gatekeeper mode

SlopCheck exits with code 1 on high-risk documents, so wire it straight into pre-commit or CI and let Sniffy guard the gate.

- name: Block the slop
  run: slopcheck docs/*.md --no-color

Under the hood

slopcheck/
├── cli.py            → argument parsing & runner
├── scorer.py          → orchestrates all 5 signals
├── render.py           → console + JSON formatting
├── signals/
│   ├── phrases.py        → AI-cliché matcher
│   ├── rhythm.py           → sentence-length variance
│   ├── punctuation.py       → em-dash / colon frequency
│   ├── structure.py          → paragraph uniformity
│   └── lexical.py             → TTR vocabulary scorer
└── data/phrase_bank.json    → the naughty-phrase database

Contributing

Found new slop in the wild? Sniffy accepts submissions. See CONTRIBUTING.md.

License

MIT: free as in "delving into the multifaceted world of open source."


SlopCheck · sniffing out the tapestry, one testament at a time 🐾

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

slopcheck_cli-0.1.3.tar.gz (23.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

slopcheck_cli-0.1.3-py3-none-any.whl (17.2 kB view details)

Uploaded Python 3

File details

Details for the file slopcheck_cli-0.1.3.tar.gz.

File metadata

  • Download URL: slopcheck_cli-0.1.3.tar.gz
  • Upload date:
  • Size: 23.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.0

File hashes

Hashes for slopcheck_cli-0.1.3.tar.gz
Algorithm Hash digest
SHA256 fe810727d46211c946689185ae90bf3c5d4afe2b77c5444e927495abd7fa74d9
MD5 ad4e8ae2d58fc9aa679c4288ffd35e3e
BLAKE2b-256 cfd6525e4f56662e7d4ee3e6a34df932400278457aa56cf64bd5156e2ef90bd0

See more details on using hashes here.

File details

Details for the file slopcheck_cli-0.1.3-py3-none-any.whl.

File metadata

  • Download URL: slopcheck_cli-0.1.3-py3-none-any.whl
  • Upload date:
  • Size: 17.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.0

File hashes

Hashes for slopcheck_cli-0.1.3-py3-none-any.whl
Algorithm Hash digest
SHA256 10c147bebef404ef70f235738ed949fb61a9b1650656723a77e95db1434081be
MD5 0e702eda62eccc05ae3ef53f70c0e6ce
BLAKE2b-256 d6acc846f91fc2c0a53c3e064c5158b94cfb2def76fca0d19d30492445b30960

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page