Terraform State (tfstate) Viewer
Paste or open a Terraform state file and get a readable summary instead of scrolling thousands of lines of JSON. It shows top-line metrics (format version, serial, resource/instance/output counts, providers), lists every resource by its full address with the notable attributes (id, arn, region, instance_type…) surfaced, and renders the outputs table with sensitive values hidden. It reads modern v4 and legacy v3 state, and because it runs entirely in your browser, the file is never uploaded anywhere.
How to use the Terraform State (tfstate) Viewer
Paste the contents of a terraform.tfstate file into the box, or use Open .tfstate to load one from disk — the file is parsed locally in your browser and nothing is sent to a server. The viewer immediately renders a metric grid (state format version, Terraform version, serial, and counts of resources, data sources, instances, outputs and providers) followed by an expandable list of every resource and a table of outputs.
Each resource is shown by its full Terraform address — module path, optional data. prefix, type and name, plus the instance index for counted or for_each resources — which is exactly the identifier you'd pass to terraform state show or terraform import. Expand a resource to see its most useful attributes (id, ARN, region, AMI, tags and similar) and the total attribute count. Sensitive outputs are never displayed; they're marked as hidden so you can see that an output exists without exposing its value. Use this to audit what a state file contains, find a resource's address before a targeted operation, or review a state after an import — but remember that a real state file can still contain secrets in resource attributes, so handle it accordingly.
What a Terraform state file holds
Terraform state is the JSON file that maps the resources declared in your configuration to the real objects that exist in your cloud or service providers. Terraform writes it after every apply, and reads it on every plan to compute the difference between desired and actual infrastructure. Without state, Terraform would have no way to know that the aws_instance.web in your code corresponds to a specific running EC2 instance, so the file is the authoritative record of what Terraform manages.
The current format is version 4, a flat resources array where each entry carries a mode (managed or data), type, name, provider reference, and a list of instances — one per count index or for_each key — each holding the full attribute map captured from the provider. Older Terraform (0.11 and earlier) wrote version 3, which nested resources inside a modules array keyed by module path, with attributes under a primary block. This viewer normalizes both shapes into the same resource list so a legacy state reads as cleanly as a modern one.
Reading raw state by hand is awkward because the files are large, deeply nested, and ordered for machines rather than people. The practical questions you usually have — how many resources are tracked, what providers are involved, what is the exact address of a given resource, what are the output values — are buried. This tool answers them at a glance and renders entirely client-side, which matters because state frequently contains sensitive data: provider credentials echoed into attributes, database passwords, private keys, and the values of any output not marked sensitive. Inspecting it in the browser, with sensitive outputs masked and nothing uploaded, keeps that data on your machine. For routine work the canonical commands remain terraform state list and terraform show -json; this viewer is for quickly eyeballing a state file you already have in hand.
Common use cases
- Find a resource address. Look up the exact address to pass to
terraform state show,rmorimport. - Audit a state file. See at a glance how many resources, providers and outputs a state tracks.
- Review legacy state. Read a pre-0.12 v3 state file without standing up an old Terraform version.
- Post-import sanity check. Confirm an imported resource landed with the attributes you expected.