This release adds 3 notable features for engineering teams evaluating rollout.
✓ No known CVEs patched in this version
Topics
+10 more
ReleasePort's take
Moderate signalPulumi v3.238.0 adds `--output json` to `pulumi up` for structured results. Breaking changes: `pulumi cloud api` → `pulumi api` and `--format` → `--output` flags.
Why it matters: Update CI/CD scripts and automation replacing `pulumi cloud api` with `pulumi api` and `--format` with `--output`. Use new `--output json` for structured operation results and better integration.
Summary
AI summaryAdd --output json to pulumi up for a structured JSON summary of the operation result.
Changes in this release
| Type | Severity | Summary | CVE |
|---|---|---|---|
| Breaking | Medium |
`pulumi cloud api` renamed to `pulumi api`. `pulumi cloud api` renamed to `pulumi api`. Source: llm_adapter@2026-05-21 Confidence: low |
— |
| Breaking | Medium |
`--format` flag renamed to `--output` on `pulumi api` and subcommands. `--format` flag renamed to `--output` on `pulumi api` and subcommands. Source: llm_adapter@2026-05-21 Confidence: low |
— |
| Feature | Medium |
Add a `--language` flag to `pulumi package add`. Add a `--language` flag to `pulumi package add`. Source: llm_adapter@2026-05-21 Confidence: high |
— |
| Feature | Medium |
`pulumi up` now supports `--output json` for structured result summary. `pulumi up` now supports `--output json` for structured result summary. Source: llm_adapter@2026-05-21 Confidence: high |
— |
| Feature | Medium |
Recommend `pulumi cloud api describe` in `pulumi cloud api --help`. Recommend `pulumi cloud api describe` in `pulumi cloud api --help`. Source: llm_adapter@2026-05-21 Confidence: high |
— |
| Feature | Medium |
Add `pulumi stack webhook list` to list webhooks for a stack. Add `pulumi stack webhook list` to list webhooks for a stack. Source: llm_adapter@2026-05-21 Confidence: high |
— |
| Feature | Medium |
Add `pulumi insights resource get` to lookup a single Insights-discovered resource. Add `pulumi insights resource get` to lookup a single Insights-discovered resource. Source: llm_adapter@2026-05-21 Confidence: high |
— |
| Feature | Medium |
Add `pulumi template list` to list registry-backed templates. Add `pulumi template list` to list registry-backed templates. Source: llm_adapter@2026-05-21 Confidence: high |
— |
| Feature | Medium |
Add `pulumi insights resource search` to search Insights-discovered resources. Add `pulumi insights resource search` to search Insights-discovered resources. Source: llm_adapter@2026-05-21 Confidence: high |
— |
| Feature | Medium |
`--skip-plugin-pre-install` added to skip up-front plugin installation. `--skip-plugin-pre-install` added to skip up-front plugin installation. Source: llm_adapter@2026-05-21 Confidence: high |
— |
| Feature | Medium |
`pulumi neo` TUI now renders the agent's TODO list. `pulumi neo` TUI now renders the agent's TODO list. Source: llm_adapter@2026-05-21 Confidence: high |
— |
| Feature | Medium |
Add `--approval-mode` and `--permission-mode` flags to `pulumi neo` with hotkeys. Add `--approval-mode` and `--permission-mode` flags to `pulumi neo` with hotkeys. Source: llm_adapter@2026-05-21 Confidence: high |
— |
| Feature | Medium |
When invoked by AI coding agent, print `pulumi api` pointers after `pulumi package add` and `pulumi package gen-sdk`. When invoked by AI coding agent, print `pulumi api` pointers after `pulumi package add` and `pulumi package gen-sdk`. Source: llm_adapter@2026-05-21 Confidence: high |
— |
| Feature | Medium |
Recognize `hcl` and `pcl` runtimes in `integration.ProgramTest`. Recognize `hcl` and `pcl` runtimes in `integration.ProgramTest`. Source: llm_adapter@2026-05-21 Confidence: high |
— |
| Feature | Medium |
Add `l1-config-types-optional` conformance test for PCL's `optional` type constructor. Add `l1-config-types-optional` conformance test for PCL's `optional` type constructor. Source: llm_adapter@2026-05-21 Confidence: high |
— |
| Dependency | Medium |
Add registerPackage helper to cache package references per deployment. Add registerPackage helper to cache package references per deployment. Source: llm_adapter@2026-05-21 Confidence: high |
— |
| Performance | Medium |
Speed up Python program resolution using a set instead of deque. Speed up Python program resolution using a set instead of deque. Source: llm_adapter@2026-05-21 Confidence: high |
— |
| Bugfix | Medium |
Minify JSON persisted by the DIY backend for checkpoints, history, and stack tags. Minify JSON persisted by the DIY backend for checkpoints, history, and stack tags. Source: llm_adapter@2026-05-21 Confidence: high |
— |
| Bugfix | Medium |
Ignore non-conforming property values in maps during HCL2 import. Ignore non-conforming property values in maps during HCL2 import. Source: llm_adapter@2026-05-21 Confidence: high |
— |
| Bugfix | Medium |
Stop dropping map values with union of Input-wrapped types during HCL2 import. Stop dropping map values with union of Input-wrapped types during HCL2 import. Source: llm_adapter@2026-05-21 Confidence: high |
— |
| Bugfix | Medium |
Use selected stack's organization in `pulumi neo` task instead of user default. Use selected stack's organization in `pulumi neo` task instead of user default. Source: llm_adapter@2026-05-21 Confidence: high |
— |
| Bugfix | Medium |
Include failure reason in `pulumi_preview` and `pulumi_up` tool results on failure. Include failure reason in `pulumi_preview` and `pulumi_up` tool results on failure. Source: llm_adapter@2026-05-21 Confidence: high |
— |
| Bugfix | Medium |
Retry `pulumi neo` task creation without attached stack on backend error. Retry `pulumi neo` task creation without attached stack on backend error. Source: llm_adapter@2026-05-21 Confidence: high |
— |
| Bugfix | Medium |
Surface failure reason when a `filesystem` tool call fails in Neo. Surface failure reason when a `filesystem` tool call fails in Neo. Source: llm_adapter@2026-05-21 Confidence: high |
— |
| Bugfix | Medium |
Use `--output=markdown` instead of removed `--format=markdown` in API pointers. Use `--output=markdown` instead of removed `--format=markdown` in API pointers. Source: llm_adapter@2026-05-21 Confidence: high |
— |
| Bugfix | Medium |
Stop reporting spurious circular references for specific entry types. Stop reporting spurious circular references for specific entry types. Source: llm_adapter@2026-05-21 Confidence: high |
— |
| Bugfix | Medium |
Fail deployment when an after hook fails. Fail deployment when an after hook fails. Source: llm_adapter@2026-05-21 Confidence: low |
— |
Full changelog
3.238.0 (2026-05-13)
Features
-
[cli] Add a
--languageflag topulumi package addto run outside a Pulumi project or plugin
#22791 -
[cli] Add
--output jsontopulumi upfor a structured JSON summary of the operation result
#22870 -
[cli] Recommend
pulumi cloud api describeinpulumi cloud api --helpto verify operation parameters before calling
#22881 -
[cli] Add
pulumi stack webhook listto list all webhooks configured for a stack
#23082 -
[cli/cloud] Rename
pulumi cloud apitopulumi api
#22970 -
[cli/cloud] Add
pulumi insights resource getto look up a single resource discovered by Pulumi Insights
#23077 -
[cli/cloud] Add
pulumi template listto list registry-backed templates
#23074 -
[cli/cloud] Rename the
--formatflag to--outputonpulumi apiand its subcommands
#23072 -
[cli/cloud] Add
pulumi insights resource searchto search for resources discovered by Pulumi Insights
#23087 -
[cli/engine] Add
--skip-plugin-pre-installto skip up-front plugin installation -
[engine] Fail the deployment when an after hook fails
#22935 -
[cli/neo] Render the agent's TODO list in the
pulumi neoTUI
#22864 -
[cli/neo] Add
--approval-modeand--permission-modeflags topulumi neo, with Ctrl+A and Ctrl+R hotkeys to switch modes mid-session
#22950 -
[cli/package] When invoked by an AI coding agent, print
pulumi apipointers afterpulumi package addandpulumi package gen-sdk
#22904 -
[pkg/testing] Recognize the
hclandpclruntimes inintegration.ProgramTest
#23018 -
[pkg/testing] Add
l1-config-types-optionalconformance test for PCL'soptionaltype constructor
#23108
Bug Fixes
-
[backend/diy] Minify JSON persisted by the DIY backend for checkpoints, history, and stack tags
#22245 -
[cli/import] Ignore property values that do not conform to the schema in maps
#23076 -
[cli/import] Stop dropping map values whose element type is a union of Input-wrapped types during HCL2 import
-
[cli/neo] Use the selected stack's organization when starting a
pulumi neotask instead of the user's default organization
#22951 -
[cli/neo] Include the failure reason in
pulumi_previewandpulumi_uptool results when they fail, so the agent can react instead of seeing a blank error
#22948 -
[cli/neo] Retry
pulumi neotask creation without the attached stack when the backend rejects it with an "invalid entities" error
#22945 -
[cli/neo] Surface the failure reason when a
filesystemtool call fails, instead of returning an empty result to the agent
#23019 -
[cli/package] Use
--output=markdown(not the renamed-away--format=markdown) in thepulumi apipointers printed bypulumi package addandpulumi package gen-sdk
#23098 -
[programgen/pcl] Stop reporting spurious circular references when an
ignoreChanges,hideDiffs,replaceOnChanges, oradditionalSecretOutputsentry shares a name with a top-level node
#22931 -
[sdk/python] Speed up python program resolution by using a set instead of deque to track outputs
#22946
Miscellaneous
Weekly OSS security release digest.
The CVE patches and breaking changes that affected production tools this week. One email, every Sunday.
No spam, unsubscribe anytime.
Share this release
Related context
Related tools
Beta — feedback welcome: [email protected]