# Terraform plan viewer

- Human page: https://happytails.ai/en/developer-tools/terraform-plan-viewer/
- Markdown: https://happytails.ai/en/developer-tools/terraform-plan-viewer.md
- Structured JSON: https://happytails.ai/agents/en/developer-tools/terraform-plan-viewer/index.json
- Visibility: public

## Tool capabilities

| Property | Value |
| --- | --- |
| Tool ID | `terraform-plan-viewer` |
| Category | developer-tools |
| Implementation | Registered implementation. Registration alone is not a production-quality guarantee. |
| Browser execution | Use the visible action or interactive controls. |
| Browser processing | Browser; see tool notes for network behavior. |
| HTTP API | Not callable through HTTP. |
| Browser-agent interface | run_current_tool |

### Implementation notes

Reads terraform show -json output on your device and masks sensitive values. Up to 5,000,000 characters; nothing is uploaded.

### Inputs and settings

Text input: Plan JSON.

Example or placeholder shown in the interface (not a validated fixture):

```text
{"format_version": "1.2", "resource_changes": [...]}
```

Paste the output of terraform show -json plan.out. Up to 1,000,000 characters. Review the settings before running.

No additional settings are declared for this tool.

### Browser-agent workflow

1. Open the human page in a browser that supports WebMCP.
2. Discover the interface exposed by that page; use its actual schema.
3. Select files on the page first when the tool requires files.
4. Call `run_current_tool` with valid input and settings.
5. Inspect the returned result or error and the displayed output. Retrieve files from the displayed download links.

Calls do not automatically copy or download results. Browser permissions still apply. Interface availability alone is not proof of successful execution.

### Planning specification

Up to 5,000,000 characters of plan JSON. Everything runs on your device in a background worker and nothing is uploaded. Downloads: Markdown summary, JSON report and CSV of changed attributes.

This describes intended requirements. Use the implementation notes, interface schema and observed output to determine current support.

### Complete machine-readable capability record

```json
{
  "id": "terraform-plan-viewer",
  "category": "developer-tools",
  "built": true,
  "requirements": "Up to 5,000,000 characters of plan JSON. Everything runs on your device in a background worker and nothing is uploaded. Downloads: Markdown summary, JSON report and CSV of changed attributes.",
  "implementation": {
    "fields": [],
    "registrationFamily": "config-infrastructure-json",
    "inputMaxLength": 5000000,
    "inputErrorCode": "CONFIG_INFRASTRUCTURE_JSON_TOO_LONG_PLAN",
    "note": "Reads terraform show -json output on your device and masks sensitive values. Up to 5,000,000 characters; nothing is uploaded.",
    "experience": {
      "automatic": false,
      "single": false,
      "inputMaxLength": 1000000,
      "inputMode": "text",
      "label": "Plan JSON",
      "placeholder": "{\"format_version\": \"1.2\", \"resource_changes\": [...]}",
      "help": "Paste the output of terraform show -json plan.out. Up to 1,000,000 characters. Review the settings before running.",
      "action": null
    },
    "mode": "explicit",
    "interactive": false
  },
  "execution": "Browser interface",
  "api": null,
  "browser_agent": {
    "supported": true,
    "name": "run_current_tool",
    "discovery": "WebMCP on the human page in a supporting browser",
    "verification": "See audit/API-AUDIT.md; availability is not verification"
  }
}
```

## Page guide

Turn terraform show -json output into a readable summary with destroy and replace actions highlighted, the attributes that change, and sensitive values masked.

How can we improve this tool?

Report a problem or share an idea.

Please leave out private information. Your message and the tool name go to our team via PostHog.

### How to use Terraform plan viewer

1. Run terraform plan -out=plan.out, then terraform show -json plan.out.
2. Paste the JSON output.
3. Review the summary, destructive changes and changed attributes.
4. Download the Markdown summary, JSON report or CSV of changes.

## Useful next steps

- [JSON diff](https://happytails.ai/en/developer-tools/json-diff/) ([Markdown](https://happytails.ai/en/developer-tools/json-diff.md))

- [JSON formatter](https://happytails.ai/en/developer-tools/json-formatter/) ([Markdown](https://happytails.ai/en/developer-tools/json-formatter.md))

- [JSON path inventory](https://happytails.ai/en/data-tools/json-path-inventory/) ([Markdown](https://happytails.ai/en/data-tools/json-path-inventory.md))

## What is read

Happytails.ai reads the plan format documented in the Terraform "JSON Output Format" page (developer.hashicorp.com, read on 16 October 2026) for format\_version 1.x. Each entry in resource\_changes is classified as create, read, update, delete, replace, no-op or forget from its actions list. Replacements show whether the old object is destroyed first, the action\_reason and the replace\_paths that force it.

### Masking and unknown values

Values marked in before\_sensitive and after\_sensitive are replaced with (sensitive) before anything is shown or exported, and values marked in after\_unknown are shown as (known after apply). A sensitive attribute whose value changes is still listed as changed, with both sides shown as (sensitive). Output changes are masked the same way.

### Limits

The viewer does not run Terraform or contact providers, so it shows what the plan file says. Drifted resources and deferred changes are counted but not diffed, and attribute diffs compare the before and after values as JSON.
