Skip to main content
Pulumi logo Pulumi logo
New in the August 2026 release

Keep your Terraform. 
Gain the platform around it.

Pulumi Cloud manages your Terraform state, turns your modules into components any language can consume, and runs HCL as a first-class Pulumi language. Bring the infrastructure you already have.

HCL, Terraform state, and Terraform modules converging on the Pulumi mark

Your Terraform estate, on Pulumi’s engine

Adopting Pulumi no longer starts with a rewrite. Your existing state, modules, and HCL are things Pulumi runs, so you can put them on a managed platform first and decide about languages later.

Terraform state

Point the Terraform CLI at Pulumi Cloud with a standard backend block. Your workflow stays the same.

Terraform modules

Publish once to the Pulumi Cloud private registry, then consume from Terraform, OpenTofu, or any Pulumi language.

HCL

HCL is a fully supported Pulumi language, with no syntactical differences from the code your team writes today.

Terraform state and remote execution

Bring your Terraform state to Pulumi Cloud

Pulumi Cloud implements Terraform’s remote backend API, so a standard backend "remote" block is the whole migration. Your HCL, your CLI, and your day-to-day workflow are unchanged, and both Terraform and OpenTofu work.

In return you get encrypted state, automatic locking, update history, role-based access control, and audit policies, plus a single view of Terraform-managed and Pulumi-managed resources together in resource search.

Three infrastructure stacks feeding into the Pulumi mark

Remote execution

Plans and applies run in Pulumi-managed containers instead of on laptops, with logs streamed to your terminal.

Config and secrets in ESC

Pulumi ESC injects OIDC credentials at apply time and exposes outputs to downstream stacks and services.

Preventative policies

Pulumi Policies evaluates a Terraform plan and blocks non-compliant resources before they reach production.

Neo code reviews

Pulumi Neo reviews infrastructure pull requests and tells you whether a change is safe to merge.

Terraform modules

One module, every language

The Pulumi Cloud private registry has native support for Terraform modules. Publishing is wire-compatible with HCP Terraform’s API, so existing pipelines migrate by repointing the host.

Once a module is published, Pulumi converts it into a typed component that any team can consume, whether they write Terraform, OpenTofu, TypeScript, Python, Go, .NET, Java, or YAML. One module, maintained once, serves every team.

A Terraform module imported into a Pulumi program

A private registry

Host your team’s modules in Pulumi Cloud with versioning and access control built in.

Typed in every language

Pulumi generates a typed SDK per language, so consumers get autocomplete and type checking.

The community ecosystem

Use any public Terraform module through a generated SDK or a dynamic module loader.

HCL as a Pulumi language

Write HCL, get the whole ecosystem

Set runtime: hcl and your existing .tf files run on the Pulumi engine as they are. There are no syntactical differences to learn and nothing to convert.

HCL programs reach the full Pulumi ecosystem: thousands of providers, Pulumi Cloud, ESC, policies, and Neo. Teams that prefer HCL can also publish components that colleagues consume from any other Pulumi language.

An HCL program running on the Pulumi engine

Start from a template

HCL starter and architecture templates stand up a new project in seconds.

Components in HCL

Build typed, multi-language components without leaving HCL.

Every provider

The full Pulumi Registry, including any provider bridged from Terraform.

Proven at scale

Some of the largest infrastructure estates in the world run on Pulumi.

Wiz

1M+ cloud resources managed across thousands of Kubernetes clusters

“We use Pulumi widely at Wiz. It enabled our product to support multi-cloud and to scale quickly - scaling and driving hundreds of thousands of infrastructure updates every day.”
BMW

20,000+ cloud resources managed across multiple stacks

Software Factory manages over 20,000 cloud resources using Python-based infrastructure code integrated with existing CI/CD workflows.
Mercedes-Benz Research and Development

Unified toolset taming the complexity of many teams and many clouds

“What really stands out in Pulumi is the ability to apply program language constructs and best practices to your cloud infrastructure code,”
Adoption

Adopt at the pace that suits you

These paths combine, and none of them require finishing another first. Most teams start with one and add others over time.

Keep running Terraform

Move state to Pulumi Cloud for governance and visibility while your team keeps using the Terraform or OpenTofu CLI.

Host your state

Keep your HCL

Run your existing .tf files on the Pulumi engine before anyone decides whether to adopt another language.

Read the HCL docs

Keep your modules and providers

Use existing Terraform modules and any Terraform provider directly from a Pulumi program.

Use a Terraform module

Convert when you're ready

pulumi convert --from terraform translates HCL into the language of your choice, preserving names and structure.

See the migration guide

Run both side by side

Pulumi programs can read outputs from an existing Terraform state file while you adopt Pulumi for new work.

Reference Terraform state

Compare the two in detail

A feature-by-feature comparison of Pulumi and Terraform, including where Terraform is the better fit.

Read the comparison

Put your state in Pulumi Cloud

Add a backend block, run terraform init, and keep going. Encrypted state, locking, history, and RBAC come with it.

Talk to us about your estate

Our team helps plan larger moves, from hosting state to converting workspaces and training the engineers who own them.

The infrastructure as code platform for any cloud.