The execution model
How Terragrunt calls Terraform.
Understanding what Terragrunt actually does on each command demystifies it. For a single unit it: reads terragrunt.hcl, downloads the source module into .terragrunt-cache, writes the generated backend and provider files, assembles the inputs (as TF_VAR_ environment variables or an auto tfvars), and then runs the underlying terraform command in that cache directory, streaming its output. So terragrunt plan is terraform plan with all the glue applied first.
It is still Terraform underneath
Because the real work is Terraform in the cache directory, everything you know transfers: read the plan the same way, the same +/~/-/+- symbols mean the same things, state lives in the same backend, and you can drop into the cache directory to run raw terraform for debugging. Terragrunt passes through most terraform commands and flags, so terragrunt output, terragrunt state, terragrunt import all work.
$ terragrunt plan# (downloads module, writes backend.tf/provider.tf, then:)Terraform will perform the following actions:+ aws_vpc.main will be createdPlan: 1 to add, 0 to change, 0 to destroy.# to debug, cd into .terragrunt-cache/.../ and run raw terraform there