---
description: >-
  The `tofu state show` command is used to show the attributes of a single
  resource in the OpenTofu state.
---

# Command: state show

The `tofu state show` command is used to show the attributes of a
single resource in the
[OpenTofu state](../../../language/state/index.mdx).

## Usage

Usage: `tofu state show [options] ADDRESS`

The command will show the attributes of a single resource in the
state file that matches the given address.

This command requires an address that points to a single resource in the
state. Addresses are
in [resource addressing format](../../../cli/state/resource-addressing.mdx).

:::note
Use of variables in [module sources](../../../language/modules/sources.mdx#support-for-variable-and-local-evaluation),
[backend configuration](../../../language/settings/backends/configuration.mdx#variables-and-locals),
or [encryption block](../../../language/state/encryption.mdx#configuration)
requires [assigning values to root module variables](../../../language/values/variables.mdx#assigning-values-to-root-module-variables)
when running `tofu show`.
:::

The command-line flags are all optional. The following flags are available:

* `-state=path` - Path to the state file. Defaults to "terraform.tfstate".
  Ignored when [remote state](../../../language/state/remote.mdx) is used.

* `-var 'NAME=VALUE'` - Sets a value for a single
  [input variable](../../../language/values/variables.mdx) declared in the
  root module of the configuration. Use this option multiple times to set
  more than one variable. Refer to
  [Input Variables on the Command Line](../plan.mdx#input-variables-on-the-command-line) for more information.

* `-var-file=FILENAME` - Sets values for potentially many
  [input variables](../../../language/values/variables.mdx) declared in the
  root module of the configuration, using definitions from a
  ["tfvars" file](../../../language/values/variables.mdx#variable-definitions-tfvars-files).
  Use this option multiple times to include values from more than one file.

* `-show-sensitive` - If specified, sensitive values will be displayed.

There are several other ways to set values for input variables in the root
module, aside from the `-var` and `-var-file` options. Refer to
[Assigning Values to Root Module Variables](../../../language/values/variables.mdx#assigning-values-to-root-module-variables) for more information.

The output of `tofu state show` is intended for human consumption, not
programmatic consumption. To extract state data for use in other software, use
[`tofu show -json`](../../../cli/commands/show.mdx#json-output) and decode the result
using the documented structure.

## Example: Show a Resource

The example below shows a `packet_device` resource named `worker`:

```
$ tofu state show 'packet_device.worker'
# packet_device.worker:
resource "packet_device" "worker" {
    billing_cycle = "hourly"
    created       = "2015-12-17T00:06:56Z"
    facility      = "ewr1"
    hostname      = "prod-xyz01"
    id            = "6015bg2b-b8c4-4925-aad2-f0671d5d3b13"
    locked        = false
}
```

## Example: Show a Module Resource

The example below shows a `packet_device` resource named `worker` inside a module named `foo`:

```shell
$ tofu state show 'module.foo.packet_device.worker'
```

## Example: Show a Resource configured with count

The example below shows the first instance of a `packet_device` resource named `worker` configured with
[`count`](../../../language/meta-arguments/count.mdx):

```shell
$ tofu state show 'packet_device.worker[0]'
```

## Example: Show a Resource configured with for_each

The following example shows the `"example"` instance of a `packet_device` resource named `worker` configured with the [`for_each`](../../../language/meta-arguments/for_each.mdx) meta-argument. You must place the resource name in single quotes when it contains special characters like double quotes.

Linux, Mac OS, and UNIX:

```shell
$ tofu state show 'packet_device.worker["example"]'
```

PowerShell:

```shell
$ tofu state show 'packet_device.worker[\"example\"]'
```

Windows `cmd.exe`:

```shell
$ tofu state show packet_device.worker[\"example\"]
```
