Removed security controls
Catch when refactors remove auth decorators, CSRF checks, rate limits, or other security controls that reviewers miss.
Skylos is the open source Python security and static analysis tool for teams shipping AI-generated code.
Find dead code, hallucinated imports, risky patterns, and removed auth, CSRF, or rate-limit controls before merge, and add guardrails around MCP-driven workflows.
Local scan is free — run skylos . -a on a repo you care about. No login required.
Merged cleanup PRs into Black, networkx, mitmproxy, pypdf, and Flagsmith.
This is stronger than a testimonial: maintainers reviewed the findings, merged the changes, and kept the code.
def search_users(conn):
q = request.args.get("q")
sql = f"SELECT * FROM users WHERE name = '{q}'"
cur = conn.cursor()
cur.execute(sql)
return cur.fetchall()
Lightweight demo — full scanner uses repo context and 200+ rules.
Get started freeThese numbers come from benchmarks, case studies, and reproducible scans already published on the site.
Black, networkx, mitmproxy, pypdf, and Flagsmith all merged findings generated from Skylos output.
Review merged PR proofManual review on Flask found 7/7 dead items, with 12 false positives instead of 260.
Read case studyAcross 9 repositories with 350k+ combined stars, Skylos reached 98.1% recall with 220 false positives vs Vulture's 644.
Compare the benchmarkReal-world verification benchmark on pip-tools, tox, and mesa for findings you can trust before opening a PR.
See verification proofThe value is not generic linting. It is catching believable mistakes before they merge.
Catch when refactors remove auth decorators, CSRF checks, rate limits, or other security controls that reviewers miss.
Find hallucinated imports, phantom calls, insecure defaults, and hardcoded secrets in AI-assisted code before merge.
Reduce Vulture-style noise across Django, Flask, FastAPI, Pydantic, and pytest instead of maintaining giant ignore lists.
Start with skylos . -a. When it earns trust on a real repo, add skylos cicd init for repeatable GitHub enforcement.
Watch how Skylos scans your codebase and integrates into your CI/CD pipeline.
What people are saying
We tested both tools against a realistic FastAPI + Pydantic codebase seeded with known dead code. The goal: Measure detection accuracy in a modern Python stack.
We ran both tools on a standard service architecture containing:
Vulture is faster (0.1s) but "dumb": it missed 17% of the dead code and flagged used code as dead.
Skylos found 100% of the dead code with higher precision, taking ~1.6s to parse the full AST context.
| Metric | Skylos | Vulture |
|---|---|---|
True Positives Correctly found dead code | 29 / 29 | 24 / 29 |
False Negatives Missed bugs (Lower is better) | 0 | 5 |
Precision Accuracy of findings | 70.7% | 50.0% |
Recall Detection rate | 100% | 82.8% |
| Execution Time | 1.67s | 0.10s |
* Benchmark data collected Feb 2026 on Apple Silicon M3.
The first run should take seconds. The second step is CI only after you see signal on a real repo.
Start locally with no login, no repo connection, and no workflow changes.
Scan for dead code, security issues, and AI-generated regressions on a repo you already care about.
Generate GitHub Actions setup and block risky merges once the local scan is already useful.
Learn how Python teams use Skylos for security scanning, dead code detection, secure GitHub Actions, MCP-connected AI agents, and diff-aware AI code review.
Skylos scans your codebase and git history using entropy analysis and pattern matching to find API keys, tokens, and passwords before they are pushed to production.
Vulture scans text (regex). Skylos scans logic (AST). We trade 1 second of computer time to save you hours of human time triage. We filter out false positives from FastAPI routes, Pydantic models, and Pytest fixtures automatically.
Skylos is a lightweight, zero-config alternative focused specifically on Python. Unlike heavy enterprise SAST tools, Skylos runs in <3 seconds and is designed for immediate feedback in local CLI and PR checks.
Yes. Skylos is designed for CI/CD. You can use it to gate pull requests, ensuring no dead code or security vulnerabilities merge into your main branch.
Yes. You can run Skylos locally before commit, scan diffs in pull requests, and use Skylos in AI-assisted workflows where Claude Code, Cursor, or other agents are generating Python changes.
Skylos Judge turns public repos into pinned scorecards for security, quality, and dead code. The scoring is static and deterministic, not LLM-generated.
Read a pinned Judge scorecard for a real production repo, with a visible scan date and commit SHA.
Use public scorecards to understand how Skylos presents security, quality, and dead-code signal before connecting your own repo.
Judge pages are meant to be public, crawlable, and deterministic, so the score always ties back to a real pinned snapshot.
The CLI works without login. Credits apply when you upload scans, compare history, or run AI-assisted cloud actions.
Best for trying Skylos on a repo today.
pip install skylosBest for history, suppressions, scan compare, and shared visibility.
Best once the local scan is already useful and you want repeatable enforcement.
Local CLI scans stay free. Buy credits when you want uploads, history, PR automation, or AI-assisted actions. No subscriptions.
Buy credits when you need shared history and automation
Starts with credits, then grows with usage.
For higher limits, rollout help, and procurement
Start locally with no login. If the findings are useful, add skylos cicd init to gate pull requests later.