Show HN: AISlop, a CLI for catching AI generated code smells
github.com29 points by Heavykenny 43 minutes ago
29 points by Heavykenny 43 minutes ago
Hi, I’m Kenny, I’ve been building aislop. I starting working on this after using Claude Code, codex and opencode several times and noticing some slops. They aren’t syntax and passes most tests, they are patterns like empty catch blocks, useless comments, duplicated helpers, dead code and many more. So I built a tool to scan and check for these patterns and wired it into hooks so after each tool call, the agent checks for the slops.
You can try it out with npx aislop scan.
It’s all local and no code is transferred. Thank you.
A linter with rules for AI-specific weirdness is absolutely a great idea, thank you! Are there any plans to support other languages besides javascript? Thank you. I currently support up to 8 languages: php, go, rust, python, js and ts I tried it on my codebase. There's a lot of overlap with tools like Oxlint / ESLint, I'm not sure that's too valuable vs. a more focused tool that actually focuses solely on 'slop' signals. These lint rules tend to get very opinionated which is why those tools expose so many configuration options. One real bug tho: > [ERROR] Imports "mdast" but it's not declared in package.json A type-only import like `import type { Blockquote, RootContent } from 'mdast';` is actually acceptable if `"@types/mdast": "^4.0.4"` is included in the package.json. > I’ve been building aislop. This made me chuckle. Cool tool, the dead code checks can be very helpful. I’ve seen Claude leave unused functions when iterating which always frustrates me. Can you explain the benefits of running this over rector / eslint? (and to certain degree phpstan / deptrac) Ran it in my codebase, detected some good stuff, was able to pass the issues to my agent so they can be validated and fixed. Good job! I'd love for it to have flags for Pi and Crush too :) Related, we made "Antislop", a framework for removing repetitive phraseology from LLMs: https://arxiv.org/abs/2510.15061 The intent is good, but frankly, credibility is lost by using "slop" words imo, OP you might seriously want to re-evaluate who is the target market, probably users that leverage high automation 24/7, startups and so-on, they don't want to incorporate products that talks about the modern way (and somehow only way to compete) of development as "slop" imo because soon enough, it's not true anymore (it's already not true with the right tooling). Imagine an operating system company making a product called “quick and dirty”. Yeah, to be honest, it really is a bit weird to incorporate a tool called slop into a corporate CICD flow. Anubis fixed a similar problem by creating a corp-safe version without the anime mascot. > Anubis fixed a similar problem by creating a corp-safe version without the anime mascot. I wouldn’t say they fixed it. Rather it was an intentional choice to put an anime girl on websites unless you paid for the product. I don't think this approach is wise. Concentrate on code quality, and whether it does what it needs to do.
Not whether it was written by AI or not. Thanks, I actually concentrated on improving code quality, the patterns I flagged are poor design choices that humans wouldn’t write. Examples are duplicated functions doing same thing, dead or redundant codes etc. These builds up and degrade the codebase over time. > ...are poor design choices that humans wouldn’t write. They certainly do in my experience. Maybe you've been lucky and haven't worked with really messy programmers. I have worked and seen these in code reviews but the issue now is code reviews are overwhelming and non existent in some cases. I'm interpreting this not as a "catch ai submissions gotcha" tool, but as a "last pass in review catch mistakes AI made that i may have missed" tool. Having more linters is a good thing IMO (I say this as someone who doesn't use AI to generate code, but works with people who do and has to review a lot of AI generated code)
bigfishrunning - 24 minutes ago
Heavykenny - 18 minutes ago
sync - 2 minutes ago
throw03172019 - 14 minutes ago
eithed - 6 minutes ago
hootz - 33 minutes ago
Der_Einzige - 21 minutes ago
pixel_popping - 22 minutes ago
trollbridge - a minute ago
hootz - 18 minutes ago
Aurornis - 13 minutes ago
axod - 26 minutes ago
Heavykenny - 21 minutes ago
axod - 19 minutes ago
Heavykenny - 11 minutes ago
bigfishrunning - 22 minutes ago