OpenTremor

Analyzers

An analyzer is just a Python package — including ours

OpenTremor Core ships with zero built-in detection logic. Every analyzer — the two official Terraform ones below and anything you write yourself — plugs in the same way, through one public interface. Nothing about writing your own is second-class.

Official analyzers

Maintained and published by the OpenTremor team. Self-hosted: unlimited, every analyzer, always. Cloud: every analyzer shares the same 100-analysis free demo, then requires a paid plan — see pricing.

terraform-plan
Parses the text output of terraform plan (including multi-stack Terramate runs) into per-resource units, deduplicated by content hash.
terraform-code-change
Parses a git diff of .tf files into per-block units, so an LLM can check what actually changed against your compliance rules — not just the plan's end state.

Build your own

The plugin interface is public, documented, and not gated behind a plan.

It's the same interface we use
terraform-plan and terraform-code-change are ordinary analyzer packages built against the exact same BaseAnalyzer interface documented publicly — nothing held back for internal use.
No core fork, no approval needed
Implement ingest() and get_rules(), declare one Python entry point in your own package's pyproject.toml, and pip install it — core discovers and registers it at startup. Nothing in OpenTremor Core changes.
Ship it privately or share it
Your analyzer is just a Python package — keep it internal to your org for a proprietary IaC format or module convention, or publish it for anyone else to install.

Registering one is one file

Declare the entry point in your own package's pyproject.toml — no code in OpenTremor Core changes. At startup, core discovers every installed package declaring this entry-point group and registers each one automatically.

Read the full guide
pyproject.toml
[tool.poetry.plugins."opentremor_core.analyzers"]
my-analyzer = "my_analyzer:MyAnalyzer"

Want us to build it instead?

If you'd rather not write and maintain the parser yourself, a custom analyzer for your internal IaC format or module conventions is available as a consulting engagement — see Custom on the pricing page.

Contact us