Migrate from the ESC CLI to pulumi env
The standalone Pulumi ESC CLI (esc) retired. v0.26.0 is its final release, the pulumi/esc repository is archived, and the code now lives in pulumi/pulumi.
Every ESC command is available in the Pulumi CLI under the pulumi env sub-command, and has been since ESC’s first release. If you are already using the Pulumi CLI, nothing changes for you. If you have the standalone esc binary installed, this guide shows you how to switch.
What changed
The standalone binary no longer receives updates. New ESC features ship in the Pulumi CLI only, so a workflow pinned to esc will drift further behind with each release.
Nothing changes in Pulumi Cloud. Your environments, values, versions, and access controls are unaffected — this is a change to how you invoke ESC from your terminal, not to ESC itself.
Command mapping
The mapping is mechanical:
| Standalone ESC CLI | Pulumi CLI |
|---|---|
esc env <command> | pulumi env <command> |
esc env ls | pulumi env ls |
esc env open <env> | pulumi env open <env> |
esc env run <env> -- <cmd> | pulumi env run <env> -- <cmd> |
esc open <env> | pulumi env open <env> |
esc run <env> -- <cmd> | pulumi env run <env> -- <cmd> |
esc login | pulumi login |
esc logout | pulumi logout |
esc version | pulumi version |
Two details are worth calling out:
esc openandesc runwere top-level shortcuts foresc env openandesc env run. Both forms map to the samepulumi envcommand, soesc openandesc env openboth becomepulumi env open.login,logout, andversionare Pulumi CLI commands, notpulumi envcommands.esc loginbecomespulumi login, notpulumi env login.
Everything else — like edit or get — keeps its name under pulumi env. See the pulumi env reference for the full surface.
Migrate your setup
Install the Pulumi CLI if you don’t already have it, or upgrade an existing install to pick up the latest ESC features.
Confirm ESC is available:
pulumi env lsYou should see the environments you had access to through
esc.Update your scripts, CI pipelines, and documentation using the mapping above.
Remove the standalone binary once nothing references it. If you installed it with Homebrew, run
brew uninstall pulumi/tap/esc. If you installed it with theget.pulumi.com/escscript, delete theescbinary from~/.pulumi/bin.
Authentication
In most cases you do not need to log in again. Both CLIs use the same credential store, so pulumi env picks up your existing pulumi login session automatically. Run pulumi env ls to confirm you see the environments you expect.
If you deliberately kept esc pointed at a different account or backend than pulumi, that separation goes away — run pulumi login for the account you want pulumi env to use.
PULUMI_ACCESS_TOKEN works the same way in both, which means CI pipelines that set it need no credential changes — only the command names change.
Next steps
- Running commands with
pulumi env run— inject secrets and configuration into any command or script. pulumi envcommand reference — every sub-command, flag, and example.- Use ESC with Pulumi IaC — how ESC environments feed your stack configuration.