pulumi-cli
Use for hands-on Pulumi CLI work: running deployments, fixing broken stacks, and managing infrastructure state. Handles: recovering from stuck or interrupted `pulumi up` with pending operations, cleaning orphaned resources from state after out-of-band cloud deletions, protecting critical resources from accidental `pulumi destroy`, moving resources between stacks without recreating them, targeting specific resources during deployment, migrating between backends (local file to Pulumi Cloud, S3), stack lifecycle management, state export/import/repair, CI/CD pipeline setup, and importing existing cloud resources. Use this skill — not the language-specific Pulumi skills — whenever the user's question is about operating, troubleshooting, or recovering Pulumi infrastructure rather than writing program code.
What this skill does
# Pulumi CLI Skill
## Quick Command Reference
### Deployment Workflow
```bash
# 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
```bash
# 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
```bash
# 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
```bash
# 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:
```bash
# 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
```bash
# 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:**
```json
{
"resources": [
{"type": "aws:s3/bucket:Bucket", "name": "my-bucket", "id": "existing-bucket-name"}
]
}
```
## State Recovery Patterns
### Resource deleted outside Pulumi
```bash
pulumi refresh --yes
# Or manually remove from state:
pulumi state delete 'urn:pulumi:dev::myproject::aws:s3/bucket:Bucket::deleted-bucket'
```
### Stuck pending operations
```bash
pulumi refresh --clear-pending-creates --yes
# Or:
pulumi cancel --yes
pulumi state repair
```
### State corruption
```bash
# 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
```bash
# 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](references/pulumi-cli-commands.md) - Complete command documentation
- [references/pulumi-state-management.md](references/pulumi-state-management.md) - State operations and recovery
- [references/pulumi-environment-variables.md](references/pulumi-environment-variables.md) - CI/CD environment variables
Related in Cloud & DevOps
appbuilder-action-scaffolder
IncludedCreate, implement, deploy, and debug Adobe Runtime actions with consistent layout, validation, and error handling. Use this skill whenever the user needs to add actions to an App Builder project, understand action structure (params, response format, web/raw actions), configure actions in the manifest, use App Builder SDKs (State, Files, Events, database), deploy and invoke actions via CLI, debug action issues, or implement patterns such as webhook receivers, custom event providers, journaling consumers, large payload redirects, action sequence pipelines, and Asset Compute workers. Also trigger when users mention serverless functions in Adobe context, action logging, IMS authentication for actions, or cron-style scheduled actions.
orchestrating-datacloud
IncludedSalesforce Data Cloud product orchestrator for connect→prepare→harmonize→segment→act workflows. Use this skill when the user needs a multi-step Data Cloud pipeline, cross-phase troubleshooting, or data space and data kit management. TRIGGER when: user needs a multi-step Data Cloud pipeline, asks to set up or troubleshoot Data Cloud across phases, manages data spaces or data kits, or wants a cross-phase sf data360 workflow. DO NOT TRIGGER when: work is isolated to a single phase (use the matching phase-specific skill), the task is STDM/session tracing/parquet telemetry (use observing-agentforce), standard CRM SOQL (use querying-soql), or Apex implementation (use generating-apex).
github-project-automation
IncludedAutomate GitHub repository setup with CI/CD workflows, issue templates, Dependabot, and CodeQL security scanning. Includes 12 production-tested workflows and prevents 18 errors: YAML syntax, action pinning, and configuration. Use when: setting up GitHub Actions CI/CD, creating issue/PR templates, enabling Dependabot or CodeQL scanning, deploying to Cloudflare Workers, implementing matrix testing, or troubleshooting YAML indentation, action version pinning, secrets syntax, runner versions, or CodeQL configuration. Keywords: github actions, github workflow, ci/cd, issue templates, pull request templates, dependabot, codeql, security scanning, yaml syntax, github automation, repository setup, workflow templates, github actions matrix, secrets management, branch protection, codeowners, github projects, continuous integration, continuous deployment, workflow syntax error, action version pinning, runner version, github context, yaml indentation error
sf-datacloud
IncludedSalesforce Data Cloud product orchestrator for connect→prepare→harmonize→segment→act workflows. TRIGGER when: user needs a multi-step Data Cloud pipeline, asks to set up or troubleshoot Data Cloud across phases, manages data spaces or data kits, or wants a cross-phase `sf data360` workflow. DO NOT TRIGGER when: work is isolated to a single phase (use the matching sf-datacloud-* skill), the task is STDM/session tracing/parquet telemetry (use sf-ai-agentforce-observability), standard CRM SOQL (use sf-soql), or Apex implementation (use sf-apex).
fabric-cli
IncludedUse this skill for Fabric.so CLI workflows with the `fabric` terminal command: diagnose/install/login, search or browse a Fabric library, save notes/links/files, create folders, ask the Fabric AI assistant, manage tasks/workspaces, generate shell completion, check subscription usage, produce JSON output, and use Fabric as persistent agent memory. Do not use for Microsoft Fabric/Azure/Power BI `fab`, Daniel Miessler's Fabric framework, Python Fabric SSH, Fabric.js, or textile/fashion fabric.
lark
IncludedLark/Feishu CLI skills: lark-cli operations for docs, markdown, sheets, base, calendar, im, mail, task, okr, drive, wiki, slides, whiteboard, apps, approval, attendance, contact, vc, minutes, event. Use when the user needs to operate Lark/Feishu resources via lark-cli, send messages, manage documents, spreadsheets, calendars, tasks, OKRs, deploy web pages, or any Feishu/Lark workspace operations.