Skip to content

How Pulumi’s scores are calculated

The full audit trail, recomputed from the verdict data at build time through the same code that produced the leaderboard: verdict × quality × story weight per cell, cells sum to dimension scores, dimensions blend into the PA Score. Every number on the product page is reproducible from this page alone; for why the formula looks like this, see the methodology.

verdict factors: full ×1.0 · partial ×0.6 · disputed ×0.3 · none ×0.0 · n/a excluded from both sides · cell points = weight × quality × factor · cell max = weight × 10

PA Score34/100

Agent-ready 51.3 × 0.30 = 15.39

API quality 6.0 × 0.20 = 1.20

Openness 43.8 × 0.20 = 8.76

Built-in AI 45.3 × 0.15 = 6.79

Automation 13.5 × 0.15 = 2.02

(15.39 + 1.20 + 8.76 + 6.79 + 2.02) ÷ (0.30 + 0.20 + 0.20 + 0.15 + 0.15) = 34.17 ÷ 1.00 = 34.2

Scores are stored to 1 decimal; the product page’s pills round to whole numbers for display. Each dimension below shows the stories, verdicts, and cited evidence behind its number.

Agent-ready51.3/100×0.30 of the PA blend

Outside-in: can YOUR agent reach and drive this product — API, MCP, CLI, headless runs, agent docs.

Point an agent at llms.txt or agent-oriented docsweight 2

2 (weight) × 8 (quality) × 1.0 (full) = 16.0 of 20 max

  • [probe] https://www.pulumi.com/llms.txtPROBE llms.txt: HTTP 200 at https://www.pulumi.com/llms.txt # Pulumi > Infrastructure as code in real programming languages. Define, deploy, and manage cloud infrastructure on AWS
  • [claimed-docs] https://www.pulumi.com/docs/ai/mcp-server/Pulumi’s MCP server implementation provides AI assistants with the ability to: Query your Pulumi Cloud stacks and their resources, Search across all cloud resources...
  • [claimed-docs] https://www.pulumi.com/docs/ai/mcp-server/The Pulumi Model Context Protocol (MCP) server enables AI-powered coding assistants to access your Pulumi Cloud resources, generate infrastructure code, and optionally delegate tasks to Pulumi Neo.
  • [probe] https://www.pulumi.com/docs/ai/mcp-server/official MCP server documented at https://www.pulumi.com/docs/ai/mcp-server/

Run the product headlessly / in CI for automationweight 2

2 (weight) × 9 (quality) × 1.0 (full) = 18.0 of 20 max

  • [claimed-docs] https://www.pulumi.com/docs/iac/concepts/automation-api/The Pulumi Automation API is a programmatic interface for running Pulumi programs without the Pulumi CLI.
  • [probe] https://www.pulumi.com/docs/iac/cli/commands/pulumi_preview/PROBE cli-preview (local run, macOS, pulumi v3.261.0): with a file:// local backend (`pulumi login --local`, no cloud account), `pulumi stack init dev --non-interactive` exited 0 and `pulumi preview --non-interactive --json` exited 0 emitting a structured JSON steps[] array ({"op":"create","urn":...}) an agent can parse.
  • [probe] https://www.pulumi.com/docs/iac/concepts/state-and-backends/PROBE cli-apply (local run): on the local file backend, `pulumi up --non-interactive --yes --skip-preview` exited 0 and `pulumi destroy --non-interactive --yes` exited 0 — the full loop ran headlessly without Pulumi Cloud, using PULUMI_CONFIG_PASSPHRASE for state secrets encryption.
  • [claimed-docs] https://www.pulumi.com/docs/Connect Pulumi with GitHub, GitLab, and Azure DevOps using Pulumi-maintained version control integrations.
  • [claimed-docs] https://www.pulumi.com/docs/iac/cli/commands/pulumi_preview/Show a preview of updates to a stack’s resources.

Plug MCP servers into this product so it can use their toolsweight 3

