A free, open source Terraform state visualization tool that converts Terraform state JSON files into succinct, interactive HTML pages. Perfect for sharing state information in CI/CD pipelines, pull requests, and team collaboration.
-
Download the latest release from the Releases page
-
Generate a Terraform state JSON file:
terraform show -json > state.json -
Generate the visualization:
./terraform-state-visualizer -i state.json -o visualization.html
-
Open the HTML file in your browser to view the interactive visualization
# Generate state JSON (as above)
terraform show -json > state.json
# Run with Docker
docker run --rm -v $(pwd):/workspace \
ghcr.io/cloudvic-org/terraform-state-visualizer:latest \
-i /workspace/state.json -o /workspace/visualization.htmlname: Terraform State Visualization
on:
pull_request:
paths:
- 'terraform/**'
jobs:
state:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Setup Terraform
uses: hashicorp/setup-terraform@v3
with:
terraform_version: 1.6.0
- name: Terraform State Pull
run: |
cd terraform
terraform init
terraform state pull > state.json
- name: Generate Visualization
uses: cloudvic-org/terraform-state-visualizer@v1
with:
state-file: terraform/state.json
output-file: terraform-state-visualization.html
- name: Upload Visualization
uses: actions/upload-artifact@v4
with:
name: terraform-state-visualization
path: terraform-state-visualization.htmlgit clone https://github.com/cloudvic-org/terraform-state-visualizer.git
cd terraform-state-visualizer
go build -o terraform-state-visualizer .go install github.com/cloudvic-org/terraform-state-visualizer@latestterraform-state-visualizer [OPTIONS]
Options:
-i, -input string Input Terraform state JSON file (required)
-o, -output string Output HTML file path (default: state-visualization.html)
--output-html-path string
Output HTML file path (alternative to -o)
-h, -help Show help information
-v, -version Show version information# Basic usage
terraform-state-visualizer -i state.json
# Custom output file
terraform-state-visualizer -i state.json -o my-state.html
# Using long-form flags
terraform-state-visualizer --input state.json --output-html-path visualization.html- name: Generate State Visualization
uses: cloudvic-org/terraform-state-visualizer@v1
with:
state-file: terraform/state.json
output-file: state-visualization.html
upload-artifact: truegenerate_visualization:
image: ghcr.io/cloudvic-org/terraform-state-visualizer:latest
script:
- terraform-state-visualizer -i state.json -o visualization.html
artifacts:
paths:
- visualization.htmlpipeline {
agent any
stages {
stage('Visualize State') {
steps {
sh 'terraform-state-visualizer -i state.json -o visualization.html'
archiveArtifacts artifacts: 'visualization.html'
}
}
}
}This project is licensed under the MIT License - see the LICENSE file for details.
- CloudVIC - Advanced Terraform plan and state visualizations, with drift detection, git history integration, and more