The AWS Terraform security scanner
that knows when not to flag.
Every IaC scanner flags a hundred things and the team mutes the bot within a week. audytx reasons across how your resources actually fit together, suppresses the false positives — and shows you why it dismissed each one, right in the PR.
What a single-resource scanner posts
What audytx posts
The agent that writes your Terraform can check it.
AI writes .tf in seconds — and opens a verification gap nobody
reviews. audytx is also a stateless MCP server: the same
engine the GitHub App runs, callable by Claude Code, Cursor, and friends
before the PR exists. The agent that generated the config gets the
findings — and the sound, line-anchored fixes — at agent speed.
claude mcp add --transport http \
audytx https://audytx.com/mcp
- No CI, no token, no install — point your agent at the endpoint.
- Same reasoning as the PR path — cross-resource context, not single-file pattern matching.
- Optional plan input — hand it
terraform planJSON to resolve values behind variables,count, and module internals. - Closes the verification gap where AI-generated infra hides risk.
Why developers leave it on
The scanner stays trusted because every dismissal carries its rationale.
Shows its work, not just its verdicts
Every suppressed finding appears in the PR comment with the axis that drove it — "sync Lambda invoker", "DLQ identity", "data lifetime", "IMDSv2 inherited". You audit the engine's calls without reading its source.
Reasons across your resources
A DLQ doesn't need a DLQ. A sync Lambda needs no async error path. A TTL'd table is intentionally ephemeral. 17 reasoning axes decide which of the 247 rules actually apply to your graph.
Effective-permission attack paths
An effective-permission engine expands wildcard actions and walks AssumeRole / PassRole chains — finding privilege-escalation paths by reachability, not by a hand-written pattern. Detects all 31 paths on iam-vulnerable — tied with Checkov, the only other tool that does (KICS 3%, Trivy 0%).
What's in the engine today
How it works
Install on GitHub
Click install, pick the repo. Read-only on Contents, write on Pull Requests (to post the comment). No CI step, no build webhook, no agent to run.
Open a PR
audytx fetches the whole-repo .tf tree via the GitHub API, runs the engine in a Cloudflare Worker at the edge, and posts one comment — reasoning block and all.
Or call it from your agent
Point Claude Code / Cursor at /mcp and scan or autofix Terraform before the PR exists — same engine, same reasoning, no setup.
Free. The whole engine.
No credit card, no seats, no "contact sales," no feature gates. Every rule, every axis, the MCP server, and the autofix loop — on public and private repos — at $0 while audytx is in public beta.
scan_terraform + autofix_terraform for your coding agentterraform plan for resolved-value precisionWhy free? This is a depth-first public beta — the goal is the best AWS-Terraform review there is, not a pricing page. If a team-governance layer ships later (merge gates, org-wide baselines, compliance export), it'll be additive. The review you see here stays free.
How we handle your code
- No source upload. audytx fetches the changed files via the GitHub Contents API at scan time. Processed in memory inside Cloudflare's edge, never persisted. The MCP path is the same — files in the request, nothing stored.
- Least-privilege App permissions. Read-only on Contents and Metadata. Read/write on Pull Requests (to post the comment) and Code Scanning (for SARIF, when enabled).
- No PII collected. The audit log records the App installation ID and the PR identifier. Source content never lands in our database.
- You own the audit trail. Every comment carries the engine version and rule-catalog version. Reproducibility is a feature.
Stop ignoring your scanner.
Install audytx on one repo. Open the next PR. Watch the reasoning block.
Install on GitHub →