What OpenTofu is & why it forked

The Terraform license change and the fork.

Beginner12 min · lesson 1 of 12

OpenTofu is the open-source fork of Terraform. In August 2023 HashiCorp relicensed Terraform from the Mozilla Public License (MPL 2.0) to the Business Source License (BSL) — a source-available license that restricts commercial use. The community response was a fork of the last MPL-licensed version, donated to the Linux Foundation as OpenTofu, so a truly open, community-governed Terraform-compatible tool would keep existing.

What you get is, deliberately, almost exactly Terraform: the same HCL configuration language, the same state model, the same init/plan/apply workflow, and the same providers and modules. The differences are governance (an open foundation instead of a single vendor), license (MPL 2.0, so commercial use is unrestricted), and — increasingly — features that OpenTofu ships and Terraform does not.

What changed, what did not
same as Terraform
HCL language
providers, resources, modules
state format
compatible, drop-in
workflow
init / plan / apply / destroy
different
license
MPL 2.0 (open) vs BSL
governance
Linux Foundation, community
features
state encryption, early eval…
The whole point of the fork: keep everything you know, under an open license, and add what the community wants.

Should you use it

For most teams OpenTofu is a low-risk choice: the CLI is a drop-in for terraform, your existing configs and state work unchanged, and the license question simply goes away. Major providers (AWS, Azure, Google) and the module ecosystem work identically because OpenTofu uses the same provider protocol. The main things to check are tooling integrations (some CI actions and Terraform Cloud features are HashiCorp-specific) and that your team is comfortable tracking a second, now-diverging tool.

The two are diverging
Early on OpenTofu was a near-identical mirror; it is now shipping features Terraform lacks (state encryption, provider-defined functions in HCL, early variable evaluation). Configs that use OpenTofu-only features are no longer portable back to Terraform — a good thing to adopt deliberately, and to note in your docs so nobody is surprised.