3 (weight) × 0 (quality) × 0.0 (none) = 0.0 of 30 max

  • [claimed-docs] https://www.pulumi.com/docs/ai/mcp-server/Pulumi’s MCP server implementation provides AI assistants with the ability to: Query your Pulumi Cloud stacks and their resources, Search across all cloud resources...
  • [claimed-docs] https://www.pulumi.com/docs/ai/mcp-server/The Pulumi MCP server works with various AI-powered development tools: **Cursor**...**Anthropic’s Claude Code**...**Windsurf**...**Claude Desktop**
  • [claimed-docs] https://www.pulumi.com/docs/ai/mcp-server/The Pulumi Model Context Protocol (MCP) server enables AI-powered coding assistants to access your Pulumi Cloud resources, generate infrastructure code, and optionally delegate tasks to Pulumi Neo.
  • [probe] https://www.pulumi.com/docs/ai/mcp-server/official MCP server documented at https://www.pulumi.com/docs/ai/mcp-server/
  • [probe] https://www.pulumi.com/docs/ai/mcp-server/PROBE mcp-handshake (local run): the official Pulumi MCP server (`npx @pulumi/mcp-server@latest stdio`, v0.2.0) answered a JSON-RPC initialize with serverInfo {"name":"@pulumi/mcp-server","description":"An MCP server for querying Pulumi Registry information and running Pulumi CLI commands"} and exited 0.
  • [claimed-docs] https://www.pulumi.com/product/neo/Neo provisions, governs, and optimizes your cloud infrastructure — with enterprise controls built in.
  • [claimed-docs] https://www.pulumi.com/product/neo/Tell Neo what you need in plain English. It handles dependencies, executes changes, and monitors outcomes automatically.

Connect an agent via an official MCP serverweight 3

3 (weight) × 9 (quality) × 1.0 (full) = 27.0 of 30 max

  • [claimed-docs] https://www.pulumi.com/docs/ai/mcp-server/Pulumi’s MCP server implementation provides AI assistants with the ability to: Query your Pulumi Cloud stacks and their resources, Search across all cloud resources...
  • [claimed-docs] https://www.pulumi.com/docs/ai/mcp-server/The Pulumi MCP server works with various AI-powered development tools: **Cursor**...**Anthropic’s Claude Code**...**Windsurf**...**Claude Desktop**
  • [claimed-docs] https://www.pulumi.com/docs/ai/mcp-server/The Pulumi Model Context Protocol (MCP) server enables AI-powered coding assistants to access your Pulumi Cloud resources, generate infrastructure code, and optionally delegate tasks to Pulumi Neo.
  • [probe] https://www.pulumi.com/docs/ai/mcp-server/official MCP server documented at https://www.pulumi.com/docs/ai/mcp-server/
  • [probe] https://www.pulumi.com/docs/ai/mcp-server/PROBE mcp-handshake (local run): the official Pulumi MCP server (`npx @pulumi/mcp-server@latest stdio`, v0.2.0) answered a JSON-RPC initialize with serverInfo {"name":"@pulumi/mcp-server","description":"An MCP server for querying Pulumi Registry information and running Pulumi CLI commands"} and exited 0.

Use an official CLIweight 2

2 (weight) × 9 (quality) × 1.0 (full) = 18.0 of 20 max

  • [probe] https://www.pulumi.com/docs/iac/cli/official CLI documented at https://www.pulumi.com/docs/iac/cli/
  • [probe] https://www.pulumi.com/docs/iac/cli/commands/pulumi_preview/PROBE cli-preview (local run, macOS, pulumi v3.261.0): with a file:// local backend (`pulumi login --local`, no cloud account), `pulumi stack init dev --non-interactive` exited 0 and `pulumi preview --non-interactive --json` exited 0 emitting a structured JSON steps[] array ({"op":"create","urn":...}) an agent can parse.
  • [probe] https://www.pulumi.com/docs/iac/concepts/state-and-backends/PROBE cli-apply (local run): on the local file backend, `pulumi up --non-interactive --yes --skip-preview` exited 0 and `pulumi destroy --non-interactive --yes` exited 0 — the full loop ran headlessly without Pulumi Cloud, using PULUMI_CONFIG_PASSPHRASE for state secrets encryption.
  • [claimed-docs] https://www.pulumi.com/docs/iac/cli/commands/pulumi_preview/Show a preview of updates to a stack’s resources.
  • [claimed-docs] https://www.pulumi.com/docs/iac/guides/migration/import/you run `pulumi import` against a specific cloud resource. Pulumi adds the resource to your stack’s state and generates the code needed to manage it, which you then copy into your Pulumi program.

Drive the product through a documented public APIweight 3

