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.
Your Terraform estate, on Pulumi’s engine
Terraform state
Terraform modules
HCL
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.
Remote execution
Config and secrets in ESC
Preventative policies
Neo code reviews
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 private registry
Typed in every language
The community ecosystem
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.
Start from a template
Components in HCL
Every provider
Proven at scale
Some of the largest infrastructure estates in the world run on Pulumi.

1M+ cloud resources managed across thousands of Kubernetes clusters
20,000+ cloud resources managed across multiple stacks

Unified toolset taming the complexity of many teams and many clouds
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 stateKeep your HCL
Run your existing .tf files on the Pulumi engine before anyone decides whether to adopt another language.
Keep your modules and providers
Use existing Terraform modules and any Terraform provider directly from a Pulumi program.
Use a Terraform moduleConvert when you're ready
pulumi convert --from terraform translates HCL into the language of your choice, preserving names and structure.
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 stateCompare the two in detail
A feature-by-feature comparison of Pulumi and Terraform, including where Terraform is the better fit.
Read the comparisonPut your state in Pulumi Cloud
terraform init, and keep going. Encrypted state, locking, history, and RBAC come with it.