{
  "title": "Terraform plan viewer",
  "human_url": "https://happytails.ai/en/developer-tools/terraform-plan-viewer/",
  "agent_url": "https://happytails.ai/agents/en/developer-tools/terraform-plan-viewer/",
  "language": "en",
  "markdown_url": "https://happytails.ai/en/developer-tools/terraform-plan-viewer.md",
  "content": "Terraform plan viewer\nTurn terraform show -json output into a readable summary with destroy and replace actions highlighted, the attributes that change, and sensitive values masked.\nHow can we improve this tool?\nReport a problem or share an idea.\nPlease leave out private information. Your message and the tool name go to our team via PostHog.\nHow to use Terraform plan viewer\nRun terraform plan -out=plan.out, then terraform show -json plan.out.\nPaste the JSON output.\nReview the summary, destructive changes and changed attributes.\nDownload the Markdown summary, JSON report or CSV of changes.\nUseful next steps\nJSON diff\nJSON formatter\nJSON path inventory\nWhat is read\nHappytails.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.\nMasking and unknown values\nValues 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.\nLimits\nThe 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.",
  "content_format": "text/plain",
  "visibility": "public",
  "links": [
    {
      "name": "JSON diff",
      "url": "https://happytails.ai/en/developer-tools/json-diff/"
    },
    {
      "name": "JSON formatter",
      "url": "https://happytails.ai/en/developer-tools/json-formatter/"
    },
    {
      "name": "JSON path inventory",
      "url": "https://happytails.ai/en/data-tools/json-path-inventory/"
    }
  ],
  "tool": {
    "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"
    }
  },
  "markdown": "# Terraform plan viewer\n\n- Human page: https://happytails.ai/en/developer-tools/terraform-plan-viewer/\n- Markdown: https://happytails.ai/en/developer-tools/terraform-plan-viewer.md\n- Structured JSON: https://happytails.ai/agents/en/developer-tools/terraform-plan-viewer/index.json\n- Visibility: public\n\n## Tool capabilities\n\n| Property | Value |\n| --- | --- |\n| Tool ID | `terraform-plan-viewer` |\n| Category | developer-tools |\n| Implementation | Registered implementation. Registration alone is not a production-quality guarantee. |\n| Browser execution | Use the visible action or interactive controls. |\n| Browser processing | Browser; see tool notes for network behavior. |\n| HTTP API | Not callable through HTTP. |\n| Browser-agent interface | run_current_tool |\n\n### Implementation notes\n\nReads terraform show -json output on your device and masks sensitive values. Up to 5,000,000 characters; nothing is uploaded.\n\n### Inputs and settings\n\nText input: Plan JSON.\n\nExample or placeholder shown in the interface (not a validated fixture):\n\n```text\n{\"format_version\": \"1.2\", \"resource_changes\": [...]}\n```\n\nPaste the output of terraform show -json plan.out. Up to 1,000,000 characters. Review the settings before running.\n\nNo additional settings are declared for this tool.\n\n### Browser-agent workflow\n\n1. Open the human page in a browser that supports WebMCP.\n2. Discover the interface exposed by that page; use its actual schema.\n3. Select files on the page first when the tool requires files.\n4. Call `run_current_tool` with valid input and settings.\n5. Inspect the returned result or error and the displayed output. Retrieve files from the displayed download links.\n\nCalls do not automatically copy or download results. Browser permissions still apply. Interface availability alone is not proof of successful execution.\n\n### Planning specification\n\nUp 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.\n\nThis describes intended requirements. Use the implementation notes, interface schema and observed output to determine current support.\n\n### Complete machine-readable capability record\n\n```json\n{\n  \"id\": \"terraform-plan-viewer\",\n  \"category\": \"developer-tools\",\n  \"built\": true,\n  \"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.\",\n  \"implementation\": {\n    \"fields\": [],\n    \"registrationFamily\": \"config-infrastructure-json\",\n    \"inputMaxLength\": 5000000,\n    \"inputErrorCode\": \"CONFIG_INFRASTRUCTURE_JSON_TOO_LONG_PLAN\",\n    \"note\": \"Reads terraform show -json output on your device and masks sensitive values. Up to 5,000,000 characters; nothing is uploaded.\",\n    \"experience\": {\n      \"automatic\": false,\n      \"single\": false,\n      \"inputMaxLength\": 1000000,\n      \"inputMode\": \"text\",\n      \"label\": \"Plan JSON\",\n      \"placeholder\": \"{\\\"format_version\\\": \\\"1.2\\\", \\\"resource_changes\\\": [...]}\",\n      \"help\": \"Paste the output of terraform show -json plan.out. Up to 1,000,000 characters. Review the settings before running.\",\n      \"action\": null\n    },\n    \"mode\": \"explicit\",\n    \"interactive\": false\n  },\n  \"execution\": \"Browser interface\",\n  \"api\": null,\n  \"browser_agent\": {\n    \"supported\": true,\n    \"name\": \"run_current_tool\",\n    \"discovery\": \"WebMCP on the human page in a supporting browser\",\n    \"verification\": \"See audit/API-AUDIT.md; availability is not verification\"\n  }\n}\n```\n\n## Page guide\n\nTurn terraform show -json output into a readable summary with destroy and replace actions highlighted, the attributes that change, and sensitive values masked.\n\nHow can we improve this tool?\n\nReport a problem or share an idea.\n\nPlease leave out private information. Your message and the tool name go to our team via PostHog.\n\n### How to use Terraform plan viewer\n\n1. Run terraform plan -out=plan.out, then terraform show -json plan.out.\n2. Paste the JSON output.\n3. Review the summary, destructive changes and changed attributes.\n4. Download the Markdown summary, JSON report or CSV of changes.\n\n## Useful next steps\n\n- [JSON diff](https://happytails.ai/en/developer-tools/json-diff/) ([Markdown](https://happytails.ai/en/developer-tools/json-diff.md))\n\n- [JSON formatter](https://happytails.ai/en/developer-tools/json-formatter/) ([Markdown](https://happytails.ai/en/developer-tools/json-formatter.md))\n\n- [JSON path inventory](https://happytails.ai/en/data-tools/json-path-inventory/) ([Markdown](https://happytails.ai/en/data-tools/json-path-inventory.md))\n\n## What is read\n\nHappytails.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.\n\n### Masking and unknown values\n\nValues 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.\n\n### Limits\n\nThe 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.\n"
}