3 (weight) × 6 (quality) × 0.6 (partial) = 10.8 of 30 max

  • [claimed-docs] https://www.pulumi.com/docs/iac/concepts/automation-api/The Pulumi Automation API is a programmatic interface for running Pulumi programs without the Pulumi CLI.
  • [claimed-docs] https://www.pulumi.com/docs/ai/mcp-server/Pulumi’s MCP server implementation provides AI assistants with the ability to: Query your Pulumi Cloud stacks and their resources, Search across all cloud resources...
  • [claimed-docs] https://www.pulumi.com/docs/ai/mcp-server/The Pulumi Model Context Protocol (MCP) server enables AI-powered coding assistants to access your Pulumi Cloud resources, generate infrastructure code, and optionally delegate tasks to Pulumi Neo.
  • [probe] https://www.pulumi.com/openapi.jsonPROBE openapi: all candidate paths 404 (https://www.pulumi.com/openapi.json, https://www.pulumi.com/swagger.json, https://www.pulumi.com/api/openapi.json, https://www.pulumi.com/.well-known/openapi.json)
  • [probe] https://www.pulumi.com/docs/ai/mcp-server/official MCP server documented at https://www.pulumi.com/docs/ai/mcp-server/
  • [probe] https://www.pulumi.com/docs/ai/mcp-server/PROBE mcp-handshake (local run): the official Pulumi MCP server (`npx @pulumi/mcp-server@latest stdio`, v0.2.0) answered a JSON-RPC initialize with serverInfo {"name":"@pulumi/mcp-server","description":"An MCP server for querying Pulumi Registry information and running Pulumi CLI commands"} and exited 0.
  • [probe] https://www.pulumi.com/docs/iac/cli/commands/pulumi_preview/PROBE cli-preview (local run, macOS, pulumi v3.261.0): with a file:// local backend (`pulumi login --local`, no cloud account), `pulumi stack init dev --non-interactive` exited 0 and `pulumi preview --non-interactive --json` exited 0 emitting a structured JSON steps[] array ({"op":"create","urn":...}) an agent can parse.
  • [probe] https://www.pulumi.com/docs/iac/concepts/state-and-backends/PROBE cli-apply (local run): on the local file backend, `pulumi up --non-interactive --yes --skip-preview` exited 0 and `pulumi destroy --non-interactive --yes` exited 0 — the full loop ran headlessly without Pulumi Cloud, using PULUMI_CONFIG_PASSPHRASE for state secrets encryption.

Issue scoped/least-privilege API credentials for an agentweight 2

2 (weight) × 0 (quality) × 0.0 (none) = 0.0 of 20 max

no evidence cited — the verdict rests on absence of evidence, re-checked on refresh

Build against official SDKsweight 2

2 (weight) × 9 (quality) × 1.0 (full) = 18.0 of 20 max

  • [claimed-docs] https://www.pulumi.com/docs/iac/languages-sdks/Pulumi supports TypeScript, JavaScript, Python, Go, .NET, Java, YAML, and HCL. Each language is equally capable and supports the full surface area of all Pulumi Registry providers.
  • [claimed-docs] https://www.pulumi.com/docs/iac/concepts/automation-api/The Pulumi Automation API is a programmatic interface for running Pulumi programs without the Pulumi CLI.
  • [claimed-docs] https://www.pulumi.com/docs/iac/languages-sdks/Pulumi supports TypeScript, JavaScript, Python, Go, .NET, Java, YAML, and HCL.
  • [claimed-docs] https://www.pulumi.com/docs/ai/mcp-server/The Pulumi Model Context Protocol (MCP) server enables AI-powered coding assistants to access your Pulumi Cloud resources, generate infrastructure code, and optionally delegate tasks to Pulumi Neo.
  • [claimed-docs] https://www.pulumi.com/docs/ai/mcp-server/The Pulumi MCP server works with various AI-powered development tools: **Cursor**...**Anthropic’s Claude Code**...**Windsurf**...**Claude Desktop**
  • [probe] https://www.pulumi.com/docs/ai/mcp-server/official MCP server documented at https://www.pulumi.com/docs/ai/mcp-server/
  • [probe] https://www.pulumi.com/docs/ai/mcp-server/PROBE mcp-handshake (local run): the official Pulumi MCP server (`npx @pulumi/mcp-server@latest stdio`, v0.2.0) answered a JSON-RPC initialize with serverInfo {"name":"@pulumi/mcp-server","description":"An MCP server for querying Pulumi Registry information and running Pulumi CLI commands"} and exited 0.

