OpenTofu
The open-source fork of Terraform, created after HashiCorp’s 2023 licence change: same HCL, same providers, tofu instead of terraform.
- What it is
- Infrastructure as code
- Type
- Open source
- Made by
- Cloud Native Computing Foundation
- License
- MPL 2.0
- Facts checked
- 6 October 2026
What it is
OpenTofu works the way Terraform does. You declare resources in HCL files, tofu plan compares them with a state file and shows what will be created, changed or destroyed, and tofu apply calls the cloud APIs through provider plugins. It began as a copy of Terraform’s last MPL-licensed code, so existing configurations, modules and providers work unchanged, and the project calls it a drop-in replacement: it reads state files created by Terraform up to the 1.5.x versions. Providers and modules come from the OpenTofu Registry, a public index kept in a git repository, where publishing is a pull request.
Since the fork the two tools have moved apart. OpenTofu added features the community had asked HashiCorp for: client-side encryption of state and plan files (1.7, April 2024), variables in backend and module source settings (1.8), and for_each on provider blocks for multi-region setups (1.9). Code that uses OpenTofu-only features can live in .tofu files, which OpenTofu reads in preference to a .tf file of the same name, so one module can serve both tools. The project started at the Linux Foundation in September 2023 and was accepted into the Cloud Native Computing Foundation as a Sandbox project in April 2025. Version 1.13, released at the end of September 2026, is supported until August 2027.
Why teams pick it
- Open source under MPL 2.0 with neutral foundation governance, so it can be embedded in commercial products and hosted services that Terraform’s BSL rules out
- Familiar to anyone who knows Terraform: the same HCL, the same providers and a documented migration path
- Built-in state and plan encryption with a passphrase or a key from AWS KMS, GCP KMS, Azure Key Vault or OpenBao, whatever backend stores the state
- Features Terraform doesn’t have, such as
for_eachover providers and variables in backend configuration
Watch out for
- The two tools keep diverging: OpenTofu-only syntax won’t run on Terraform, and migration is documented for state from Terraform 1.5.x and earlier
- The same model’s chores as Terraform: a state file to store, lock and protect, and drift whenever someone edits resources by hand
- Encrypted state is unrecoverable without its key; the docs tell you to back up keys and an unencrypted state copy before turning it on
- Still a CNCF Sandbox project, the earliest maturity level, which the CNCF describes as experimental
Alternatives
What all infrastructure as code have in common →
AWS Cloud Development Kit (CDK)AWSDefine AWS infrastructure in TypeScript, Python, Java, C# or Go; the CDK turns it into CloudFormation templates and CloudFormation deploys them.How it fits with other technologies
What OpenTofu uses
State on S3, locked with a lock file and encrypted with a KMS key · hcl
terraform {
backend "s3" {
bucket = "acme-tofu-state"
key = "prod/network.tfstate"
region = "eu-west-1"
use_lockfile = true # S3-native locking, no DynamoDB table
}
encryption {
key_provider "aws_kms" "main" {
kms_key_id = "alias/tofu-state"
region = "eu-west-1"
key_spec = "AES_256"
}
method "aes_gcm" "main" {
keys = key_provider.aws_kms.main
}
state {
method = method.aes_gcm.main
enforced = true # require encryption
}
}
}
# $ tofu init && tofu planSee it in a real stack
No architecture uses OpenTofu yet. Drop it into the playground and wire it up yourself.Open playground →Where it came from2023–2026
Terraform was open source under the Mozilla Public License from its release in 2014, and a large ecosystem of modules, providers and companies grew around it. On August 10, 2023, HashiCorp moved it to the Business Source License, which allows free use but forbids competing with HashiCorp’s own products. Companies whose products were built on Terraform published the OpenTF Manifesto (now the OpenTofu Manifesto), calling the new licence vague and a “poison pill” and asking HashiCorp to return Terraform to open source. Gruntwork, Spacelift, Harness, env0 and Scalr were among those behind it.
HashiCorp didn’t, so they forked the last MPL code. On September 20, 2023, the Linux Foundation announced the project under its new name, OpenTofu, with pledges from more than 140 organisations and 600 individuals. The first stable release, 1.6.0, came out on January 10, 2024 after four months of work by almost 60 contributors, with a new registry and a testing feature.
The project then shipped what the community had long wanted from Terraform. State encryption in 1.7, released in April 2024, came from an RFC by a community member who had tried for years to get it into Terraform. In April 2025 OpenTofu was accepted into the CNCF Sandbox, and it has shipped a new minor version every few months since, reaching 1.13 in September 2026.
Why it’s built this way
- Fork from the last open-source release
- Starting from Terraform’s MPL code kept every existing configuration, module and provider working, so switching could be as simple as installing a different binary.
- Stay backward compatible, and mark the differences
- Users had years of Terraform code. New features land in OpenTofu, and the
.tofufile extension lets module authors use them while keeping.tffiles for Terraform users. - Neutral foundation governance
- The fork existed because one company could change the licence. Placing it under the Linux Foundation, and later the CNCF, means no single vendor can relicense it.
- A registry that is just a git repository
- The team consulted the authors of earlier registries such as Homebrew’s and built a Homebrew-like index, so publishing a provider or module is a pull request.
Timeline
- 2023
HashiCorp relicenses Terraform under the BSL on August 10; the OpenTF Manifesto follows
- 2023
The Linux Foundation launches the fork as OpenTofu on September 20
- 2024
OpenTofu 1.6.0, the first stable release, on January 10
- 2024
1.7.0 adds end-to-end state encryption in April
- 2025
1.9.0 adds provider
for_each; accepted into the CNCF Sandbox in April - 2026
OpenTofu 1.13.0 released on September 29
- The OpenTofu Manifesto (Aug 2023)
- OpenTofu FAQ: why OpenTofu was created
- Linux Foundation: Linux Foundation launches OpenTofu (Sept 2023)
- OpenTofu blog: OpenTofu is going GA (Jan 2024)
- OpenTofu blog: OpenTofu 1.7.0 is out with state encryption (Apr 2024)
- OpenTofu blog: OpenTofu 1.9.0 is available with provider for_each (Jan 2025)
- CNCF: OpenTofu (accepted April 23, 2025 at the Sandbox maturity level)
- OpenTofu blog: OpenTofu v1.13.0 (Sept 2026)
- Terraform LICENSE: BUSL 1.1 for version 1.6.0 and later
- HashiCorp licensing FAQ (what the BSL allows)
Sources15 · facts checked 6 October 2026
- OpenTofu docs: What is OpenTofu?
- OpenTofu docs: Migrating to OpenTofu from Terraform
- OpenTofu FAQ: state files up to Terraform 1.5.x, registry
- OpenTofu docs: State
- OpenTofu docs: State and plan encryption (key providers, pitfalls)
- OpenTofu docs: S3 backend (use_lockfile, DynamoDB locking)
- OpenTofu docs: Files and directories (.tofu extension precedence)
- OpenTofu blog: OpenTofu 1.8.0 with early evaluation and .tofu files (Jul 2024)
- OpenTofu blog: OpenTofu 1.9.0 with provider for_each (Jan 2025)
- OpenTofu blog: OpenTofu is going GA (registry, drop-in replacement)
- OpenTofu blog: OpenTofu v1.13.0, supported until August 2027 (Sept 2026)
- GitHub: OpenTofu v1.13.1 release (Oct 2026)
- OpenTofu LICENSE (MPL 2.0)
- CNCF: OpenTofu project page (Sandbox) and maturity levels
- HashiCorp licensing FAQ