Detect AI-hallucinated packages before you install them.
Project description
slopcheck
Detect AI-hallucinated packages before you install them.
When your AI coding assistant suggests flask-gpt-helper or easy-requests, those packages probably don't exist. But someone might register them as malware before you notice. That's slopsquatting.
slopcheck catches it first.
Install
pip install slopcheck
Or one-liner if you're in a hurry:
Mac/Linux:
curl -fsSL https://raw.githubusercontent.com/0xToxSec/slopcheck/main/install.sh | bash
Windows (PowerShell):
irm https://raw.githubusercontent.com/0xToxSec/slopcheck/main/install.ps1 | iex
Usage
Scan your project
# Auto-detect dependency files in current directory
slopcheck .
# Scan a specific file
slopcheck requirements.txt
Check a single package
slopcheck flask-gpt-helper --pkg pypi
slopcheck react-ai-utils --pkg npm
slopcheck easy-http --pkg crates.io
slopcheck github.com/fake/module --pkg go
Output
[SLOP] flask-gpt-helper (pypi)
> Package 'flask-gpt-helper' does not exist on pypi. Your AI made it up.
> Name ends with '-helper' -- classic LLM naming pattern
[SLOP] reqeusts (pypi)
> Package 'reqeusts' does not exist on pypi. Your AI made it up.
? Did you mean: requests
[SUS] easy-requests (pypi)
> Name starts with 'easy-' -- classic LLM naming pattern. Package exists but the name screams 'LLM bait'.
[OK] requests (pypi)
JSON output (for CI)
slopcheck requirements.txt --json
What it detects
- Non-existent packages -- the #1 signal. If it's not on the registry, your AI made it up.
- Brand new packages -- created in the last 7 days? Probably registered to trap you.
- Low downloads -- under 100 downloads means nobody uses it.
- Hallucination patterns -- LLMs love naming packages
{popular-lib}-{ai|gpt|helper|utils}. We check for these patterns. - Typosquats -- Levenshtein distance check against popular packages with "did you mean?" suggestions.
- Missing repo links -- legitimate packages almost always link to source code.
Supported ecosystems
| Ecosystem | Dependency files | Registry |
|---|---|---|
| PyPI | requirements.txt, pyproject.toml |
pypi.org |
| npm | package.json |
npmjs.org |
| crates.io | Cargo.toml |
crates.io |
| Go | go.mod |
proxy.golang.org |
Exit codes
| Code | Meaning |
|---|---|
| 0 | Clean -- all packages check out |
| 1 | Suspicious -- some packages deserve a second look |
| 2 | Slop detected -- hallucinated or dangerously new packages found |
Options
slopcheck [target] [options]
target Directory, file, or package name (default: .)
--pkg ECOSYSTEM Check single package (pypi, npm, crates.io, go)
--workers N Parallel registry checks (default: 10)
--json JSON output for CI pipelines
GitHub Action
Add this to your repo at .github/workflows/slopcheck.yml and every PR that touches dependency files gets scanned automatically:
name: slopcheck
on:
pull_request:
paths:
- 'requirements*.txt'
- 'pyproject.toml'
- 'package.json'
- 'Cargo.toml'
- 'go.mod'
jobs:
slopcheck:
runs-on: ubuntu-latest
permissions:
pull-requests: write
steps:
- uses: actions/checkout@v4
- uses: 0xToxSec/slopcheck@main
with:
path: '.'
fail-on: 'slop'
If slop is found, the action fails the check and drops a comment on the PR with the full report. Set fail-on: 'sus' to be stricter.
License
MIT
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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file slopcheck-0.2.0.tar.gz.
File metadata
- Download URL: slopcheck-0.2.0.tar.gz
- Upload date:
- Size: 13.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
dfb0341fc396f63f195884e9a9a6392b90716eb390a7ba7acdbf354cf1661939
|
|
| MD5 |
4ec6e1b0097dd9826e9ba843ee001419
|
|
| BLAKE2b-256 |
25d7e13f342a6644446d1ba48c61071bbf7693766189754fadb370eeb3225851
|
File details
Details for the file slopcheck-0.2.0-py3-none-any.whl.
File metadata
- Download URL: slopcheck-0.2.0-py3-none-any.whl
- Upload date:
- Size: 13.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9ef08966051cf11c6883d0e9a6f31ba6e16e2722b6776892ad19375fd2046a08
|
|
| MD5 |
db1fe6294509a613fce05d781d7ad388
|
|
| BLAKE2b-256 |
1404278b1849f23b1c8a007314281d2aabea732fc5970c7da06c2e444c5ae71d
|