Subscribe to events via webhooksweight 2

2 (weight) × 0 (quality) × 0.0 (none) = 0.0 of 20 max

no evidence cited — the verdict rests on absence of evidence, re-checked on refresh

Agent-ready = 107.8 ÷ 210 × 100 = 51.3

API quality6.0/100×0.20 of the PA blend

The programmable surface once an agent is there — machine-readable spec, interactive docs, sandbox, versioning discipline.

Explore an interactive API reference with runnable examplesweight 2

2 (weight) × 0 (quality) × 0.0 (none) = 0.0 of 20 max

  • [probe] https://www.pulumi.com/openapi.jsonPROBE openapi: all candidate paths 404 (https://www.pulumi.com/openapi.json, https://www.pulumi.com/swagger.json, https://www.pulumi.com/api/openapi.json, https://www.pulumi.com/.well-known/openapi.json)
  • [claimed-docs] https://www.pulumi.com/docs/iac/languages-sdks/Pulumi supports TypeScript, JavaScript, Python, Go, .NET, Java, YAML, and HCL.

Download a machine-readable API spec (OpenAPI or equivalent)weight 2

2 (weight) × 0 (quality) × 0.0 (none) = 0.0 of 20 max

  • [probe] https://www.pulumi.com/openapi.jsonPROBE openapi: all candidate paths 404 (https://www.pulumi.com/openapi.json, https://www.pulumi.com/swagger.json, https://www.pulumi.com/api/openapi.json, https://www.pulumi.com/.well-known/openapi.json)
  • [probe] https://www.pulumi.com/llms.txtPROBE llms.txt: HTTP 200 at https://www.pulumi.com/llms.txt # Pulumi > Infrastructure as code in real programming languages. Define, deploy, and manage cloud infrastructure on AWS

Test against a sandbox environment without touching production dataweight 1

1 (weight) × 7 (quality) × 0.6 (partial) = 4.2 of 10 max

  • [claimed-docs] https://www.pulumi.com/docs/iac/guides/testing/Unit Tests are fast in-memory tests that mock all external calls. Property Tests run resource-level assertions while infrastructure is being deployed. Integration Tests deploy ephemeral infrastructure and run external tests against it.
  • [claimed-docs] https://www.pulumi.com/docs/iac/cli/commands/pulumi_preview/Show a preview of updates to a stack’s resources... No changes to the stack will actually take place.
  • [probe] https://www.pulumi.com/docs/iac/cli/commands/pulumi_preview/PROBE cli-preview (local run, macOS, pulumi v3.261.0): with a file:// local backend (`pulumi login --local`, no cloud account), `pulumi stack init dev --non-interactive` exited 0 and `pulumi preview --non-interactive --json` exited 0 emitting a structured JSON steps[] array ({"op":"create","urn":...}) an agent can parse.
  • [probe] https://www.pulumi.com/docs/iac/concepts/state-and-backends/PROBE cli-apply (local run): on the local file backend, `pulumi up --non-interactive --yes --skip-preview` exited 0 and `pulumi destroy --non-interactive --yes` exited 0 — the full loop ran headlessly without Pulumi Cloud, using PULUMI_CONFIG_PASSPHRASE for state secrets encryption.

Rely on versioned APIs with a documented deprecation policyweight 2

2 (weight) × 0 (quality) × 0.0 (none) = 0.0 of 20 max

  • [probe] https://www.pulumi.com/openapi.jsonPROBE openapi: all candidate paths 404 (https://www.pulumi.com/openapi.json, https://www.pulumi.com/swagger.json, https://www.pulumi.com/api/openapi.json, https://www.pulumi.com/.well-known/openapi.json)
  • [community] https://news.ycombinator.com/item?id=22866714I like it, but anybody I pitched it to was like: 'Ewww, TypeScript for Infra.' Pulumi for months used deprecated Azure stuff, and they didn't fix it. So, you are always late to the game, unlike when using plain Terraform.

API quality = 4.2 ÷ 70 × 100 = 6.0

Openness43.8/100×0.20 of the PA blend

Can you leave, inspect, or self-host — data export, open source, portability.

Do everything through the API that I can do in the UIweight 2

