Loading comparison...
Loading comparison...
HashiCorp Configuration Language for defining infrastructure as code. Used by Terraform, Packer, and Vault.
HCL (HashiCorp Configuration Language) is a structured configuration language created by HashiCorp, first introduced alongside Terraform in 2014 by Mitchell Hashimoto and Armon Dadgar. HCL was designed specifically for human-readable infrastructure-as-code definitions, combining the expressiveness of JSON with a cleaner syntax that supports comments, multi-line strings, and interpolation. Terraform, the primary consumer of HCL, is the industry-leading tool for provisioning cloud infrastructure across AWS, Azure, Google Cloud, and dozens of other providers.
Beyond Terraform, HCL is used by other HashiCorp tools including Packer for machine image builds, Vault for secrets management policies, Nomad for job scheduling, Consul for service mesh configuration, and Waypoint for application deployment. The language features blocks for resource definitions, expressions for dynamic values, functions for string manipulation and collection operations, and modules for reusable infrastructure components. HCL2, the current version, added first-class expressions, for_each meta-arguments, and a type system for variable validation.
The Terraform Registry hosts thousands of community-contributed providers and modules written in HCL. Enterprise teams manage thousands of HCL files representing their entire cloud infrastructure, making it a critical configuration format in modern DevOps workflows. The HCL parser is open-source and available as a Go library, enabling third-party tools to read and manipulate infrastructure definitions programmatically.
HCL changes can create, modify, or destroy live cloud infrastructure, making diffs a mandatory safety gate before any Terraform apply. A resource block rename might trigger a destroy-and-recreate, while a security group rule change could expose production systems.
Comparing HCL files catches unintended resource deletions, overly permissive IAM policies, and configuration drift between environments. Infrastructure teams must review every HCL diff to prevent costly outages and security vulnerabilities.
UtraDiff compares HCL/Terraform files with HCL syntax highlighting, rendering resource blocks, variables, and interpolation expressions in distinct colors. Side-by-side view aligns resource and module definitions across panels. The whitespace ignore toggle suppresses terraform fmt reformatting noise.
Alt+Arrow navigation jumps between changed blocks. Language-aware tokenization distinguishes resource type changes from attribute modifications, making plan-breaking infrastructure changes immediately visible.
Supported extensions: .tf .tfvars .hcl