---
title: pulumi convert | CLI commands
url: /docs/iac/cli/commands/pulumi_convert/
---

Convert Pulumi programs from a supported source program into other supported languages

## Synopsis

Convert Pulumi programs from a supported source program into other supported languages.

The source program to convert will default to the current working directory.

Valid source languages: yaml, terraform, bicep, arm, kubernetes

Valid target languages: typescript, python, csharp, go, java, yaml
Example command usage:
pulumi convert --from yaml --language java --out . 

Note that certain target languages may require additional arguments to be passed to this command.

```
pulumi convert [arg]... [flags]
```

## Options

```
      --from string        Which converter plugin to use to read the source program (default "yaml")
      --generate-only      Generate the converted program(s) only; do not install dependencies
  -h, --help               help for convert
      --language string    Which language plugin to use to generate the Pulumi project
      --mappings strings   Any mapping files to use in the conversion
      --name string        The name to use for the converted project; defaults to the directory of the source project
      --out string         The output directory to write the converted project to (default ".")
      --strict             Fail the conversion on errors such as missing variables
```

## 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