2 (weight) × 5 (quality) × 0.6 (partial) = 6.0 of 20 max

  • [claimed-docs] https://www.pulumi.com/docs/iac/concepts/automation-api/The Pulumi Automation API is a programmatic interface for running Pulumi programs without the Pulumi CLI.
  • [probe] https://www.pulumi.com/docs/iac/cli/commands/pulumi_preview/PROBE cli-preview (local run, macOS, pulumi v3.261.0): with a file:// local backend (`pulumi login --local`, no cloud account), `pulumi stack init dev --non-interactive` exited 0 and `pulumi preview --non-interactive --json` exited 0 emitting a structured JSON steps[] array ({"op":"create","urn":...}) an agent can parse.
  • [probe] https://www.pulumi.com/docs/iac/concepts/state-and-backends/PROBE cli-apply (local run): on the local file backend, `pulumi up --non-interactive --yes --skip-preview` exited 0 and `pulumi destroy --non-interactive --yes` exited 0 — the full loop ran headlessly without Pulumi Cloud, using PULUMI_CONFIG_PASSPHRASE for state secrets encryption.
  • [probe] https://www.pulumi.com/docs/ai/mcp-server/PROBE mcp-handshake (local run): the official Pulumi MCP server (`npx @pulumi/mcp-server@latest stdio`, v0.2.0) answered a JSON-RPC initialize with serverInfo {"name":"@pulumi/mcp-server","description":"An MCP server for querying Pulumi Registry information and running Pulumi CLI commands"} and exited 0.
  • [probe] https://www.pulumi.com/openapi.jsonPROBE openapi: all candidate paths 404 (https://www.pulumi.com/openapi.json, https://www.pulumi.com/swagger.json, https://www.pulumi.com/api/openapi.json, https://www.pulumi.com/.well-known/openapi.json)
  • [claimed-docs] https://www.pulumi.com/product/neo/Neo provisions, governs, and optimizes your cloud infrastructure — with enterprise controls built in.
  • [claimed-docs] https://www.pulumi.com/docs/insights/policy/Pulumi Policies enables you to implement policy as code across your entire cloud infrastructure. You define guardrails in code and apply them consistently across resources managed by Pulumi IaC, provisioned with Terraform or CloudFormation, or created manually.

Export all of my data in open formats and leaveweight 3

3 (weight) × 5 (quality) × 0.6 (partial) = 9.0 of 30 max

  • [claimed-docs] https://www.pulumi.com/docs/iac/concepts/state-and-backends/Pulumi supports two classes of state backend: Pulumi Cloud... DIY backend: a “Do It Yourself” backend that stores state in an object store you manage—AWS S3, Azure Blob Storage, Google Cloud Storage...
  • [claimed-docs] https://www.pulumi.com/docs/iac/concepts/state-and-backends/Pulumi supports two classes of state backend: **Pulumi Cloud**: a managed backend...**DIY backend**: a “Do It Yourself” backend that stores state in an object store you manage
  • [claimed-docs] https://www.pulumi.com/docs/iac/concepts/state-and-backends/Backend options include Pulumi Cloud, an easy-to-use, secure, and reliable hosted application ... in addition to simple object storage in AWS S3, Microsoft Azure Blob Storage, Google Cloud Storage
  • [claimed-docs] https://www.pulumi.com/pricing/Self-hosting available
  • [community] https://news.ycombinator.com/item?id=26880935Last time I checked... Pulumi only works by calling in to the mothership: i.e. you cannot build an airgapped infrastructure with it. This was very off-putting for me.
  • [github] https://github.com/pulumi/pulumiSkip the YAML, and use standard language features like loops, functions, classes, and package management that you already know and love.

Read the product's source under an open licenseweight 2

2 (weight) × 4 (quality) × 0.6 (partial) = 4.8 of 20 max

  • [github] https://github.com/pulumi/pulumiSkip the YAML, and use standard language features like loops, functions, classes, and package management that you already know and love.
  • [github] https://github.com/pulumi/pulumiPulumi automatically provisions and manages your resources on AWS, Azure, Google Cloud Platform, Kubernetes, and 300+ providers
  • [claimed-docs] https://www.pulumi.com/docs/iac/concepts/state-and-backends/Pulumi supports two classes of state backend: Pulumi Cloud... DIY backend: a “Do It Yourself” backend that stores state in an object store you manage—AWS S3, Azure Blob Storage, Google Cloud Storage...
  • [claimed-docs] https://www.pulumi.com/product/neo/Neo provisions, governs, and optimizes your cloud infrastructure — with enterprise controls built in.

