Scryer — Scryer is an all-in-one security auditing and static analysis gem for Ruby on Rails applications.

An all-in-one security auditing and static analysis tool for Ruby on Rails applications — tells you what to fix first, across security, performance, dependencies, and code quality.

Scryer scans Ruby and Rails source for security vulnerabilities, performance problems, dependency risk, and code-quality issues, then ranks everything it finds by severity across those categories — so a scan ends with one answer to "what's most worth fixing first," not four separate tool outputs to reconcile by hand. Built on Ruby's own stdlib Ripper parser, so the static scan needs no Rails or Bundler to run at all.

gem install scryer
scryer
Scryer Audit — 236 files scanned
────────────────────────────────

Security Score: 10/100 (F)
Checks: 23/36 rules clean (63.9%)

Security               27 findings
Performance            10 findings
Code Quality          248 findings
Dependencies           24 findings
────────────────────────────────
Total                 309 findings

Top priorities:
  1. [critical] security — mass_assignment (app/helpers/api/v1/create_order_helper.rb:14)
  2. [critical] security — mass_assignment (app/helpers/api/v1/create_order_helper.rb:45)
  3. [critical] security — mass_assignment (app/helpers/api/v1/checkout/checkout_helper.rb:92)
  4. [critical] security — sql_injection (app/controllers/concerns/billing_helper.rb:12)
  5. [critical] security — mass_assignment (app/controllers/api/v1/orders_controller.rb:8)

JSON report: tmp/scryer_report.json
HTML report: tmp/scryer_report.html

That's real output from a scan of a live 236-file Rails app ("acme-app" here — file/controller names anonymized since we don't publish that app's source; counts, severities, and line numbers are exactly as scanned), not a mockup — the harsh grade included. "Top priorities" is the same severity ranking applied across all categories, not just within each one; it's the first thing in the Findings section of the HTML report, which also leads with a security score badge and severity chart.

What it detects

Reports: JSON, self-contained HTML, CSV, and SARIF 2.1.0 — SARIF feeds GitHub Code Scanning and similar CI dashboards directly for inline PR annotations, tagged with CWE and a combined severity+confidence rank. A bundled GitHub Action wraps install + scan + SARIF upload in one step.

How it compares

Brakeman is the deeper, more mature tool for the security categories it's spent years on — real taint/data-flow analysis, not heuristic pattern-matching (see †). RuboCop owns style/lint conventions. Scryer isn't trying to out-analyze either at their own specialty — it looks at security, performance, dependency, and code-quality findings together and ranks the result, which is a different question than any one of these tools is built to answer.

CapabilityScryerRuboCopBrakemanbundler-audit
Style/lint conventionsPartial*
Rails security scanning✅†
Performance heuristicsPartial
Duplicate code detectionPartial
Dependency vulnerabilities
Runtime query analysis
SARIF report (GitHub Code Scanning)
Cross-category risk ranking ("fix this first")✅‡
Single command, all of the above

* One narrow check only (a missing frozen_string_literal magic comment) — everything else in RuboCop's domain is intentionally out of scope.
† Heuristic pattern-matching, not taint/data-flow analysis — Brakeman traces whether user input can actually reach a sink; Scryer checks whether a dangerous call shape and a params reference appear together. Real precision gap on the harder checks, idor especially — every finding says "review this," never "this is definitely a bug."
‡ Each tool ranks findings within its own domain at best (e.g. Brakeman's confidence levels). None of them combine security, performance, dependency, and code-quality findings into one ranked list — that's what Scryer's "Top priorities" (shown above) does. Full breakdown with footnotes in the README.

Guides

Links