# Pulumi vs Terragrunt

| Attribute | Pulumi | Terragrunt |
|---|---|---|
| **Vioscale score** | 69.2 (75% (high)) | 65.2 (38% (low)) |
| activity.commits_last_30d | 100 | 100 |
| adoption.dependent_repos | 2,143 | - |
| adoption.github_stars | 25,610 | 9,807 |
| adoption.package_downloads_weekly | 1,787,798 | - |
| deployment.options | `{"cloud":true}` | `{"cloud":true,"self_hosted":true}` |
| description.long | 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. | An open-source orchestrator that streamlines Infrastructure as Code management for Terraform and OpenTofu. Includes free managed CI/CD capabilities to automate and accelerate infrastructure deployment pipelines. |
| features.capabilities | `{"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}` | `{"hosting":"self","language":"Go","paradigm":"declarative_dsl","multicloud":true,"state_management":"self_managed","open_source_engine":true,"provider_ecosystem":true,"gitops_reconciliation":true,"managed_saas_offering":true}` |
| integrations.count | 6 | 2 |
| integrations.list | `[{"name":"AWS"},{"name":"Azure"},{"name":"Google Cloud"},{"name":"Terraform"},{"name":"CloudFormation"},{"name":"Azure Resource Manager"}]` | `[{"name":"OpenTofu"},{"name":"Terraform"},{"name":"AWS"}]` |
| language.primary | Go | Go |
| license.spdx | Apache-2.0 | MIT |
| market.availability | `{"primaryMarkets":["US"],"availabilityScope":"global","availableCountries":[],"notAvailableCountries":[]}` | - |
| platform.support | `{"cli":true,"web":true}` | `{"cli":true}` |
| pricing | `{"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"]}` | `{"type":"hybrid","plans":[{"free":true,"name":"Open Source","description":"Free open-source version for up to 25 infrastructure units","contactSales":false},{"free":false,"name":"Terragrunt Scale","description":"Managed cloud platform with unlimited runs and resources","contactSales":true}],"summary":"Free open source; managed Terragrunt Scale offering available","freeTier":true,"sourceUrl":"https://terragrunt.gruntwork.io","retrievedAt":"2026-08-01T15:23:22.953Z"}` |
| pricing.free_tier | yes | yes |
| pricing.model | commercial | freemium |
| pricing.price_level | low | free |
| pricing.transparent | yes | no |
| release.cadence_days | 5 | 7 |
| release.history | `[{"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"}]` | `[{"url":"https://github.com/gruntwork-io/terragrunt/releases/tag/v1.1.3","date":"2026-08-13T14:48:22Z","type":"stable","version":"v1.1.3"},{"url":"https://github.com/gruntwork-io/terragrunt/releases/tag/v1.1.2","date":"2026-07-29T18:24:33Z","type":"stable","version":"v1.1.2"},{"url":"https://github.com/gruntwork-io/terragrunt/releases/tag/v1.1.1","date":"2026-07-14T14:31:42Z","type":"stable","version":"v1.1.1"},{"url":"https://github.com/gruntwork-io/terragrunt/releases/tag/v1.1.0","date":"2026-07-01T08:49:32Z","type":"stable","version":"v1.1.0"},{"url":"https://github.com/gruntwork-io/terragrunt/releases/tag/v1.1.0-rc3","date":"2026-06-26T14:28:21Z","type":"prerelease","version":"v1.1.0-rc3"},{"url":"https://github.com/gruntwork-io/terragrunt/releases/tag/v1.1.0-rc2","date":"2026-06-17T17:27:36Z","type":"prerelease","version":"v1.1.0-rc2"},{"url":"https://github.com/gruntwork-io/terragrunt/releases/tag/v1.1.0-rc1","date":"2026-06-12T14:58:51Z","type":"prerelease","version":"v1.1.0-rc1"},{"url":"https://github.com/gruntwork-io/terragrunt/releases/tag/v1.0.8","date":"2026-06-10T19:50:18Z","type":"stable","version":"v1.0.8"},{"url":"https://github.com/gruntwork-io/terragrunt/releases/tag/v1.0.7","date":"2026-06-01T14:54:21Z","type":"stable","version":"v1.0.7"},{"url":"https://github.com/gruntwork-io/terragrunt/releases/tag/v1.0.6","date":"2026-05-25T12:21:11Z","type":"stable","version":"v1.0.6"},{"url":"https://github.com/gruntwork-io/terragrunt/releases/tag/v1.0.5","date":"2026-05-18T17:06:31Z","type":"stable","version":"v1.0.5"},{"url":"https://github.com/gruntwork-io/terragrunt/releases/tag/v1.0.4","date":"2026-05-07T13:54:38Z","type":"stable","version":"v1.0.4"},{"url":"https://github.com/gruntwork-io/terragrunt/releases/tag/v1.0.3","date":"2026-04-27T14:17:59Z","type":"stable","version":"v1.0.3"},{"url":"https://github.com/gruntwork-io/terragrunt/releases/tag/v1.0.2","date":"2026-04-21T12:24:34Z","type":"stable","version":"v1.0.2"},{"url":"https://github.com/gruntwork-io/terragrunt/releases/tag/v1.0.1","date":"2026-04-13T14:16:32Z","type":"stable","version":"v1.0.1"},{"url":"https://github.com/gruntwork-io/terragrunt/releases/tag/alpha-2026040801","date":"2026-04-08T12:59:17Z","type":"prerelease","version":"alpha-2026040801"},{"url":"https://github.com/gruntwork-io/terragrunt/releases/tag/v1.0.0","date":"2026-03-30T18:05:30Z","type":"stable","version":"v1.0.0"},{"url":"https://github.com/gruntwork-io/terragrunt/releases/tag/v0.99.5","date":"2026-03-26T13:36:17Z","type":"stable","version":"v0.99.5"},{"url":"https://github.com/gruntwork-io/terragrunt/releases/tag/alpha-2026032001","date":"2026-03-20T20:20:44Z","type":"prerelease","version":"alpha-2026032001"},{"url":"https://github.com/gruntwork-io/terragrunt/releases/tag/alpha-2026031901","date":"2026-03-19T09:00:42Z","type":"prerelease","version":"alpha-2026031901"}]` |
| reliability.status_page | yes | - |
| security.disclosure_policy | yes | - |
| security.scorecard | 7.2 | 7.2 |
| security.soc2 | yes | - |
| security.vulnerabilities | `{"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 | Pulumi | Terragrunt |
|---|:--:|:--:|
| **Core** |  |  |
| Paradigm | General language | Declarative DSL |
| Language | TypeScript, Python, Go, C#, Java, YAML | Go |
| **Portability** |  |  |
| Multicloud / cloud-agnostic | ✓ | ✓ |
| **Architecture** |  |  |
| State management | Vendor-managed | Self-managed |
| **Extensibility** |  |  |
| Pluggable provider ecosystem | ✓ | ✓ |
| **Governance** |  |  |
| Policy as code | ✓ | - |
| **Ops** |  |  |
| Drift detection | ✓ | - |
| GitOps continuous reconciliation | ✗ | ✓ |
| **Deployment** |  |  |
| Managed SaaS offering | ✓ | ✓ |
| Hosting | Cloud only | Self-hosted only |
| **Adoption** |  |  |
| Import existing resources | ✓ | - |
| **Licensing** |  |  |
| Open-source engine | ✓ | ✓ |
| **Ecosystem** |  |  |
| CNCF maturity | - | - |

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