Self-host the core productweight 3

3 (weight) × 8 (quality) × 1.0 (full) = 24.0 of 30 max

  • [claimed-docs] https://www.pulumi.com/docs/iac/concepts/state-and-backends/Pulumi supports two classes of state backend: Pulumi Cloud... DIY backend: a “Do It Yourself” backend that stores state in an object store you manage—AWS S3, Azure Blob Storage, Google Cloud Storage...
  • [claimed-docs] https://www.pulumi.com/docs/iac/concepts/state-and-backends/Pulumi supports two classes of state backend: **Pulumi Cloud**: a managed backend...**DIY backend**: a “Do It Yourself” backend that stores state in an object store you manage
  • [claimed-docs] https://www.pulumi.com/docs/iac/concepts/state-and-backends/Backend options include Pulumi Cloud, an easy-to-use, secure, and reliable hosted application ... in addition to simple object storage in AWS S3, Microsoft Azure Blob Storage, Google Cloud Storage
  • [claimed-docs] https://www.pulumi.com/pricing/Self-hosting available
  • [community] https://hn.algolia.com/api/v1/items/26880935Pulumi maintains its own state service (with option of self management)... As a developer, I quite liked Pulumi resource model, documentation and team responsiveness on Github and slack channel.
  • [probe] https://www.pulumi.com/docs/iac/cli/commands/pulumi_preview/PROBE cli-preview (local run, macOS, pulumi v3.261.0): with a file:// local backend (`pulumi login --local`, no cloud account), `pulumi stack init dev --non-interactive` exited 0 and `pulumi preview --non-interactive --json` exited 0 emitting a structured JSON steps[] array ({"op":"create","urn":...}) an agent can parse.
  • [probe] https://www.pulumi.com/docs/iac/concepts/state-and-backends/PROBE cli-apply (local run): on the local file backend, `pulumi up --non-interactive --yes --skip-preview` exited 0 and `pulumi destroy --non-interactive --yes` exited 0 — the full loop ran headlessly without Pulumi Cloud, using PULUMI_CONFIG_PASSPHRASE for state secrets encryption.

Openness = 43.8 ÷ 100 × 100 = 43.8

Built-in AI45.3/100×0.15 of the PA blend

Inside-out: how agentic the product itself is for its users — built-in assistants, autonomous features.

Get AI-generated insights and suggestions from my data inside the productweight 2

2 (weight) × 6 (quality) × 0.6 (partial) = 7.2 of 20 max

  • [claimed-docs] https://www.pulumi.com/docs/insights/policy/Pulumi Policies enables you to implement policy as code across your entire cloud infrastructure. You define guardrails in code and apply them consistently across resources managed by Pulumi IaC, provisioned with Terraform or CloudFormation, or created manually.
  • [claimed-docs] https://www.pulumi.com/product/neo/Neo provisions, governs, and optimizes your cloud infrastructure — with enterprise controls built in.
  • [claimed-docs] https://www.pulumi.com/product/neo/Tell Neo what you need in plain English. It handles dependencies, executes changes, and monitors outcomes automatically.
  • [claimed-docs] https://www.pulumi.com/docs/ai/mcp-server/The Pulumi Model Context Protocol (MCP) server enables AI-powered coding assistants to access your Pulumi Cloud resources, generate infrastructure code, and optionally delegate tasks to Pulumi Neo.
  • [community] https://news.ycombinator.com/item?id=42065561Pulumi genAI-based documentation is trashed. I've moved to terraform and i was able to achieve much better results in shorter time thanks to higher documentation level for terraform.

Set up automations that run autonomously in the backgroundweight 2

