Every command with its arguments and flags. Per-command pages: CLI reference .
Flag Value Default Description -v, --versionPrint version -j, --jsonOutput as JSON --no-colorDisable colored output (env NO_COLOR) -w, --workspaceSTRINGOverride default workspace (name or ID) -p, --projectSTRINGOverride default project (name, slug, or ID) (env PIER_PROJECT) -e, --envSTRINGTarget this environment for this command only (slug); use 'pier use' to switch --profileSTRINGUse a named session profile for this invocation (e.g. local, dev) (env PIER_PROFILE) --no-stateIgnore saved selections, always prompt
Project state, resource counts, config drift.
pier logs [<ref>] [flags]
Read or follow logs for an app, a Postgres, or the whole environment.
Argument Required Description <ref>no App or Postgres to read (name, name/target, or name/target/instance); omit to pick
Flag Value Default Description --typeSTRINGDisambiguate a name shared by several kinds: app or pg --allEvery app in the environment (skips the picker) --tail100100Max lines --since1hLookback: a duration (30m, 6h, 7d) or an RFC3339 time --querySTRINGSearch filter (Quickwit syntax; a bare word matches the message; substring-only with --follow) --levelLEVEL,...Only these levels (repeatable). Apps: INFO WARN ERROR FATAL DEBUG TRACE; Postgres: LOG INFO NOTICE WARNING ERROR FATAL DEBUG --instanceSTRINGApps: one instance (name or pod suffix) — the same as a third ref segment -f, --followKeep streaming new lines until Ctrl-C (apps and environments) --utcTimestamps in UTC instead of local time
pier events [<ref>] [flags]
Show or watch events for a resource, the environment, the project or the workspace.
Argument Required Description <ref>no Resource (name, or name/target for one target); omit to pick
Flag Value Default Description --typeSTRINGDisambiguate a name shared by several kinds: app, site, pg, bucket or volume --all-envsEvery environment of the project (skips the picker) --all-projectsThe whole workspace (skips the picker) --kindKIND,...intent | milestone | activity (repeatable) --actionACTION,...Exact action match e.g. app.created (repeatable) --action-prefixSTRINGAction prefix e.g. app. matches every app.* event --severitySEVERITY,...info | warn | error | critical (repeatable) --actorSTRINGFilter by actor user ID --intentSTRINGAll events for one intent ID --operationSTRINGAll events for one operation (op_...) --sinceSTRINGLower bound: a duration (30m, 6h, 7d) or an RFC3339 time --untilSTRINGUpper bound: a duration ago or an RFC3339 time --limit5050Max events (server caps at 200) --afterSTRINGContinue from a previous page's next_cursor (--json) --payloadInclude each event's payload (--json) --watchKeep printing new events until Ctrl-C --utcAbsolute UTC timestamps instead of relative
pier monitor [<ref>] [flags]
Monitor a resource or the whole environment: live snapshot, --range summary, --metric drill-down.
Argument Required Description <ref>no Resource to show (name, or name/target); omit to pick
Flag Value Default Description --typeSTRINGDisambiguate a name shared by several kinds: app, site, pg, bucket or volume --allShow every resource in the environment (the overview) without the picker --range24hSummarise a window instead of the live snapshot (1h, 6h, 24h, 7d, 30d) --metricSTRINGShow one measure's series over the window (e.g. cpu_pct, latency_p95_ms); implies --range --by-instanceWith --metric on an app: one column per instance for cpu_pct/memory_pct
Deploy history (apps + sites), incl. build logs.
pier deploys ls [<ref>] [flags]
List deploys (apps + sites).
Argument Required Description <ref>no Narrow to one app or site (slug, or slug/target)
Flag Value Default Description --typeSTRINGFilter by resource type: app or site --limitINTMax rows (server default 50, max 200) --systemInclude platform-initiated rollouts (drift repair, resume, relocation) --all-envsEvery environment (default: the current one only)
Show deploy details.
Argument Required Description <id>no Deploy ID (build_…); picked from recent deploys when omitted
pier deploys logs [<id>] [flags]
Show build logs for a deploy.
Argument Required Description <id>no Deploy ID (build_…); picked from recent deploys when omitted
Flag Value Default Description --tail20002000Max log lines --querySTRINGFull-text search filter -f, --followFollow the live log stream until the build completes
What's in the environment; a kind (apps, sites, pg, buckets, volumes, domains) narrows it.
Argument Required Description <kind>no Narrow to one kind: apps, sites, pg, buckets, volumes, domains
pier info [<ref>] [flags]
One resource in full: an app or site with its targets, one target, a Postgres, bucket, volume or domain.
Argument Required Description <ref>no Resource to show (name, name/target, or a custom domain); omit to pick
Flag Value Default Description --typeSTRINGDisambiguate a name shared by several kinds: app, site, pg, bucket, volume or domain
pier apply [<file>] [flags]
Converge pier.yaml: add, set and remove resources — never rolls a workload.
Argument Required Description <file>no Path to pier.yaml (default: auto-detect)
Flag Value Default Description --dry-runPreview changes without applying -y, --yesSkip confirmation prompt --pruneDelete resources not in pier.yaml --all-envsApply all environments (default: current env only) --purgeDeletes in this apply skip the 30-day recovery window (torn down immediately) --renameKIND.OLD=NEW,...Apply a rename in place instead of delete+create (KIND.OLD=NEW, e.g. apps.api=gateway). Repeatable.
pier deploy [<ref>] [flags]
Build and roll changed apps and sites (implies apply).
Argument Required Description <ref>no Deploy one app or site only (name or name/target); default: everything changed
Flag Value Default Description -y, --yesSkip confirmation prompt -f, --forceForce rebuild all apps --taglatestImage tag --no-resumeRefuse to resume suspended targets — fail fast (CI escape hatch) --prune-externalAlso delete resources on the server that aren't in pier.yaml and were never applied from it (added via console/API) --purgeDeletes in this deploy skip the 30-day recovery window (torn down immediately) --renameKIND.OLD=NEW,...Apply a rename in place instead of delete+create (KIND.OLD=NEW, e.g. apps.api=gateway). Repeatable. --pathSTRINGSite only: directory to build and upload (default: the site's build context) --build-cmdSTRINGSite only: override the build command (build-time only) --output-dirSTRINGSite only: override the output directory (build-time only) --skip-buildSite only: skip install and build, upload the directory as is
Add a resource.
Add an app.
Flag Value Default Description --nameSTRINGApp name --planSTRINGApp plan (e.g. app-s, app-m) --replicas00Number of replicas --autoscaleSTRINGAutoscale range min-max (e.g. 1-4); XOR with --replicas --triggerTRIGGER,...Autoscale trigger type:value (cpu:70, memory:80, rps:50, latency:250ms); repeatable --idle-afterSTRINGZero-traffic window before scale-to-zero (with --autoscale 0-N) --imageSTRINGContainer image (static-image flow, skips build) --portINTContainer port (required with --image) --templateSTRINGScaffold from a starter template (e.g. node_hono, python_fastapi, go_fiber, rust_axum, dockerfile_caddy) -y, --yesSkip confirmation prompt --stageWrite the change to pier.yaml only — apply later with 'pier deploy'
Add a static site.
Flag Value Default Description --nameSTRINGSite name --templateSTRINGScaffold from a starter template (e.g. site_nextjs, site_astro, site_vite, site_hugo, site_html) -y, --yesSkip confirmation prompt --stageWrite the change to pier.yaml only — apply later with 'pier deploy'
Add a Postgres instance.
Flag Value Default Description --nameSTRINGPostgres cluster name (CNPG cluster / Pier resource name) --default-dbSTRINGDefault Postgres database name created with the cluster (required) --planSTRINGSizing plan (e.g. pg-s, pg-m, pg-l) --replicas00Number of replicas --pg-versionSTRINGPostgres major version -y, --yesSkip confirmation prompt --stageWrite the change to pier.yaml only — apply later with 'pier deploy'
Add a bucket.
Flag Value Default Description --nameSTRINGBucket name --access""Access level: public or private -y, --yesSkip confirmation prompt --stageWrite the change to pier.yaml only — apply later with 'pier deploy'
Add a persistent volume.
Flag Value Default Description --nameSTRINGVolume name --size""Size (e.g. 1GB, 5GB) --durability""Durability tier: standard (node-local, default) or ha (replicated, survives node failure). Immutable after creation. -a, --appSTRINGAttach to an app (slug or slug/target) --mountSTRINGMount path inside the app (required with --app non-interactively) -y, --yesSkip confirmation --stageWrite the change to pier.yaml only — apply later with 'pier deploy'
pier add domain [<domain>] [flags]
Add a custom domain.
Argument Required Description <domain>no Domain to add (e.g. app.example.com)
Flag Value Default Description -a, --appSTRINGApp ref (slug or slug/target) -s, --siteSTRINGSite ref (slug or slug/target) -y, --yesSkip confirmation --stageWrite the change to pier.yaml only — apply later with 'pier deploy'
pier add target < ap p > < nam e > [flags]
Add a deployment target to an app or site.
Argument Required Description <app>yes App or site (name) <name>yes New target name (slug-shaped, e.g. canary)
Flag Value Default Description --branchSTRINGGit branch that deploys this target --planSTRINGSizing plan (e.g. app-s, app-m) --dockerfileSTRINGDockerfile path override (relative to build context) -y, --yesSkip confirmation prompt
Change a resource's config.
pier set app [<app>] [flags]
Change an app's config.
Argument Required Description <app>no App ref (slug or slug/target)
Flag Value Default Description --planSTRINGNew plan --replicasINTNew replica count (fixed scaling; XOR with --autoscale) --autoscaleSTRINGAutoscale range min-max (e.g. 1-4), or 'off' to return to fixed --triggerTRIGGER,...Autoscale trigger type:value (cpu:70, memory:80, rps:50, latency:250ms); repeatable --idle-afterSTRINGZero-traffic window before scale-to-zero (with --autoscale 0-N) --imageSTRINGDeploy from a static image (switches off build_context) --portINTContainer port (image-sourced apps only) --build-contextSTRINGDeploy by building a code path, relative to pier.yaml (switches off image) -y, --yesSkip confirmation prompt --stageWrite the change to pier.yaml only — apply later with 'pier deploy'
pier set site [<site>] [flags]
Change a site's config.
Argument Required Description <site>no Site ref (slug or slug/target)
Flag Value Default Description --frameworkSTRINGNew framework (e.g. static, nextjs-static, astro, vite, hugo) --build-commandSTRINGNew build command --output-dirSTRINGNew output directory -y, --yesSkip confirmation prompt --stageWrite the change to pier.yaml only — apply later with 'pier deploy'
pier set pg [<postgres>] [flags]
Change a Postgres instance's config.
Argument Required Description <postgres>no Postgres name or slug
Flag Value Default Description --planSTRINGNew plan --replicasINTNew replica count --pg-versionSTRINGNew Postgres major version (e.g. 17) -y, --yesSkip confirmation prompt --stageWrite the change to pier.yaml only — apply later with 'pier deploy'
pier set bucket [<bucket>] [flags]
Change a bucket's config.
Argument Required Description <bucket>no Bucket name or slug
Flag Value Default Description --access""Access level: public or private -y, --yesSkip confirmation prompt --stageWrite the change to pier.yaml only — apply later with 'pier deploy'
pier set volume [<volume>] [flags]
Change a volume's config.
Argument Required Description <volume>no Volume name, slug, or ID
Flag Value Default Description --size""New size (e.g. 5GB, 10GB) -a, --appSTRINGBind to an app (slug or slug/target), moving any existing binding --mountSTRINGMount path inside the app (required with --app non-interactively) --detachRemove the volume's app binding -y, --yesSkip confirmation --stageWrite the change to pier.yaml only — apply later with 'pier deploy'
Remove a resource.
pier rm app [<app>] [flags]
Remove an app.
Argument Required Description <app>no App name, slug, or ID
Flag Value Default Description -y, --yesSkip confirmation prompt --stageWrite the change to pier.yaml only — apply later with 'pier deploy'
pier rm site [<site>] [flags]
Remove a site.
Argument Required Description <site>no Site name or slug
Flag Value Default Description -y, --yesSkip confirmation prompt --stageWrite the change to pier.yaml only — apply later with 'pier deploy'
pier rm pg [<postgres>] [flags]
Remove a Postgres instance.
Argument Required Description <postgres>no Postgres name or slug
Flag Value Default Description -y, --yesSkip confirmation prompt --stageWrite the change to pier.yaml only — apply later with 'pier deploy'
pier rm bucket [<bucket>] [flags]
Remove a bucket.
Argument Required Description <bucket>no Bucket name or slug
Flag Value Default Description -y, --yesSkip confirmation prompt --stageWrite the change to pier.yaml only — apply later with 'pier deploy'
pier rm volume [<volume>] [flags]
Remove a volume.
Argument Required Description <volume>no Volume name, slug, or ID
Flag Value Default Description -y, --yesSkip confirmation --stageWrite the change to pier.yaml only — apply later with 'pier deploy'
pier rm domain [<domain>] [flags]
Remove a custom domain.
Argument Required Description <domain>no Domain to delete (interactive if omitted)
Flag Value Default Description -a, --appSTRINGApp ref narrowing the --stage selection (slug or slug/target) -s, --siteSTRINGSite ref narrowing the --stage selection (slug or slug/target) -y, --yesSkip confirmation --stageWrite the change to pier.yaml only — apply later with 'pier deploy'
pier rm target < re f > [flags]
Remove a deployment target from an app or site.
Argument Required Description <ref>yes Target to remove (name/target of an app or site, e.g. web/feat-x)
Flag Value Default Description -y, --yesSkip confirmation prompt
Removed resources in their recovery window: list, restore, purge.
List removed resources still in their recovery window.
pier trash restore < typ e > < nam e >
Restore a removed resource (its data comes back).
Argument Required Description <type>yes Resource type: app | pg | site | bucket | volume <name>yes Resource name (slug)
pier trash purge < typ e > < nam e > [flags]
Purge a removed resource now (forfeits recovery).
Argument Required Description <type>yes Resource type: app | pg | site | bucket | volume <name>yes Resource name (slug)
Flag Value Default Description -y, --yesSkip confirmation prompt
Copy a resource to another environment.
pier copy app [<name>] [flags]
Copy an app to another environment.
Argument Required Description <name>no App name or slug to copy
Flag Value Default Description --toSTRINGTarget environment slug
pier copy site [<name>] [flags]
Copy a site to another environment.
Argument Required Description <name>no Site name or slug to copy
Flag Value Default Description --toSTRINGTarget environment slug
pier rename < kin d > < ol d > < ne w > [flags]
Rename a resource in place (non-destructive).
Argument Required Description <kind>yes Resource kind: app | postgres | site | bucket | volume | environment <old>yes Current name <new>yes New name
Flag Value Default Description -y, --yesSkip confirmation
pier promote < re f > [flags]
Make a target the primary of its app or site.
Argument Required Description <ref>yes Target to make primary (name/target of an app or site)
Flag Value Default Description -y, --yesSkip confirmation prompt
pier restart [<ref>] [flags]
Restart an app or a Postgres instance.
Argument Required Description <ref>no App (name or name/target) or Postgres to restart; omit to pick
Flag Value Default Description --typeSTRINGDisambiguate a name shared by several kinds: app or pg -y, --yesSkip the resume confirmation prompt --no-resumeFail instead of resuming a paused resource/ancestor
pier rollback [<ref>] [flags]
Roll an app or site back to a previous deploy.
Argument Required Description <ref>no App or site to roll back (name or name/target); omit to pick
Flag Value Default Description --typeSTRINGDisambiguate a name shared by several kinds: app or site --toSTRINGDeploy to roll back to (an id from 'pier deploys ls'); default: the previous one -y, --yesSkip confirmation prompt --no-resumeFail instead of resuming a paused app/ancestor
pier pause [<ref>] [flags]
Pause a resource, environment, project or workspace (recoverable).
Argument Required Description <ref>no Resource to pause (name, or name/target)
Flag Value Default Description --typeSTRINGDisambiguate a name shared by several kinds: app, site, pg, bucket or volume -y, --yesSkip confirmation --no-waitReturn immediately after submitting; don't wait for terminal status
pier resume [<ref>] [flags]
Resume a paused resource, environment, project or workspace.
Argument Required Description <ref>no Resource to resume (name, or name/target)
Flag Value Default Description --typeSTRINGDisambiguate a name shared by several kinds: app, site, pg, bucket or volume --no-waitReturn immediately after submitting; don't wait for terminal status -y, --yesAccepted for symmetry with pause (resume never prompts)
pier ssh [<app>] [ < command > ] [flags]
Open a shell in a running app.
Argument Required Description <app>no App ref (slug, slug/target, or slug/target/instance; uses current app if omitted) <command>no Command to run (default: /bin/sh)
Flag Value Default Description --key~/.ssh/id_ed25519Path to SSH private key
pier psql [<postgres>] [ < args > ] [flags]
Open a psql shell to a Postgres instance.
Argument Required Description <postgres>no Postgres name, slug, or ID <args>no Extra args passed to psql after --
Flag Value Default Description --dbSTRINGOverride the Postgres database inside the cluster
Environment variables.
List environment variables.
pier vars set [<key>] [ < value > ] [flags]
Set a variable (plain, secret or linked); KEY=VALUE or KEY VALUE.
Argument Required Description <key>no Variable name (or KEY=VALUE) <value>no Variable value
Flag Value Default Description -s, --secretStore as secret --secret-valueSTRINGSecret value (use '-' for stdin) --fromSTRINGLink to resource reference (e.g. postgres.main.url) --appSTRINGScope to an app (slug or slug/target) --siteSTRINGScope to a site (slug or slug/target) --stageWrite the change to pier.yaml only — apply later with 'pier deploy'
pier vars rm [<key>] [flags]
Remove a variable.
Argument Required Description <key>no Variable name to remove
Flag Value Default Description --appSTRINGScope to an app (slug or slug/target) --siteSTRINGScope to a site (slug or slug/target) -y, --yesSkip confirmation prompt --stageWrite the change to pier.yaml only — apply later with 'pier deploy'
Import variables from a .env file.
Flag Value Default Description --fileSTRINGPath to .env file (use '-' for stdin) --secretTreat all imported vars as secrets -y, --yesSkip confirmation prompt
Reveal the value of a secret variable.
Argument Required Description <key>no Variable name to reveal
Site routing rules.
List a site's routing rules.
Argument Required Description <site>no Site ref (name or name/target)
pier routes add [<site>] [ < route-type > ] [flags]
Add a routing rule (redirect, rewrite, header).
Argument Required Description <site>no Site (name or name/target); omit to pick <route-type>no Route type (redirect, rewrite, header)
Flag Value Default Description -y, --yesSkip confirmation prompt --stageWrite the change to pier.yaml only — apply later with 'pier deploy' --sourceSTRINGSource path pattern --destinationSTRINGDestination path or URL --status308308Redirect status code (301/302/307/308) --pathSTRINGHeader rule path pattern --headersHEADERS,...Header key=value pairs
pier routes rm [<site>] [ < route-type > ] [flags]
Remove a routing rule.
Argument Required Description <site>no Site (name or name/target); omit to pick <route-type>no Route type (redirect, rewrite, header)
Flag Value Default Description -y, --yesSkip confirmation prompt --stageWrite the change to pier.yaml only — apply later with 'pier deploy' --sourceSTRINGSource/path pattern to remove --pathSTRINGHeader rule path to remove
pier routes fallback [<site>] [flags]
Configure the SPA fallback.
Argument Required Description <site>no Site (name or name/target); omit to pick
Flag Value Default Description -y, --yesSkip confirmation prompt
Postgres tools.
pier pg credentials [<postgres>] [flags]
Show connection credentials.
Argument Required Description <postgres>no Postgres name, slug, or ID
Flag Value Default Description --uriPrint connection URI only (pipeable)
List available Postgres plans.
pier pg databases [<postgres>]
List logical databases inside an instance.
Argument Required Description <postgres>no Postgres instance (name or name/target)
pier pg tables [<postgres>] [ < database > ] [flags]
List tables in a logical database.
Argument Required Description <postgres>no Postgres instance (name or name/target) <database>no Logical database inside the cluster (default: the instance's default)
Flag Value Default Description --schemaSTRINGFilter by schema (default: all non-system schemas) --limit100100Limit number of rows returned --csvOutput as CSV (no formatting)
pier pg query [<postgres>] [ < database > ] [ < sql > ] [flags]
Run a one-off SQL query.
Argument Required Description <postgres>no Postgres instance (name or name/target) <database>no Logical database inside the cluster (default: the instance's default) <sql>no SQL to execute (use --file to read from a file or stdin)
Flag Value Default Description --fileSTRINGRead SQL from a file (use - for stdin) --limitINTMax rows returned before truncation --csvOutput as CSV
Bucket objects (data plane).
Upload a file to a bucket.
Flag Value Default Description -b, --bucketSTRINGBucket name, slug, or ID -f, --fileSTRINGLocal file path to upload --keySTRINGRemote object key (defaults to filename)
pier objects get [<key>] [flags]
Download an object from a bucket.
Argument Required Description <key>no Object key
Flag Value Default Description -b, --bucketSTRINGBucket name, slug, or ID -o, --outputSTRINGLocal file path (defaults to key basename) --prefixSTRINGFilter the interactive picker by key prefix
List objects in a bucket.
Flag Value Default Description -b, --bucketSTRINGBucket name, slug, or ID --prefixSTRINGFilter objects by key prefix --max-keys100100Max objects to return
pier objects rm [<key>] [flags]
Remove an object from a bucket.
Argument Required Description <key>no Object key
Flag Value Default Description -b, --bucketSTRINGBucket name, slug, or ID -y, --yesSkip confirmation prompt --prefixSTRINGFilter the interactive picker by key prefix
pier objects presign [<key>] [flags]
Generate a presigned URL for an object.
Argument Required Description <key>no Object key
Flag Value Default Description -b, --bucketSTRINGBucket name, slug, or ID --methodSTRINGHTTP method: GET or PUT (defaults to GET in non-interactive mode) --prefixSTRINGFilter the interactive picker by key prefix (GET only)
Volume snapshots.
pier snapshots ls [<volume>]
List snapshots.
Argument Required Description <volume>no Volume name, slug, or ID
pier snapshots create [<volume>]
Create an on-demand snapshot.
Argument Required Description <volume>no Volume name, slug, or ID
Postgres backups.
pier backups ls [<postgres>]
List backups.
Argument Required Description <postgres>no Postgres name, slug, or ID
pier backups create [<postgres>]
Trigger an on-demand backup.
Argument Required Description <postgres>no Postgres name, slug, or ID
GitHub push-to-deploy.
pier github connect [flags]
Connect this project to a GitHub repository.
Flag Value Default Description --repoSTRINGGitHub repository (owner/repo) -y, --yesSkip confirmation prompt
Configure deploy triggers for push-to-deploy.
Flag Value Default Description --appSTRINGApp slug to set the trigger on (flag mode — skips the interactive prompt) --siteSTRINGSite slug to set the trigger on (flag mode — skips the interactive prompt) --targetSTRINGTarget name (default: the resource's only target) --branchSTRINGBranch or pattern to deploy on push (e.g. main, release-*) --removeRemove the trigger instead of setting one
pier github disconnect [flags]
Disconnect GitHub from this project.
Flag Value Default Description -y, --yesSkip confirmation prompt
Show GitHub connection status.
Run the current environment locally (docker).
Run the current environment locally (default).
Flag Value Default Description --dry-runPrint the materialization plan and generated compose file; run nothing --watchWatch build contexts and rebuild/restart apps on change --onlyAPP,...Run only these apps --pull-secretsReveal secret values from the server (required for protected environments) --no-pull-secretsNever reveal secrets; missing ones error unless --allow-missing --allow-missingRun even when required secrets have no value (vars are absent) --buildRebuild app images even when the build context is unchanged --no-buildNever build; fail if an app image is missing --keep-othersLeave other environments' running dev stacks alone (default: their apps stop)
Show this project's local dev stacks across environments.
Stop the current environment's local stack (data kept).
Destroy local dev stack(s): containers, volumes, generated files.
Flag Value Default Description --allReset every environment's dev stack for this project -y, --yesSkip confirmation prompt
Follow the local stack's logs.
Argument Required Description <app>no Limit to one app
pier.yaml lifecycle: init, sync, diff, validate.
Create a new project and write its pier.yaml.
Flag Value Default Description -o, --outputpier.yamlOutput file path --nameSTRINGProject name for the new project (default: directory name). Required non-interactively — creating a server project should never be a silent side effect in CI.
pier config validate [<file>]
Validate pier.yaml syntax and references.
Argument Required Description <file>no Path to pier.yaml (default: auto-detect)
pier config diff [<file>]
Show differences between pier.yaml and platform state.
Argument Required Description <file>no Path to pier.yaml (default: auto-detect)
pier config sync [<file>] [flags]
Pull server state into pier.yaml (adopt an existing project, or update an existing file).
Argument Required Description <file>no Path to pier.yaml (default: auto-detect)
Flag Value Default Description -y, --yesSkip confirmation prompt
Switch the active environment.
Argument Required Description <environment>no Environment slug to switch to; omit to pick
Projects: list, add, inspect, remove, pause, switch.
List projects.
pier projects add < nam e > [flags]
Add a project.
Argument Required Description <name>yes Project name
Flag Value Default Description --slugSTRINGURL-safe identifier (auto-generated if omitted)
pier projects info < projec t >
Show project details.
Argument Required Description <project>yes Project name, slug, or ID
pier projects use [<ref>]
Switch the active project (picker when no name is given).
Argument Required Description <ref>no Project name, slug, or ID; omit to pick
pier projects rm [<project>] [flags]
Remove a project.
Argument Required Description <project>no Project name, slug, or ID
Flag Value Default Description -y, --yesSkip confirmation prompt
pier projects pause [flags]
Pause an entire project (recoverable).
Flag Value Default Description -y, --yesSkip confirmation --no-waitReturn immediately after submitting; don't wait for terminal status
pier projects resume [flags]
Resume a paused project.
Flag Value Default Description --no-waitReturn immediately after submitting; don't wait for terminal status
pier environments < comman d >
Environments: list, add, pause (switch with 'pier use').
List environments.
pier environments add < nam e > [flags]
Add an environment.
Argument Required Description <name>yes Environment name (e.g. Staging)
Flag Value Default Description -y, --yesSkip confirmation prompt
pier environments pause [flags]
Pause an environment (recoverable).
Flag Value Default Description -y, --yesSkip confirmation --no-waitReturn immediately after submitting; don't wait for terminal status
pier environments resume [flags]
Resume a paused environment.
Flag Value Default Description --no-waitReturn immediately after submitting; don't wait for terminal status
pier workspaces < comman d >
Workspaces: switch, pause, resume.
List your workspaces.
pier workspaces use [<workspace>]
Switch the active workspace.
Argument Required Description <workspace>no Workspace name or ID; omit to pick
pier workspaces pause [flags]
Pause an entire workspace (closes the active plan).
Flag Value Default Description -y, --yesSkip confirmation --no-waitReturn immediately after submitting; don't wait for terminal status
pier workspaces resume [flags]
Resume a paused workspace.
Flag Value Default Description --no-waitReturn immediately after submitting; don't wait for terminal status
pier login [<url>] [flags]
Authenticate with the controller.
Argument Required Description <url>no Controller URL (default: built-in or from config)
Flag Value Default Description --no-browserUse email/password prompt instead of browser login
Log out and clear session.
Show current user.
Session profiles (one login per controller).
List stored profiles.
pier profiles use [<name>]
Switch the default profile.
Argument Required Description <name>no Profile name; omit to pick
Remove a stored profile.
Argument Required Description <name>yes Profile name
Billing state and overage cap.
Show billing overview (plan, status, credits).
Show recent charges.
pier billing cap < comman d >
Manage the workspace overage cap.
Show the current cap.
pier billing cap set [<amount>] [flags]
Set or update the cap.
Argument Required Description <amount>no Cap amount in USD (e.g. 50.00). Prompts when omitted on TTY.
Flag Value Default Description --actionhard_suspendWhat happens at 100%
pier billing cap remove [flags]
Remove the cap (= unlimited).
Flag Value Default Description -y, --yesSkip confirmation prompt
Generate SSH certificate for shell access.
Flag Value Default Description --key~/.ssh/id_ed25519.pubPath to SSH public key
Upgrade the CLI to the latest version.
Uninstall the Pier CLI and remove all data.
Flag Value Default Description -y, --yesSkip confirmation prompt