Terraform Formatter Online — Beautify HCL in Your Browser

Format Terraform and HCL with consistent indentation. Comments can be preserved on round-trip — all processing stays local.

Loading…
Terraform formatter — HCL beautify playbook
Normalize Terraform and generic HCL before code review or paste into CI snippets. Keeps block structure readable without sending configs to a server.

Developer notes

• Uses @cruglobal/js-hcl2 stringify for indentation and spacing. • “Preserve comments” keeps leading # lines at the top of the file; inline comments inside blocks may be removed. • Auto-format runs on paste or when options change; manual edits use the Format button (⌘↵). • 512 KB max per paste (ADR-DEVOPS-009). • Pair with validate-terraform for live syntax checks.

Options

Indent
Spaces per indentation level (2 or 4) in the formatted HCL output.
Preserve comments
When on, keeps # and // comments through the format round-trip. Turn off for a cleaner structural dump.

When teams pick this route

• Clean up hand-edited module snippets before opening a PR. • Align indentation across copied examples from provider docs. • Format a small root module when the CLI is not installed. • Preview how HCL will look after terraform fmt on a fragment.

Worked examples

Messy resource block from a provider doc

Before

resource "aws_s3_bucket" "logs" { bucket="app-logs-prod" acl="private" tags={ Environment="production" Team="platform" } }

After format

resource "aws_s3_bucket" "logs" { bucket = "app-logs-prod" acl = "private" tags = { Environment = "production" Team = "platform" } }

Variable block with inline comment

Before

# region for the VPC variable "region" { type=string default="eu-west-1" description="AWS region" }

After format

# region for the VPC variable "region" { type = string default = "eu-west-1" description = "AWS region" }

Navigate related DevOps tools

Validate syntax with validate Terraform, compact snippets via minify Terraform, or browse the DevOps hub. For YAML manifests see beautify YAML.

Terraform formatter FAQ

HCL syntax and layout only

Does it preserve comments?

Leading # comment lines at the top of the file are kept when “Preserve comments” is on. Inline comments inside blocks are not preserved — use terraform fmt locally if you need full comment round-trip.

Is this terraform fmt?

Similar intent for layout, but runs in the browser with js-hcl2. It does not execute terraform fmt or contact Terraform Cloud.

What is the size limit?

512 KB per paste. Split large root modules or use the CLI for full trees.

DevOps & Infra

Terraform HCL format/validate/minify, Dockerfile format & lint, Docker Compose and .env validation.

Explore other tool categories

Minify

Shrink code and assets for production — minify JavaScript, CSS, HTML, JSON and XML before gzip or CDN deploy.

Beautify

Make code readable with consistent indentation — beautify JavaScript, CSS, TypeScript, SCSS, LESS, Markdown, GraphQL, SQL, YAML and more in your browser.

Unminify

Expand minified or compressed code — unminify JavaScript, CSS, TypeScript, SCSS, LESS, SQL, YAML and other formats when debugging or reviewing.

Conversion

Transform data between JSON, YAML, XML and CSV locally — no server uploads.

CSS preprocessors

Compile SCSS or LESS to standard CSS in the browser — pair with beautify or minify for a full stylesheet workflow.

JSON Tools

Validate, format, diff and explore JSON payloads — complementary to minifiers and converters.

SVG Tools

Preview, optimize with SVGO, export Data URI, resize, beautify, convert to JSX and validate SVG — all in your browser.

CI/CD

GitHub Actions and GitLab CI — format YAML and check workflow/job structure in your browser.

Logs & observability

Line-oriented JSON/NDJSON and Nginx/Apache access logs — format, filter, validate, and CSV/TSV.

Kubernetes

Multi-doc manifests, structural validate, Ingress/Deployment starters, and Helm values formatting.

Networking / IP

CIDR, subnets, and IPv4/IPv6 helpers — in your browser.

Security & tokens

JWKS, X.509 certificates, and secrets scan — browser-local.

API & schemas

OpenAPI tools to format, validate, and lint your specs.

Encoding

Encode or decode Base64, URL components and HTML entities — client-side only.

Developer utilities

Timestamps, UUID, ULID, Nanoid, cron, passwords, regex, slugify, number bases, case, text diff, and chmod — all client-side.

Text & Markdown

Count words, build Markdown TOCs, and clean line lists — all in your browser.

AI & LLM

Token counting, pricing estimates, and context-window fit — 100% browser-local.

Serialization

Serialize and deserialize PHP data structures beside JSON workflows.