OpenTremor

Multi-tenant · MCP-native · bring your own LLM

Turn LLM code review into a pipeline, not a one-off prompt

  • Ingest → analyze → triage → report, enforced by the server itself — not a one-off prompt
  • Your own Markdown rules — security, policy, or style — layered onto every analyzer, every org
  • A finding's status survives the next scan — nothing gets re-flagged or re-litigated
+ resource "aws_s3_bucket" "data_lake" {
+   acl = "public-read"
+ }
Pluggable analyzers
terraform-plan is free forever; any analyzer is a plain Python package anyone can register.
terraform-planterraform-code-change+ yours
Custom rule packs
Layer your own Markdown rules on top of the built-in ruleset, per analyzer, per org.
Findings triage
Acknowledge, suppress, or mark a false positive — status persists across re-scans.
Human-in-the-loop
Uncertain findings route to a person instead of a guess — more on this below.
Teams & roles
Group members into teams and gate everything by a viewer → owner role ladder.
GitHub App integration
Install once — every PR is auto-routed by file type and gated automatically, no config per repo.

Rules: security, policy, and style in one pipeline

Every registered analyzer ships a built-in security ruleset, enabled for every org automatically. Layer your own rules on top for enterprise policy — mandatory tags, approved regions, budget-relevant sizing — or code style and architecture — approved modules, naming conventions, Terraform best practices — through the same enforcement path, on every plan and every PR. Rules are grouped under org-owned categories you fully control.

CRITICAL

S3 Bucket Allows Public Read Access

aws_s3_bucket.data_lakeAny unauthenticated user can list and download all objects.

HIGH

Admin-Like IAM Privileges Granted

aws_iam_policy.deployAction = "*" with Resource = "*" — far broader than a deploy role needs.

See how rules work

A human gets the final call when it matters

Not every finding is a clean pass or fail. A LOW or UNKNOWN-confidence result — or a custom rule you've explicitly flagged as a judgment call — routes to needs-review instead of a guess. The PR check reflects that honestly: pending, not failure, when a human decision is the only thing standing between a plan and merge. Configure an optional HMAC-signed webhook per org to get notified the moment that happens.

Learn more
Service accounts
Named, role-scoped API keys for CI or MCP clients, optionally IP-allowlisted.
SSO
OIDC login with just-in-time provisioning into a default role.
Custom report templates
Org-authored Jinja2 templates for every report format, plus shareable public links.
Usage & budget controls
Track LLM spend per org and cap it with a hard monthly budget.
Two more ways to trigger a run
One server-side API call, or a client-led loop from a script or any MCP client.
Rule categories
Org-owned groupings for custom rules — rename, delete, or add your own at any time.

Need an analyzer or ruleset built for you?

Custom analyzers for internal IaC formats or module conventions, and custom rule packs — security, enterprise policy, or house style — are available as a consulting engagement.