# OpenTofu vs Pulumi

| Attribute | OpenTofu | Pulumi |
|---|---|---|
| **Vioscale score** | 68.6 (45% (low)) | 69.2 (75% (high)) |
| activity.commits_last_30d | 95 | 100 |
| adoption.dependent_repos | 0 | 2,143 |
| adoption.github_stars | 29,933 | 25,610 |
| adoption.package_downloads_weekly | - | 1,787,798 |
| deployment.options | `{"cloud":true,"self_hosted":true}` | `{"cloud":true}` |
| description.long | A community-driven infrastructure-as-code platform maintained under the Linux Foundation that enables declarative management of cloud resources. It serves as a compatible alternative to Terraform, preserving existing configurations and workflows while providing access to thousands of providers and reusable infrastructure modules. | A cloud infrastructure management platform that lets teams define and deploy resources across multiple cloud providers using standard programming languages. Includes state management, policy enforcement, and tooling for discovering and migrating existing infrastructure. |
| features.capabilities | `{"hosting":"self","language":"HCL","paradigm":"declarative_dsl","multicloud":true,"drift_detection":true,"import_existing":true,"state_management":"self_managed","open_source_engine":true,"provider_ecosystem":true,"gitops_reconciliation":true}` | `{"hosting":"cloud","language":"TypeScript, Python, Go, C#, Java, YAML","paradigm":"general_language","multicloud":true,"policy_as_code":true,"drift_detection":true,"import_existing":true,"state_management":"vendor_managed","open_source_engine":true,"provider_ecosystem":true,"gitops_reconciliation":false,"managed_saas_offering":true}` |
| integrations.count | 3,900 | 6 |
| integrations.list | `[{"name":"AWS"},{"name":"Cloudflare"},{"name":"GitHub"},{"name":"Terraform Cloud"},{"name":"Terraform Enterprise"},{"name":"Scalr"},{"name":"Spacelift"},{"name":"env0"},{"name":"Digger"},{"name":"Terrateam"},{"name":"Qovery"},{"name":"Argonaut"},{"name":"Finisterra"},{"name":"AutoCloud"}]` | `[{"name":"AWS"},{"name":"Azure"},{"name":"Google Cloud"},{"name":"Terraform"},{"name":"CloudFormation"},{"name":"Azure Resource Manager"}]` |
| language.primary | Go | Go |
| license.spdx | MPL-2.0 | Apache-2.0 |
| market.availability | `{"primaryMarkets":[],"availabilityScope":"global","availableCountries":[],"notAvailableCountries":[]}` | `{"primaryMarkets":["US"],"availabilityScope":"global","availableCountries":[],"notAvailableCountries":[]}` |
| platform.support | `{"cli":true}` | `{"cli":true,"web":true}` |
| pricing | `{"type":"open_source","summary":"Free and open source (MPL-2.0 license)","freeTier":true,"sourceUrl":"https://opentofu.org/docs/v1.10/cli/commands/plan/","retrievedAt":"2026-08-14T21:32:43.822Z"}` | `{"type":"hybrid","plans":[{"free":false,"name":"Team Edition","summary":"Per resource-hour and per deployment-minute charges. Free credits included.","description":"Team edition with per-resource-hour and per-deployment-minute charges","contactSales":false,"includedLimits":{"free_credits":"included"}}],"summary":"Team Edition with per-resource-hour and deployment-minute metering. Bulk discounts available for >$20k/year spend. Free credits included.","currency":"USD","freeTier":true,"sourceUrl":"https://www.pulumi.com/blog/pricing-calculator-blog/","retrievedAt":"2026-08-14T21:36:29.976Z","billingPeriods":["month"]}` |
| pricing.free_tier | yes | yes |
| pricing.model | commercial | commercial |
| pricing.price_level | free | low |
| pricing.transparent | yes | yes |
| release.cadence_days | 4 | 5 |
| release.history | `[{"url":"https://github.com/opentofu/opentofu/releases/tag/v1.12.6","date":"2026-08-19T11:40:07Z","type":"stable","version":"v1.12.6"},{"url":"https://github.com/opentofu/opentofu/releases/tag/v1.11.14","date":"2026-08-19T11:39:12Z","type":"stable","version":"v1.11.14"},{"url":"https://github.com/opentofu/opentofu/releases/tag/v1.12.5","date":"2026-07-21T11:39:19Z","type":"stable","version":"v1.12.5"},{"url":"https://github.com/opentofu/opentofu/releases/tag/v1.11.13","date":"2026-07-21T11:39:02Z","type":"stable","version":"v1.11.13"},{"url":"https://github.com/opentofu/opentofu/releases/tag/v1.12.4","date":"2026-07-13T16:07:42Z","type":"stable","version":"v1.12.4"},{"url":"https://github.com/opentofu/opentofu/releases/tag/v1.11.12","date":"2026-07-13T16:07:11Z","type":"stable","version":"v1.11.12"},{"url":"https://github.com/opentofu/opentofu/releases/tag/v1.11.11","date":"2026-06-23T13:24:06Z","type":"stable","version":"v1.11.11"},{"url":"https://github.com/opentofu/opentofu/releases/tag/v1.12.3","date":"2026-06-18T15:03:59Z","type":"stable","version":"v1.12.3"},{"url":"https://github.com/opentofu/opentofu/releases/tag/v1.11.10","date":"2026-06-18T15:03:51Z","type":"stable","version":"v1.11.10"},{"url":"https://github.com/opentofu/opentofu/releases/tag/v1.12.2","date":"2026-06-12T15:26:49Z","type":"stable","version":"v1.12.2"},{"url":"https://github.com/opentofu/opentofu/releases/tag/v1.11.9","date":"2026-06-12T16:11:30Z","type":"stable","version":"v1.11.9"},{"url":"https://github.com/opentofu/opentofu/releases/tag/v1.12.1","date":"2026-05-27T10:44:28Z","type":"stable","version":"v1.12.1"},{"url":"https://github.com/opentofu/opentofu/releases/tag/v1.12.0","date":"2026-05-14T11:57:20Z","type":"stable","version":"v1.12.0"},{"url":"https://github.com/opentofu/opentofu/releases/tag/v1.11.8","date":"2026-05-14T09:47:13Z","type":"stable","version":"v1.11.8"},{"url":"https://github.com/opentofu/opentofu/releases/tag/v1.11.7","date":"2026-05-11T12:16:08Z","type":"stable","version":"v1.11.7"},{"url":"https://github.com/opentofu/opentofu/releases/tag/v1.10.10","date":"2026-05-11T11:29:11Z","type":"stable","version":"v1.10.10"},{"url":"https://github.com/opentofu/opentofu/releases/tag/v1.12.0-rc1","date":"2026-04-29T19:56:42Z","type":"prerelease","version":"v1.12.0-rc1"},{"url":"https://github.com/opentofu/opentofu/releases/tag/v1.12.0-beta1","date":"2026-04-08T14:54:54Z","type":"prerelease","version":"v1.12.0-beta1"},{"url":"https://github.com/opentofu/opentofu/releases/tag/v1.11.6","date":"2026-04-08T11:48:19Z","type":"stable","version":"v1.11.6"},{"url":"https://github.com/opentofu/opentofu/releases/tag/v1.11.5","date":"2026-02-12T15:43:04Z","type":"stable","version":"v1.11.5"}]` | `[{"url":"https://github.com/pulumi/pulumi/releases/tag/v3.259.0","date":"2026-08-19T20:04:11Z","type":"stable","version":"v3.259.0"},{"url":"https://github.com/pulumi/pulumi/releases/tag/v3.258.0","date":"2026-08-17T19:04:32Z","type":"stable","version":"v3.258.0"},{"url":"https://github.com/pulumi/pulumi/releases/tag/v3.257.0","date":"2026-08-13T14:42:12Z","type":"stable","version":"v3.257.0"},{"url":"https://github.com/pulumi/pulumi/releases/tag/v3.256.0","date":"2026-08-04T19:34:54Z","type":"stable","version":"v3.256.0"},{"url":"https://github.com/pulumi/pulumi/releases/tag/v3.255.0","date":"2026-07-28T13:37:19Z","type":"stable","version":"v3.255.0"},{"url":"https://github.com/pulumi/pulumi/releases/tag/v3.254.0","date":"2026-07-23T15:10:53Z","type":"stable","version":"v3.254.0"},{"url":"https://github.com/pulumi/pulumi/releases/tag/v3.253.0","date":"2026-07-14T11:30:57Z","type":"stable","version":"v3.253.0"},{"url":"https://github.com/pulumi/pulumi/releases/tag/v3.252.0","date":"2026-07-13T12:34:06Z","type":"stable","version":"v3.252.0"},{"url":"https://github.com/pulumi/pulumi/releases/tag/v3.251.0","date":"2026-07-08T12:41:08Z","type":"stable","version":"v3.251.0"},{"url":"https://github.com/pulumi/pulumi/releases/tag/v3.250.0","date":"2026-07-02T00:47:36Z","type":"stable","version":"v3.250.0"},{"url":"https://github.com/pulumi/pulumi/releases/tag/v3.249.0","date":"2026-07-01T14:20:03Z","type":"stable","version":"v3.249.0"},{"url":"https://github.com/pulumi/pulumi/releases/tag/v3.248.0","date":"2026-06-24T14:50:37Z","type":"stable","version":"v3.248.0"},{"url":"https://github.com/pulumi/pulumi/releases/tag/v3.247.0","date":"2026-06-18T14:11:01Z","type":"stable","version":"v3.247.0"},{"url":"https://github.com/pulumi/pulumi/releases/tag/v3.246.0","date":"2026-06-11T19:51:29Z","type":"stable","version":"v3.246.0"},{"url":"https://github.com/pulumi/pulumi/releases/tag/v3.245.0","date":"2026-06-04T08:53:06Z","type":"stable","version":"v3.245.0"},{"url":"https://github.com/pulumi/pulumi/releases/tag/v3.244.0","date":"2026-05-28T18:13:39Z","type":"stable","version":"v3.244.0"},{"url":"https://github.com/pulumi/pulumi/releases/tag/v3.243.0","date":"2026-05-22T21:38:01Z","type":"stable","version":"v3.243.0"},{"url":"https://github.com/pulumi/pulumi/releases/tag/v3.242.0","date":"2026-05-19T12:39:19Z","type":"stable","version":"v3.242.0"},{"url":"https://github.com/pulumi/pulumi/releases/tag/v3.241.0","date":"2026-05-18T16:31:27Z","type":"stable","version":"v3.241.0"},{"url":"https://github.com/pulumi/pulumi/releases/tag/v3.239.0","date":"2026-05-14T12:56:20Z","type":"stable","version":"v3.239.0"}]` |
| reliability.status_page | yes | yes |
| security.disclosure_policy | - | yes |
| security.gdpr | yes | - |
| security.scorecard | - | 7.2 |
| security.soc2 | - | yes |
| security.vulnerabilities | `{"count":9,"source":"https://advisories.ecosyste.ms/api/v1/advisories?ecosystem=go&package_name=github.com%2Fopentofu%2Fopentofu&per_page=100","last_12m":8,"max_severity":"HIGH"}` | `{"count":0,"source":"https://advisories.ecosyste.ms/api/v1/advisories?ecosystem=npm&package_name=%40pulumi%2Fpulumi&per_page=100","last_12m":0,"max_severity":null}` |

## Capabilities (Infrastructure as Code Tools)

| Capability | OpenTofu | Pulumi |
|---|:--:|:--:|
| **Core** |  |  |
| Paradigm | Declarative DSL | General language |
| Language | HCL | TypeScript, Python, Go, C#, Java, YAML |
| **Portability** |  |  |
| Multicloud / cloud-agnostic | ✓ | ✓ |
| **Architecture** |  |  |
| State management | Self-managed | Vendor-managed |
| **Extensibility** |  |  |
| Pluggable provider ecosystem | ✓ | ✓ |
| **Governance** |  |  |
| Policy as code | - | ✓ |
| **Ops** |  |  |
| Drift detection | ✓ | ✓ |
| GitOps continuous reconciliation | ✓ | ✗ |
| **Deployment** |  |  |
| Managed SaaS offering | - | ✓ |
| Hosting | Self-hosted only | Cloud only |
| **Adoption** |  |  |
| Import existing resources | ✓ | ✓ |
| **Licensing** |  |  |
| Open-source engine | ✓ | ✓ |
| **Ecosystem** |  |  |
| CNCF maturity | - | - |

*Source: Vioscale. Generated 2026-09-01T17:36:06.045Z. "-" = undocumented, not absent.*