2 (weight) × 6 (quality) × 0.6 (partial) = 7.2 of 20 max

  • [claimed-docs] https://www.pulumi.com/docs/iac/concepts/automation-api/The Pulumi Automation API is a programmatic interface for running Pulumi programs without the Pulumi CLI.
  • [claimed-docs] https://www.pulumi.com/product/neo/Neo provisions, governs, and optimizes your cloud infrastructure — with enterprise controls built in.
  • [claimed-docs] https://www.pulumi.com/product/neo/Tell Neo what you need in plain English. It handles dependencies, executes changes, and monitors outcomes automatically.
  • [probe] https://www.pulumi.com/docs/iac/cli/commands/pulumi_preview/PROBE cli-preview (local run, macOS, pulumi v3.261.0): with a file:// local backend (`pulumi login --local`, no cloud account), `pulumi stack init dev --non-interactive` exited 0 and `pulumi preview --non-interactive --json` exited 0 emitting a structured JSON steps[] array ({"op":"create","urn":...}) an agent can parse.
  • [probe] https://www.pulumi.com/docs/iac/concepts/state-and-backends/PROBE cli-apply (local run): on the local file backend, `pulumi up --non-interactive --yes --skip-preview` exited 0 and `pulumi destroy --non-interactive --yes` exited 0 — the full loop ran headlessly without Pulumi Cloud, using PULUMI_CONFIG_PASSPHRASE for state secrets encryption.

Delegate tasks to a built-in AI assistant inside the productweight 3

3 (weight) × 6 (quality) × 1.0 (full) = 18.0 of 30 max

  • [claimed-docs] https://www.pulumi.com/product/neo/Neo provisions, governs, and optimizes your cloud infrastructure — with enterprise controls built in.
  • [claimed-docs] https://www.pulumi.com/product/neo/Tell Neo what you need in plain English. It handles dependencies, executes changes, and monitors outcomes automatically.
  • [claimed-docs] https://www.pulumi.com/docs/ai/mcp-server/The Pulumi Model Context Protocol (MCP) server enables AI-powered coding assistants to access your Pulumi Cloud resources, generate infrastructure code, and optionally delegate tasks to Pulumi Neo.

Operate the product with natural-language commandsweight 2

2 (weight) × 7 (quality) × 0.6 (partial) = 8.4 of 20 max

  • [claimed-docs] https://www.pulumi.com/product/neo/Neo provisions, governs, and optimizes your cloud infrastructure — with enterprise controls built in.
  • [claimed-docs] https://www.pulumi.com/product/neo/Tell Neo what you need in plain English. It handles dependencies, executes changes, and monitors outcomes automatically.
  • [claimed-docs] https://www.pulumi.com/docs/ai/mcp-server/The Pulumi Model Context Protocol (MCP) server enables AI-powered coding assistants to access your Pulumi Cloud resources, generate infrastructure code, and optionally delegate tasks to Pulumi Neo.
  • [claimed-docs] https://www.pulumi.com/docs/ai/mcp-server/The Pulumi MCP server works with various AI-powered development tools: **Cursor**...**Anthropic’s Claude Code**...**Windsurf**...**Claude Desktop**
  • [probe] https://www.pulumi.com/docs/ai/mcp-server/PROBE mcp-handshake (local run): the official Pulumi MCP server (`npx @pulumi/mcp-server@latest stdio`, v0.2.0) answered a JSON-RPC initialize with serverInfo {"name":"@pulumi/mcp-server","description":"An MCP server for querying Pulumi Registry information and running Pulumi CLI commands"} and exited 0.

Built-in AI = 40.8 ÷ 90 × 100 = 45.3

Automation13.5/100×0.15 of the PA blend

Depth of automation primitives — rules, scheduling, bulk operations, webhooks.

Perform bulk operations across many items at onceweight 2

2 (weight) × 6 (quality) × 0.6 (partial) = 7.2 of 20 max

  • [claimed-docs] https://www.pulumi.com/docs/iac/cli/commands/pulumi_preview/run `pulumi preview --import-file` to generate an import file listing every resource the program would otherwise create
  • [claimed-docs] https://www.pulumi.com/docs/iac/concepts/automation-api/The Pulumi Automation API is a programmatic interface for running Pulumi programs without the Pulumi CLI.
  • [community] https://news.ycombinator.com/item?id=26880935Using Pulumi for about 1 year to manage gcp and AWS environments (5+) - each deployment is around 500 resources. At the begining it was buggy but when they started to add typing i see a lot of improvment.
  • [claimed-docs] https://www.pulumi.com/docs/ai/mcp-server/The Pulumi Model Context Protocol (MCP) server enables AI-powered coding assistants to access your Pulumi Cloud resources, generate infrastructure code, and optionally delegate tasks to Pulumi Neo.
  • [probe] https://www.pulumi.com/docs/ai/mcp-server/PROBE mcp-handshake (local run): the official Pulumi MCP server (`npx @pulumi/mcp-server@latest stdio`, v0.2.0) answered a JSON-RPC initialize with serverInfo {"name":"@pulumi/mcp-server","description":"An MCP server for querying Pulumi Registry information and running Pulumi CLI commands"} and exited 0.

