---
title: pulumi do | CLI commands
url: /docs/iac/cli/commands/pulumi_do/
---

[EXPERIMENTAL] Interact directly with cloud resources

## Synopsis

[EXPERIMENTAL] Interact with any cloud

pulumi do dynamically builds a CLI from any Pulumi provider's schema, giving you
direct CRUD access to cloud resources without a Pulumi program or state file.
Each provider plugin contributes its own resources, functions, and
configuration flags, all discoverable via --help on the provider subcommand.

package will be inferred from the token or passed via --package which can be a
package name or the path to a plugin binary or folder. Further parameters can
be passed after the package name which will be used to parameterize the plugin
loaded.
e.g. pulumi do --package "name@version param1 \"multi word param\""

Resource operations: list, create, read, patch, delete
Functions are invoked directly by name.

Provider plugins are auto-installed on first use; you don't need to run
'pulumi plugin install' ahead of time. Run 'pulumi plugin list' to see what is
installed locally.

Provider configuration can be supplied via:
  - the provider's standard environment variables (e.g. AWS_REGION)
  - an input file passed with --provider-file (PCL by default;
set --input to convert from another format)

Function inputs come from --input-file. PCL is the default; pass --input
to convert from another format such as YAML. Non-PCL formats require a
converter plugin for that format to be installed.

```
pulumi do  [command] [flags]
```

## Options

```
      --dry-run          Run the operation in preview mode
  -h, --help             help for do
      --package string   The package to load, in the form 'name@version' or a path to a plugin binary or folder. If the package supports parameterization, additional space-separated parameters can be included after the package name, e.g. --package "name@version param1 \"multi word param\""
      --show-secrets     Show secret values in output
      --stateless        Run create/patch/delete directly against the provider without persisting state. Required for now: the stateful (engine-driven) implementation is still in development, so create/patch/delete error out unless --stateless is set.
```

## Options inherited from parent commands

```
      --color string                 Colorize output. Choices are: always, never, raw, auto (default "auto")
  -C, --cwd string                   Run pulumi as if it had been started in another directory
      --disable-integrity-checking   Disable integrity checking of checkpoint files
  -e, --emoji                        Enable emojis in the output
  -Q, --fully-qualify-stack-names    Show fully-qualified stack names
      --logflow                      Flow log settings to child processes (like plugins)
      --logtostderr                  Log to stderr instead of to files
      --memprofilerate int           Enable more precise (and expensive) memory allocation profiles by setting runtime.MemProfileRate
      --non-interactive              Disable interactive mode for all commands
      --otel-traces string           Export OpenTelemetry traces to the specified endpoint. Use file:// for local JSON files, grpc:// for remote collectors
      --profiling string             Emit CPU and memory profiles and an execution trace to '[filename].[pid].{cpu,mem,trace}', respectively
      --tracing file:                Emit tracing to the specified endpoint. Use the file: scheme to write tracing data to a local file
  -v, --verbose int                  Enable verbose logging (e.g., v=3); anything >3 is very verbose
```

## SEE ALSO

* [pulumi](/docs/iac/cli/commands/pulumi/)	 - Pulumi command line


