Skip to content
100% local

Terraform plan summary

Turn a terraform plan output into a clear summary of what gets created, changed, replaced or destroyed.

Input
Output

Terraform plan summary

Paste the output of `terraform plan` (or `terraform show` on a saved plan file) and this tool turns the wall of +/-/~ lines into a readable summary: which resources get created, updated in place, marked for replacement, or destroyed. It understands modules and indexed resources (`module.vpc.aws_subnet.public[0]`), so nested infrastructure reads as clearly as root-level resources.

Group the report by resource type or by module to review a large plan section by section instead of top to bottom. "Show only changed attributes" drops the noise of unchanged fields. "Highlight resources marked for replacement" flags every resource Terraform will destroy and recreate and, where Terraform reports it, names the attribute that forced the replacement — the detail that's easy to miss in a long scroll of plan output. "Hide sensitive values" masks any attribute already marked `(sensitive value)`, so the summary is safe to paste somewhere more public than your terminal. A name filter narrows the report to resources whose address contains a given string.

Pick the format for where the summary is going: plain text for a quick read, Markdown with headed sections and backtick-quoted resource names for a pull request comment, or CSV — one row per attribute change — for spreadsheets and scripts. The tool handles both CRLF and LF plan output and reports a live count of resources to add, change, replace and destroy as you paste.

Everything runs locally in your browser. Plan output often contains resource IDs, IP ranges and configuration details you don't want leaving your machine, and this tool never uploads anything — parsing and formatting happen entirely client-side. Copy the result, download it as a .txt file, or send it into another tool's input to keep working.

FAQ

Which Terraform versions does it support?
It parses the human-readable plan output produced by modern Terraform (0.12 and later) — the +/-/~ resource blocks with a leading "# address will be created/updated/replaced/destroyed" comment. Older 0.11-style attribute diffs aren't recognized.
What counts as "forces replacement"?
Terraform annotates an attribute change with "# forces replacement" when that value can't be updated in place and requires destroying and recreating the resource. With highlighting on, the summary names every such attribute next to the resource it forces to replace.
Can it show a diff for nested attributes like tags or blocks?
Nested maps and blocks are reported as a single changed attribute rather than expanded key by key — enough to see that, say, tags changed, without drowning the summary in every key inside them.
What happens with output that isn't terraform plan text?
Nothing breaks. Lines that don't match a resource block are ignored, so unrelated or malformed input simply produces a summary with zero resources rather than an error.
Is my plan output uploaded anywhere?
No. Parsing and formatting run entirely in your browser — a plan can contain resource IDs and configuration details you don't want leaving your machine, and none of it is ever sent to a server.