Define rules that trigger actions automatically on eventsweight 3

3 (weight) × 0 (quality) × 0.0 (none) = 0.0 of 30 max

  • [claimed-docs] https://www.pulumi.com/docs/iac/concepts/automation-api/The Pulumi Automation API is a programmatic interface for running Pulumi programs without the Pulumi CLI.
  • [claimed-docs] https://www.pulumi.com/docs/insights/policy/Pulumi Policies enables you to implement policy as code across your entire cloud infrastructure. You define guardrails in code and apply them consistently across resources managed by Pulumi IaC, provisioned with Terraform or CloudFormation, or created manually.
  • [claimed-docs] https://www.pulumi.com/docs/insights/policy/You define guardrails in code and apply them consistently across resources managed by Pulumi IaC, provisioned with Terraform or CloudFormation, or created manually.

Schedule recurring jobs or workflowsweight 2

2 (weight) × 0 (quality) × 0.0 (none) = 0.0 of 20 max

  • [claimed-docs] https://www.pulumi.com/docs/iac/concepts/automation-api/The Pulumi Automation API is a programmatic interface for running Pulumi programs without the Pulumi CLI.
  • [claimed-docs] https://www.pulumi.com/product/neo/Neo provisions, governs, and optimizes your cloud infrastructure — with enterprise controls built in.
  • [claimed-docs] https://www.pulumi.com/product/neo/Tell Neo what you need in plain English. It handles dependencies, executes changes, and monitors outcomes automatically.

Version, review, and roll back my automationsweight 1

1 (weight) × 6 (quality) × 0.6 (partial) = 3.6 of 10 max

  • [claimed-docs] https://www.pulumi.com/docs/iac/concepts/state-and-backends/Pulumi supports two classes of state backend: Pulumi Cloud... DIY backend: a “Do It Yourself” backend that stores state in an object store you manage—AWS S3, Azure Blob Storage, Google Cloud Storage...
  • [claimed-docs] https://www.pulumi.com/docs/insights/policy/Pulumi Policies enables you to implement policy as code across your entire cloud infrastructure. You define guardrails in code and apply them consistently across resources managed by Pulumi IaC, provisioned with Terraform or CloudFormation, or created manually.
  • [claimed-docs] https://www.pulumi.com/docs/iac/cli/commands/pulumi_preview/Show a preview of updates to a stack’s resources... No changes to the stack will actually take place.
  • [claimed-docs] https://www.pulumi.com/docs/Connect Pulumi with GitHub, GitLab, and Azure DevOps using Pulumi-maintained version control integrations.
  • [probe] https://www.pulumi.com/docs/iac/cli/commands/pulumi_preview/PROBE cli-preview (local run, macOS, pulumi v3.261.0): with a file:// local backend (`pulumi login --local`, no cloud account), `pulumi stack init dev --non-interactive` exited 0 and `pulumi preview --non-interactive --json` exited 0 emitting a structured JSON steps[] array ({"op":"create","urn":...}) an agent can parse.
  • [probe] https://www.pulumi.com/docs/iac/concepts/state-and-backends/PROBE cli-apply (local run): on the local file backend, `pulumi up --non-interactive --yes --skip-preview` exited 0 and `pulumi destroy --non-interactive --yes` exited 0 — the full loop ran headlessly without Pulumi Cloud, using PULUMI_CONFIG_PASSPHRASE for state secrets encryption.
  • [community] https://hn.algolia.com/api/v1/items/26880935Pulumi also has a killer Automation feature, where you can code infrastructure migrations, not unlike you'd do for SQL. Neither TF nor CDK allows you to do that.
  • [community] https://news.ycombinator.com/item?id=26880935A couple of years ago I started down the Pulumi path... values that are only available in the second phase (eg a subnet ID) can't be accessed in the first phase directly... you essentially need to push through source code to be 'eval'ed on the other side.

Automation = 10.8 ÷ 80 × 100 = 13.5