BrassCoders, the scanner that catches what AI assistants structurally miss. Claude Code and Cursor emit eight suggestions per file when one actually matters — and miss the hardcoded credentials, the SQL-injection sinks, the hallucinated imports. BrassCoders catches them, ranks them, and hands a short YAML file to your AI assistant for triage.
pipx install brasscoders · macOS / Linux / Windows · Python 3.10+ · Why BrassCoders?
Most AI reviewer output is conditional, speculative, or duplicated. BrassCoders keeps the items that survived a confidence threshold, a style-issue strip, and a per-file cap. Critical findings always survive.
Eight suggestions on a single file. One is real.
handler.py:4requests.get has no timeout (could hang on slow upstream).json() called without status checkname is user-controlledlist_files doesn't handle FileNotFoundErrorDeveloper triage cost: read every line, classify, dismiss the speculation, find the real bug.
One critical finding. Real, actionable.
Developer triage cost: rotate the key, push fix, done.
See the full worked example on a real codebase: benchmarks/django
BrassCoders uses battle-tested OSS detectors — the same ones security teams already trust — and layers a noise reducer on top. Findings are deterministic, reproducible, and don't depend on a prompt.
AWS · Azure · GitHub · GitLab · Stripe · Slack · NPM · PEM · JWT · high-entropy
Powered by Yelp's detect-secrets
Complexity · dead code · common bugs · security anti-patterns
Bandit + Pylint + Radon
Credit card · SSN · IBAN · NHS · NINO · Aadhaar · PAN · NRIC · Medicare · TFN
Pattern + Luhn-validated regex
String concat in loops · insert-at-zero · unbounded nesting · eval-on-input
BrassCoders-specific AST analysis
Hardcoded secrets · weak JWT · missing rate-limiting
BrassCoders-specific regex
Imports that don't resolve · stub functions that pretend to work
AST-based; flags real bugs in AI output
BrassCoders scans private source code. We treat it like that.
The only optional network surface is --check-package-hallucination, which is opt-in per scan. --offline disables it absolutely.
PII and secrets are masked before they hit disk. Two redaction layers: source and YAML boundary.
.brass/ is 0700; YAML files inside are 0600. Atomic writes. POSIX-tight perms.
Paid-plan enrichment runs through our gateway. We pass through our embedding provider's per-token pricing — your topup tokens cost what they cost. Your downstream Anthropic / OpenAI / Cursor bill stays yours.
Full disclosure in our privacy policy.
Full walkthrough: how to use BrassCoders
BrassCoders is Apache 2.0-licensed and free for personal use. The $12/dev/month Paid plan adds AI-powered enrichment, advanced scanners, and priority support — subscribe whenever you're ready.