Install aislop with Python tooling and scan your code for AI slop
Project description
aislop for Python
Catch the slop AI coding agents leave in your code.
The patterns Claude Code, Cursor, Codex, and OpenCode leave behind: narrative comments above self-explanatory code, swallowed exceptions, as any casts, hallucinated imports, duplicated helpers, dead code, todo stubs, oversized functions. Tests pass. Lint passes. The code rots anyway.
aislop catches them. 50+ rules across 8 language targets (TypeScript, JavaScript, Expo / React Native, Python, Go, Rust, Ruby, PHP). Scores every change 0–100. Sub-second. Deterministic — no LLM in the runtime path, same code in, same score out. MIT-licensed, free CLI.
This package is the Python-tooling distribution of
aislop. The CLI is identical across every channel. Prefer npm or Homebrew? See other ways to install.
Install
Use pipx for a global, isolated, Python-managed CLI install:
pipx install aislop
Then scan any project:
aislop scan
pipx keeps aislop in its own virtual environment, so it never collides with your project dependencies. Plain pip install --user aislop also works if you prefer.
First run
From the root of a repo:
aislop scan
You get a single 0–100 score and a list of findings. Common next steps:
aislop fix # auto-fix safe issues
aislop fix -f # aggressive fixes (deps, unused files)
aislop ci # CI-friendly JSON output and exit code
aislop hook install --claude # install a per-edit agent hook
aislop rules # see every rule
aislop doctor # check local tool availability
What gets installed
This package exposes two commands:
aislop— the CLIaislop-mcp— the MCP server, for tools that speak Model Context Protocol
Requirements
- Python 3.9+
pipx(orpip)- Node.js available on
PATH—aislopruns Node-based engines under the hood
On macOS:
brew install pipx node
pipx ensurepath
On Debian/Ubuntu:
sudo apt install pipx
pipx ensurepath
# install Node.js from https://nodejs.org or your distro's nodesource setup
Run aislop doctor to confirm every engine can run on your machine.
Hand off to your agent
When auto-fix can't solve an issue, pass the remaining findings to your coding agent with full context:
aislop fix --claude # Claude Code
aislop fix --codex # Codex CLI
aislop fix --cursor # Cursor (copies to clipboard)
aislop fix --gemini # Gemini CLI
aislop fix --prompt # print an agent-agnostic prompt
Install a hook so feedback flows back after every edit:
aislop hook install --claude # Claude Code
aislop hook install # pick agents interactively
MCP server
Expose aislop as MCP tools (aislop_scan, aislop_fix, aislop_why, aislop_baseline) for Claude Desktop, Cursor, or Codex:
{
"mcpServers": {
"aislop": {
"command": "aislop-mcp"
}
}
}
CI
aislop scan --staged # staged files before commit
aislop ci # JSON output, exits 1 if score < threshold
aislop scan --sarif > aislop.sarif # SARIF 2.1.0 for GitHub code scanning
Set a minimum score in .aislop/config.yml:
ci:
failBelow: 70
More: CI/CD docs.
Configure
Tune rules, severities, and excluded paths in .aislop/config.yml:
exclude:
- "**/*_test.py"
- src/generated
rules:
ai-slop/narrative-comment: warning # error | warning | off
Run aislop init to scaffold one. Full reference: configuration docs.
Upgrade
Upgrade the Python package:
pipx upgrade aislop
Check whether a newer release is available:
aislop upgrade
Examples
aislop scan --changes # only changed files from HEAD
aislop scan --staged # staged files before commit
aislop scan --sarif > aislop.sarif # SARIF for GitHub code scanning
aislop badge # generate a public score badge
Troubleshooting
aislop: command not found after install — run pipx ensurepath and reopen your shell so the pipx bin directory is on PATH.
Node.js not found — aislop needs Node on PATH. Install it (brew install node, or from nodejs.org) and re-run aislop doctor.
Command already exists — if another install (npm or Homebrew) already owns aislop, pick one source. To replace it with the pipx copy: pipx install --force aislop.
Other ways to install
The same CLI ships through three channels:
pipx install aislop # Python (this package)
brew install scanaislop/tap/aislop # Homebrew
npx aislop@latest scan # npm / Node (no install)
See the Homebrew tap and the main project README for the npm-family options.
For teams
scanaislop is the hosted platform for teams: PR gates with score thresholds, an org → team → project standards hierarchy, dashboards, and agent attribution. Same engines, same scores. The CLI is MIT-licensed and free.
Links
- Main project: https://github.com/scanaislop/aislop
- Docs: https://scanaislop.com/docs
- Issues: https://github.com/scanaislop/aislop/issues
- PyPI package: https://pypi.org/project/aislop/
- Homebrew tap: https://github.com/scanaislop/homebrew-tap
Project details
Release history Release notifications | RSS feed
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 aislop-0.10.2.1.tar.gz.
File metadata
- Download URL: aislop-0.10.2.1.tar.gz
- Upload date:
- Size: 5.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e31ae5579ee7d251bcd128b1b8c5afa75d5d0aea7334f2c1269282940788be62
|
|
| MD5 |
fa089ff02de0a2393fb14d1b65c620ba
|
|
| BLAKE2b-256 |
fc364bb2d1d625d3cfc6d0c49fd693193c288641e7b0934e27a8801c856a1d03
|
File details
Details for the file aislop-0.10.2.1-py3-none-any.whl.
File metadata
- Download URL: aislop-0.10.2.1-py3-none-any.whl
- Upload date:
- Size: 5.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f3ff513f2bd67462df1f2a5b591d7b52365258735a362f4d957e687c52531184
|
|
| MD5 |
c3a0c1fb3ddfa905158e713673c6242a
|
|
| BLAKE2b-256 |
47009d7f11c8397fc7ba9ac73c3d1ff88007f00e443e76c670a7a1054d515c3f
|