terraform-plan-summary
A Python command-line tool that transforms Terraform plan outputs into clean, hierarchical tree views with color-coded changes. Easily visualize your infrastructure changes organized by modules with detailed attribute-level inspection.
Installation
From PyPI
Using uv:
uv pip install terraform-plan-summary
Or run directly with uvx:
uvx terraform-plan-summary
Requirements
- Python 3.13 or higher
- Terraform CLI (for processing binary plan files)
Usage
Basic Usage
# From a JSON plan file
terraform-plan-summary plan.json
# From a binary plan file (requires terraform CLI)
terraform-plan-summary plan.out
Command Line Options
terraform-plan-summary [OPTIONS] PLAN_FILE
Arguments:
PLAN_FILE Path to Terraform plan file (binary .out or JSON)
Options:
-v, --verbose Show changed attributes (-v) or their values (-vv)
--show-ids Display resource identifiers (name, ARN, ID, etc.)
-h, --help Show help message
Examples
Basic Tree View
terraform-plan-summary plan.json
root_module
├── + aws_instance.web_server
├── ~ aws_security_group.web_sg
└── database
├── + aws_db_instance.main
└── - aws_db_subnet_group.legacy
With Resource Identifiers
terraform-plan-summary --show-ids plan.json
root_module
├── + aws_instance.web_server (web-server-prod)
├── ~ aws_security_group.web_sg (sg-0abc123def456789)
└── database
├── + aws_db_instance.main (prod-database)
└── - aws_db_subnet_group.legacy (legacy-subnet-group)
Detailed Attribute Changes
terraform-plan-summary -vv --show-ids plan.json
root_module
├── + aws_instance.web_server (web-server-prod)
├── ~ aws_security_group.web_sg (sg-0abc123def456789)
│ ├── ~ ingress: [] -> [{"cidr_blocks":["0.0.0.0/0"],"from_port":80,"protocol":"tcp","to_port":80}]
│ └── + name: "web-security-group"
└── database
├── + aws_db_instance.main (prod-database)
└── - aws_db_subnet_group.legacy (legacy-subnet-group)
└── - subnet_ids: ["subnet-abc123","subnet-def456"]
Generating Terraform Plans
JSON Format (Recommended)
terraform plan -out=plan.out
terraform show -json plan.out > plan.json
terraform-plan-summary plan.json
Binary Format
terraform plan -out=plan.out
terraform-plan-summary plan.out
Metadata
Release files for terraform-plan-summary 1.0.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| terraform_plan_summary-1.0.2.tar.gz | 16.5 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| terraform_plan_summary-1.0.2-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 22.3 kB
Release files / terraform_plan_summary-1.0.2.tar.gz
| Download URL | terraform_plan_summary-1.0.2.tar.gz |
|---|---|
| Size | 16.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
d347a79809880a880109466deeafe374cdf4345a16514c8e1b34144c2b7c0e38
|
|
BLAKE2b-256 checksum How to use checksums |
0edfc8b9050daef8672c3d41ff394f0f0f316b9b51ca9b374d75a4c13e8df980
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 5, 2025.
Transparency logRelease files / terraform_plan_summary-1.0.2-py3-none-any.whl
| Download URL | terraform_plan_summary-1.0.2-py3-none-any.whl |
|---|---|
| Size | 5.8 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
d029d79428032952f43fefcb6db0306caa6413c74ec486fc010838fa268cd822
|
|
BLAKE2b-256 checksum How to use checksums |
8052b7d18676f7fd453eeb09c7c79bad4b102191c57a1b0e532827244990afa6
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 5, 2025.
Transparency log