NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
PyPI · #1667 most downloaded on PyPI
Pulumi's Python SDK
Last release today
02 Oct 2026
Ships on a steady schedule
a new release about every 8 days
Nearly every release is documented
notes for 59 of the last 60 stable releases
7 versions withdrawn
withdrawn after publishing
8 years old
4961 releases · first in 2018
[backend/diy] Fix backwards incompatible gocloud.dev changes #23525
pulumi logs ls to list automatic log files #23449pulumi logs rm to remove automatic log files--output json for preview, up, destroy, and refreshpulumi neo session and restore the transcript on resume with fg #https://github.com/pulumi/pulumi/issues/23394pulumi ai web command #23517pulumi login prompt wording and coloring #23417--stateless flag to pulumi do. create, patch, and delete now require --stateless for the existing direct-provider behavior; the default will switch to a stateful (engine-driven) implementation in a future releasepulumi neo TUI now adapts its colors to the terminal background instead of hardcoding a dark scheme #23333pulumi neo task-creation timeout so backend cold starts no longer fail #23444pulumi neo approval prompts as approvals #23450**T when an output traversal lands on an optional struct field, and to emit the correct pulumi.<T>ArrayOutput cast for traversals to slice-typed fields #23458read field to customTimeouts so users can configure a timeout for resource read operations #23459RegisterResource call #14826pulumi package add not being built when using pnpm 10.34.2 or newerOne column per quarter.
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
[backend/diy] Update gocloud.dev to 0.46 and aws sdk to v2 #23421
pulumi do inside a projectpulumi do #23341pulumi neo #23425pulumi stack init to new #23422Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
[cli/do] Fix top level flags like --logtostderr being recognized when using pulumi do #23355
--logtostderr being recognized when using pulumi do #23355up --refreshNothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
[cli] Make the pulumi project new -y command write a minimal project file with no template #22847
[cli] Make the pulumi project new -y command write a minimal project file with no template
#22847
[cli] Allow coding agents to create claimable temporary accounts when not authenticated
[cli] Suggest pulumi neo in pulumi preview and pulumi up diagnostics output
#23326
[sdk] Add List to the Go plugin.Provider interface, wired to the streaming ResourceProvider.List RPC
#23287
[sdkgen] Reserve the package names 'pulumi' and 'input' for internal use #23321
[cli/cloud] Prefer text/markdown over JSON in pulumi api when an endpoint produces both
#22963
[cli/do] Add resource support to pulumi do
#23215
[cli/neo] Pressing Esc in pulumi neo now clears the input box when it has text; with an empty box, Esc still cancels the agent's current turn
#23299
[cli/new] Alias pulumi new to pulumi project new
#23265
[cli] Require --yes to confirm pulumi deployment cancel, pulumi stack schedule remove, pulumi org webhook remove, and pulumi stack webhook remove when running non-interactively
#23264
[pcl] Don't silently ignore ... in function arguments
#23309
[sdkgen/nodejs] Cache package references per-deployment in generated SDKs to fix concurrent inline programs #23068
[backend/service] Error out when setting up journaler fails #22671
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
[cli] Add a pulumi package for npx support
[cli] Add a pulumi package for npx support
[cli] Add the pulumi org member edit command
#23235
[cli] Add the pulumi org member remove command
#23237
[cli/cloud] Add pulumi deployment get to retrieve details for a specific deployment
#23238
[cli/cloud] Add pulumi insights account scan get <account> <scan-id> to show the full workflow run for a single Insights scan
#23255
[cli/cloud] Add pulumi insights account scan list <account> to discover recent scan IDs to feed into pulumi insights account scan log
#23255
[cli/deployment] Add dedicated flags for each deployment setting #23236
[cli/do] Add the start of pulumi do
#23176
[cli/neo] Add --print/-p to pulumi neo to run a single prompt non-interactively and print the agent's final response to stdout
#23245
[cli/cloud] Fix pulumi insights account scan log --all to follow the server's pagination cursor through the end of the log, and render --job/--step mode as structured lines instead of an empty raw-string blob
#23256
[sdk] Close gzip.Writer in archiveTarGZIP to produce valid tar.gz output #23240
[sdkgen/python] Fix usage of ArgsDict types in typed dictionaries #23253
Nothing published for this version
Nothing published for this version
[cli] Add --output json to pulumi preview for a structured JSON summary of the operation result #22927
[cli] Add --output json to pulumi preview for a structured JSON summary of the operation result
#22927
[cli] Add --output json to pulumi refresh for a structured JSON summary of the operation result
#22928
[cli] Add --output json to pulumi destroy for a structured JSON summary of the operation result
#22875
[cli] Add pulumi stack schedule get to retrieve the configuration of a scheduled action
#23153
[cli] Add pulumi stack schedule list to list all scheduled actions configured for a stack
#23153
[cli] Add pulumi stack schedule new to create a raw, drift, or TTL deployment schedule for a stack
#23153
[cli] Add pulumi stack webhook delivery list to list recent deliveries for a stack webhook
#23116
[cli] Add pulumi stack webhook delivery redeliver to redeliver a webhook event
#23118
[cli] Add pulumi stack webhook edit to update an existing stack webhook
#23139
[cli] Add pulumi stack webhook new to create a new stack webhook
#23101
[cli] Add pulumi stack webhook remove to delete a stack webhook
#23102
[cli] Add pulumi org webhook delivery list to list recent deliveries for an organization webhook
#23179
[cli] Add pulumi org webhook edit to update an organization webhook
#23179
[cli] Add pulumi org webhook list to list all webhooks configured for an organization
#23174
[cli] Add pulumi org webhook new to create a new organization webhook
#23172
[cli] Add pulumi org webhook ping to send a test ping to an organization webhook
#23179
[cli] Add pulumi org webhook remove to delete an organization webhook
#23177
[cli] Add pulumi stack drift list to list drift detection runs for a stack
#23159
[cli] Add pulumi stack drift status to show the drift detection status for a stack
#23161
[cli] Add pulumi stack schedule edit to update an existing scheduled deployment action
#23153
[cli] Add pulumi stack schedule remove to delete a scheduled deployment action
#23153
[cli] Add pulumi audit-log export command
#23212
[cli] Add pulumi org audit-log list
#23211
[cli] Add pulumi policy compliance list to list compliance results grouped by entity
#23209
[cli] Add pulumi policy group new command to allow creating new policy groups
#23202
[cli] Add the pulumi policy issue get command
#23200
[cli/cloud] Add pulumi insights account list to list Insights accounts in an organization
#23091
[cli/cloud] Add pulumi insights account new to create a Pulumi Insights account
#23093
[cli/cloud] Add pulumi insights account scan log to fetch log output for a Pulumi Insights scan
#23092
[cli/cloud] Add pulumi insights account scan to trigger a resource discovery scan for an Insights account
#23094
[cli/cloud] Implement pulumi stack history events to retrieve engine events for a Pulumi Cloud update
#23109
[cli/cloud] Add pulumi deployment cancel to terminate an in-progress deployment
#23164
[cli/cloud] Add pulumi org member list to list the members of an organization
#23170
[cli/cloud] Add pulumi org usage get to fetch the resources-under-management summary for an organization
#23166
[cli/cloud] Add pulumi org role assign to assign a custom role to a team
#23117
[cli/cloud] Add pulumi org role edit to update a custom role's name, description, or permission tree
#23117
[cli/cloud] Add pulumi org role list to list custom roles for an organization
#23117
[cli/cloud] Add pulumi org role new to create a custom role from a permission descriptor JSON file
#23117
[cli/cloud] Add pulumi org role remove to delete a custom role from an organization
#23117
[cli/env] Update esc to v0.24.0 #23213
[cli/neo] Show tool call arguments and results in pulumi neo via a ctrl+o overlay
#23075
[cli/neo] Multi-line input in pulumi neo - Enter sends, Shift+Enter / Alt+Enter / Ctrl+J / trailing \ insert a newline
#23151
[cli/neo] Make pulumi neo visible by default; the PULUMI_EXPERIMENTAL gate has been removed
#23228
[cli/policy] Add pulumi policy group edit to edit policy groups
#23206
[cli/policy] Add pulumi policy group remove command to remove policies
#23208
[cli/policy] Add the pulumi policy group get command
#23203
[cli] Add pulumi policy issue list command
#23198
[cli] Fix pulumi org role list to send the uxPurpose query parameter the service requires
#23231
[engine] Fix pulumi import dropping map entries whose value matched the enum member of a Union<Input<Enum<T>>, ...> element type
#23190
[cli/cloud] Surface a clear error when pulumi api --all is used against an endpoint whose response is not paginatable, instead of silently emitting an empty array
#23191
#23128
[cli/cloud] pulumi deployment settings edit no longer clears fields that the patch does not mention
#23217
[cli/import] Generate PCL for asset and archive inputs when importing resources, instead of returning a "NYI" error #22938
[cli/import] Preserve asset/archive/resource-reference values inside map and array inputs, and HCL-escape map keys containing ${ or %{ template sequences
#23222
[cli/install] Hint at adding a .git / _git when VCS URL resolution fails
#22831
[cli/neo] Transparently reconnect the Neo event stream after a transient network drop, resuming from the last seen event ID #23134
[cli/neo] Show preparing in the live preview/up block until the first resource arrives
#23155
[cli/new] Support specific versions when using registry-backed templates with pulumi new
#22909
Nothing published for this version
Nothing published for this version
Nothing published for this version
[cli] Add --output json to pulumi import for a structured JSON summary of the operation result #22929
[cli] Add --output json to pulumi import for a structured JSON summary of the operation result
#22929
[cli] Add pulumi stack get to retrieve detailed information about a stack
#23106
[cli] Add pulumi stack webhook get to inspect a single stack webhook
#23088
[cli] Add pulumi stack webhook ping to send a test ping to a stack webhook
[cli/cloud] Add pulumi deployment list to list deployment executions for a stack
#23114
[sdkgen] Validate that schema names can't conflict with module paths #22956
Nothing published for this version
Nothing published for this version
Nothing published for this version
[cli] Add a --language flag to pulumi package add to run outside a Pulumi project or plugin #22791
[cli] Add a --language flag to pulumi package add to run outside a Pulumi project or plugin
#22791
[cli] Add --output json to pulumi up for a structured JSON summary of the operation result
#22870
[cli] Recommend pulumi cloud api describe in pulumi cloud api --help to verify operation parameters before calling
#22881
[cli] Add pulumi stack webhook list to list all webhooks configured for a stack
#23082
[cli/cloud] Rename pulumi cloud api to pulumi api
#22970
[cli/cloud] Add pulumi insights resource get to look up a single resource discovered by Pulumi Insights
#23077
[cli/cloud] Add pulumi template list to list registry-backed templates
#23074
[cli/cloud] Rename the --format flag to --output on pulumi api and its subcommands
#23072
[cli/cloud] Add pulumi insights resource search to search for resources discovered by Pulumi Insights
#23087
[cli/engine] Add --skip-plugin-pre-install to 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 neo TUI
#22864
[cli/neo] Add --approval-mode and --permission-mode flags to pulumi 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 api pointers after pulumi package add and pulumi package gen-sdk
#22904
[pkg/testing] Recognize the hcl and pcl runtimes in integration.ProgramTest
#23018
[pkg/testing] Add l1-config-types-optional conformance test for PCL's optional type constructor
#23108
[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 neo task instead of the user's default organization
#22951
[cli/neo] Include the failure reason in pulumi_preview and pulumi_up tool results when they fail, so the agent can react instead of seeing a blank error
#22948
[cli/neo] Retry pulumi neo task creation without the attached stack when the backend rejects it with an "invalid entities" error
#22945
[cli/neo] Surface the failure reason when a filesystem tool call fails, instead of returning an empty result to the agent
#23019
[cli/package] Use --output=markdown (not the renamed-away --format=markdown) in the pulumi api pointers printed by pulumi package add and pulumi package gen-sdk
#23098
[programgen/pcl] Stop reporting spurious circular references when an ignoreChanges, hideDiffs, replaceOnChanges, or additionalSecretOutputs entry 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
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
[cli] Include the running command name and detected AI agent (when present) in the User-Agent header on Pulumi Cloud API requests #22908
[cli] Include the running command name and detected AI agent (when present) in the User-Agent header on Pulumi Cloud API requests #22908
[engine] Include result on the summary engine event
#22883
[sdkgen] Eagerly error on schemas with unconstructable types #22890
[cli/cloud] Auto-fill lang and os query parameters on pulumi cloud api GET/HEAD requests when the matched OpenAPI operation declares them and the caller hasn't supplied them
#22726
[cli/package] Add pulumi package new to bootstrap a Pulumi package from a template
#22837
[cli] Add blank-line gaps between pulumi neo TUI conversation blocks
#22846
[cli/import] Preserve __-prefixed keys when generating PCL for imported resource state, so provider-defined payloads round-trip correctly
#22856
[cli/neo] Render ux__ask_user clarifying questions as questions instead of approval prompts
#22862
[cli/neo] Fix a panic when cancelling a pulumi neo session
#22898
[cli/neo] Render every assistant message in the TUI scrollback so multi-turn commentary no longer disappears between tool calls
[cli/neo] Return the bare stack name and canonical project name from pulumi_preview and pulumi_up tool results instead of echoing the raw input
#22891
[codegen/pcl] Stop reporting spurious circular references when an ignoreChanges, hideDiffs, replaceOnChanges, or additionalSecretOutputs entry shares a name with a top-level node
#22916
[programgen/pcl] Fix PCL binder panic when a conditional mixes a Promise-typed branch with a try() branch #22907
[sdk/python] Support NotRequired, Required and total=False in TypedDicts for component resource arg types
#22858
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Your coding agent can read these notes before it upgrades. Set up the MCP server →