pulumi-cli
Pulumi CLI Skill
Quick Command Reference
Deployment Workflow
# 1. Create new project
pulumi new typescript # Interactive
pulumi new aws-typescript --name myapp --stack dev --yes # Non-interactive
# 2. Preview changes
pulumi preview # Interactive preview
pulumi preview --diff # Show detailed diff
# 3. Deploy
pulumi up # Interactive deployment
pulumi up --yes # Non-interactive
pulumi up --skip-preview --yes # Skip preview step
# 4. View outputs
pulumi stack output
pulumi stack output --json
# 5. Tear down
pulumi destroy --yes
Stack Management
# List stacks
pulumi stack ls
# Create and select stacks
pulumi stack init dev
pulumi stack select prod
# View stack info
pulumi stack
pulumi stack history
# Stack outputs
pulumi stack output
pulumi stack output bucketName --show-secrets
# Remove stack
pulumi stack rm dev --yes
State Operations
# Refresh state from cloud
pulumi refresh --yes
# Export/import state
pulumi stack export --file backup.json
pulumi stack import --file backup.json
# Delete resource from state (keeps cloud resource)
pulumi state delete 'urn:pulumi:dev::myproject::aws:s3/bucket:Bucket::my-bucket'
# Move resource between stacks (preferred over delete+import)
# This is a single atomic operation that transfers state without touching cloud resources
pulumi state move --source dev --dest prod 'urn:...'
# Protect critical resources
pulumi state protect 'urn:...'
Configuration
# Set config values
pulumi config set aws:region us-west-2
pulumi config set dbPassword secret --secret
# Get config
pulumi config get aws:region
pulumi config # List all
# Link ESC environment (see language-specific skills for ESC details)
pulumi config env add myorg/myproject-dev
Common Flags
| Flag | Description |
|---|---|
--yes / -y |
Skip confirmation prompts |
--stack / -s |
Specify stack name |
--parallel / -p |
Limit concurrent operations |
--target |
Target specific resource URNs |
--refresh |
Refresh state before operation |
--diff |
Show detailed diff |
--json |
Output in JSON format |
--skip-preview |
Skip preview step |
--suppress-outputs |
Hide stack outputs |
CI/CD Quick Setup
These three environment variables are essential for non-interactive Pulumi in CI/CD — without PULUMI_CI=true, Pulumi may prompt for input and hang your pipeline:
# Required environment variables (all three are important)
export PULUMI_ACCESS_TOKEN=pul-xxx # Authentication token
export PULUMI_CI=true # Disables interactive prompts
export PULUMI_SKIP_UPDATE_CHECK=true # Avoids update check delays
# Typical CI workflow
pulumi login # Authenticates via PULUMI_ACCESS_TOKEN
pulumi stack select prod # Select target stack explicitly
pulumi preview # Always preview before deploying
pulumi up --yes # --yes for non-interactive confirmation
Importing Existing Resources
# Import single resource
pulumi import aws:s3/bucket:Bucket my-bucket existing-bucket-name
# Bulk import from file
pulumi import --file resources.json
resources.json format:
{
"resources": [
{"type": "aws:s3/bucket:Bucket", "name": "my-bucket", "id": "existing-bucket-name"}
]
}
State Recovery Patterns
Resource deleted outside Pulumi
pulumi refresh --yes
# Or manually remove from state:
pulumi state delete 'urn:pulumi:dev::myproject::aws:s3/bucket:Bucket::deleted-bucket'
Stuck pending operations
pulumi refresh --clear-pending-creates --yes
# Or:
pulumi cancel --yes
pulumi state repair
State corruption
# Backup current state
pulumi stack export --file current.json
# Try repair
pulumi state repair
# Or restore from history
pulumi stack export --version <previous-version> --file good.json
pulumi stack import --file good.json
URN Format
urn:pulumi:<stack>::<project>::<type>::<name>
Example:
urn:pulumi:dev::myproject::aws:s3/bucket:Bucket::my-bucket
Backend Options
# Pulumi Cloud (default)
pulumi login
# Self-hosted backends
pulumi login s3://my-bucket
pulumi login azblob://my-container
pulumi login gs://my-bucket
pulumi login file://~/.pulumi-state
References
- references/pulumi-cli-commands.md - Complete command documentation
- references/pulumi-state-management.md - State operations and recovery
- references/pulumi-environment-variables.md - CI/CD environment variables
More from dirien/claude-skills
pulumi-typescript
Scaffolds Pulumi TypeScript infrastructure-as-code projects, writes IaC code with proper resource configuration, manages Pulumi ESC environments for centralized secrets and configuration, configures OIDC authentication for cloud providers, and builds multi-language component resources. Use when the user asks to create Pulumi TypeScript projects, write Pulumi infrastructure code, set up ESC environments, configure OIDC for Pulumi, implement infrastructure automation with Node.js/TypeScript, create reusable Pulumi components, or work with stack references. Also use when the user mentions Pulumi with TypeScript, AWS/Azure/GCP infrastructure in TypeScript, or PulumiPlugin.yaml for multi-language components.
177pulumi-python
Creates Pulumi infrastructure-as-code projects in Python, defines cloud resources (AWS, Azure, GCP), configures ESC environments for secrets management, sets up OIDC authentication for secure deployments, and builds multi-language component resources. Use when creating Pulumi Python projects, writing infrastructure code, configuring cloud providers, managing secrets with Pulumi ESC, setting up OIDC for Pulumi, automating infrastructure deployments with Python, creating reusable Pulumi components in Python, or configuring Python toolchains (pip, poetry, uv) for Pulumi. Also use when the user mentions pyproject.toml with Pulumi, component_provider_host, or Python virtual environments for infrastructure code.
40pulumi-go
Creates Pulumi infrastructure-as-code projects in Go, configures OIDC authentication, integrates with Pulumi ESC for centralized secrets and configuration management, and builds multi-language component resources. Use when setting up Pulumi Go projects, writing infrastructure code with Go, configuring OIDC for Pulumi, using Pulumi ESC with Go, automating cloud infrastructure with Golang, creating reusable Pulumi components in Go, or working with pulumi-go-provider. Also use when the user mentions Pulumi with Go/Golang, AWS/Azure/GCP infrastructure in Go, or Go-based ComponentResource patterns.
31pulumi-neo
Manages cloud infrastructure through natural language conversations with Pulumi Neo, an AI agent for platform engineers. Enables infrastructure analysis, resource provisioning, stack deployment, and configuration management via conversational AI. Use when creating Neo tasks, requesting infrastructure analysis, automating cloud deployments, managing infrastructure as code (IaC), provisioning AWS/Azure/GCP resources, managing infrastructure through natural language prompts, reviewing PRs with Neo, handling Neo approval workflows, or checking Neo task status and events. Also use when the user mentions "Pulumi Neo", "Neo task", "Neo agent", or wants AI-assisted infrastructure management.
28flux-cli
>
1flux-operator-cli
>
1