{
  "title": "Terraform state inspector",
  "human_url": "https://happytails.ai/en/developer-tools/terraform-state-inspector/",
  "agent_url": "https://happytails.ai/agents/en/developer-tools/terraform-state-inspector/",
  "language": "en",
  "markdown_url": "https://happytails.ai/en/developer-tools/terraform-state-inspector.md",
  "content": "Terraform state inspector\nInspect a terraform.tfstate file on your device: list resources, modules, providers and outputs, see how resources depend on each other, and get a copy with secrets 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 state inspector\nPaste the content of terraform.tfstate (state format version 4).\nOptionally add attribute names to mask in addition to the built-in rules.\nRun the inspection and review resources, dependencies and tainted instances.\nDownload the JSON report, CSV inventory, dependency graph or masked state.\nUseful next steps\nJSON response redactor\nJSON path inventory\nJSON diff\nWhat is read\nHappytails.ai reads the version 4 state layout written by Terraform 0.12 and later, as described in the Terraform state documentation (developer.hashicorp.com, read on 16 October 2026): resources with their module, mode, type, provider (with its alias and the module that declares it) and instances, recorded dependencies, tainted status and outputs.\nMasking\nBefore anything is shown, values Terraform marked in sensitive_attributes and sensitive outputs are replaced with (sensitive). Attributes whose names look like secrets, such as password, token, private_key, client_key, access_key or connection_string, are masked too, including a whole list or object stored under such a name, and you can add more names. Masking is a safety net: review the masked state before sharing it.\nLimits\nThe state is never sent anywhere and Terraform is not run. Dependencies are the ones Terraform recorded in the state, so implicit provider ordering is not shown. The graph draws up to 300 resources.",
  "content_format": "text/plain",
  "visibility": "public",
  "links": [
    {
      "name": "JSON response redactor",
      "url": "https://happytails.ai/en/developer-tools/json-response-redactor/"
    },
    {
      "name": "JSON path inventory",
      "url": "https://happytails.ai/en/data-tools/json-path-inventory/"
    },
    {
      "name": "JSON diff",
      "url": "https://happytails.ai/en/developer-tools/json-diff/"
    }
  ],
  "tool": {
    "id": "terraform-state-inspector",
    "category": "developer-tools",
    "built": true,
    "requirements": "Up to 5,000,000 characters of state JSON. Everything runs on your device in a background worker and nothing is uploaded. Downloads: JSON report, CSV inventory, SVG dependency graph and a masked copy of the state.",
    "implementation": {
      "fields": [
        {
          "key": "sensitivePaths",
          "label": "Extra attribute names to mask",
          "value": "",
          "type": "textarea",
          "help": "Optional. Attribute names to mask in addition to Terraform sensitive markers and secret-like names, separated by spaces, commas or new lines."
        }
      ],
      "registrationFamily": "config-infrastructure-json",
      "inputMaxLength": 5000000,
      "inputErrorCode": "CONFIG_INFRASTRUCTURE_JSON_TOO_LONG_STATE",
      "note": "Inspects a terraform.tfstate file on your device and masks secrets before showing anything. Up to 5,000,000 characters; nothing is uploaded.",
      "experience": {
        "automatic": false,
        "single": false,
        "inputMaxLength": 1000000,
        "inputMode": "text",
        "label": "terraform.tfstate",
        "placeholder": "{\"version\": 4, \"terraform_version\": \"1.9.5\", \"resources\": [...]}",
        "help": "Paste the content of terraform.tfstate. 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 state inspector\n\n- Human page: https://happytails.ai/en/developer-tools/terraform-state-inspector/\n- Markdown: https://happytails.ai/en/developer-tools/terraform-state-inspector.md\n- Structured JSON: https://happytails.ai/agents/en/developer-tools/terraform-state-inspector/index.json\n- Visibility: public\n\n## Tool capabilities\n\n| Property | Value |\n| --- | --- |\n| Tool ID | `terraform-state-inspector` |\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\nInspects a terraform.tfstate file on your device and masks secrets before showing anything. Up to 5,000,000 characters; nothing is uploaded.\n\n### Inputs and settings\n\nText input: terraform.tfstate.\n\nExample or placeholder shown in the interface (not a validated fixture):\n\n```text\n{\"version\": 4, \"terraform_version\": \"1.9.5\", \"resources\": [...]}\n```\n\nPaste the content of terraform.tfstate. Up to 1,000,000 characters. Review the settings before running.\n\n| Setting | Meaning | Control type | Default | Constraints |\n| --- | --- | --- | --- | --- |\n| `sensitivePaths` | Extra attribute names to mask | textarea | \"\" |  |\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 state JSON. Everything runs on your device in a background worker and nothing is uploaded. Downloads: JSON report, CSV inventory, SVG dependency graph and a masked copy of the state.\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-state-inspector\",\n  \"category\": \"developer-tools\",\n  \"built\": true,\n  \"requirements\": \"Up to 5,000,000 characters of state JSON. Everything runs on your device in a background worker and nothing is uploaded. Downloads: JSON report, CSV inventory, SVG dependency graph and a masked copy of the state.\",\n  \"implementation\": {\n    \"fields\": [\n      {\n        \"key\": \"sensitivePaths\",\n        \"label\": \"Extra attribute names to mask\",\n        \"value\": \"\",\n        \"type\": \"textarea\",\n        \"help\": \"Optional. Attribute names to mask in addition to Terraform sensitive markers and secret-like names, separated by spaces, commas or new lines.\"\n      }\n    ],\n    \"registrationFamily\": \"config-infrastructure-json\",\n    \"inputMaxLength\": 5000000,\n    \"inputErrorCode\": \"CONFIG_INFRASTRUCTURE_JSON_TOO_LONG_STATE\",\n    \"note\": \"Inspects a terraform.tfstate file on your device and masks secrets before showing anything. 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\": \"terraform.tfstate\",\n      \"placeholder\": \"{\\\"version\\\": 4, \\\"terraform_version\\\": \\\"1.9.5\\\", \\\"resources\\\": [...]}\",\n      \"help\": \"Paste the content of terraform.tfstate. 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\nInspect a terraform.tfstate file on your device: list resources, modules, providers and outputs, see how resources depend on each other, and get a copy with secrets 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 state inspector\n\n1. Paste the content of terraform.tfstate (state format version 4).\n2. Optionally add attribute names to mask in addition to the built-in rules.\n3. Run the inspection and review resources, dependencies and tainted instances.\n4. Download the JSON report, CSV inventory, dependency graph or masked state.\n\n## Useful next steps\n\n- [JSON response redactor](https://happytails.ai/en/developer-tools/json-response-redactor/) ([Markdown](https://happytails.ai/en/developer-tools/json-response-redactor.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- [JSON diff](https://happytails.ai/en/developer-tools/json-diff/) ([Markdown](https://happytails.ai/en/developer-tools/json-diff.md))\n\n## What is read\n\nHappytails.ai reads the version 4 state layout written by Terraform 0.12 and later, as described in the Terraform state documentation (developer.hashicorp.com, read on 16 October 2026): resources with their module, mode, type, provider (with its alias and the module that declares it) and instances, recorded dependencies, tainted status and outputs.\n\n### Masking\n\nBefore anything is shown, values Terraform marked in sensitive\\_attributes and sensitive outputs are replaced with (sensitive). Attributes whose names look like secrets, such as password, token, private\\_key, client\\_key, access\\_key or connection\\_string, are masked too, including a whole list or object stored under such a name, and you can add more names. Masking is a safety net: review the masked state before sharing it.\n\n### Limits\n\nThe state is never sent anywhere and Terraform is not run. Dependencies are the ones Terraform recorded in the state, so implicit provider ordering is not shown. The graph draws up to 300 resources.\n"
}