Skip to content

Configuration

pier setup writes ~/.config/pier/config.toml. Change any setting later from the TUI settings page. Run pier and press s.

The settings page groups session, AWS, and GCP fields, validates values before saving them, and keeps setup- and bake-managed values read-only. Changes apply to new sessions; existing sessions keep the cloud and machine they were built with.

driver = "aws-ec2"
idle_timeout = "30m" # detached and quiet this long -> park ("never" disables)
unattended_cap = "8h" # parks even while busy ("never" disables)
[aws]
profile = "default"
region = "eu-central-1"
instance_type = "t4g.medium" # machine for new sessions
disk_gib = 40
subnet = "" # optional: orgs without a default VPC
direct = true # ssh straight to the VM. false forces the SSM tunnel
[gcp] # when driver = "gcp-gce"
project = "my-project"
zone = "europe-west3-a"
machine_type = "e2-medium"
disk_gib = 40
KeyDefaultMeaning
driveraws-ec2the cloud driver: aws-ec2 or gcp-gce
idle_timeout30mdetached and quiet this long parks the VM, never disables
unattended_cap8hparks even while busy, so a looping agent can’t burn compute for days
aws.profilethe AWS CLI profile pier calls with
aws.regionwhere sessions run
aws.instance_typet4g.mediummachine for new sessions
aws.disk_gib40EBS disk size per session
aws.subnetoptional, for orgs without a default VPC
aws.directtruessh straight to the instance’s public IP, port 22 open to your IP only, SSM tunnel as fallback. false forces the tunnel
gcp.projectthe GCP project sessions run in
gcp.zoneeurope-west3-awhere sessions run
gcp.machine_typee2-mediummachine for new sessions
gcp.disk_gib40boot disk size per session

Per-session overrides beat the config: --idle and --cap at create time.

Three sections are managed by pier, not by hand:

  • [aws.baked_amis] and [gcp.baked_images] map repo basenames to baked images. pier bake writes them, pier teardown sweeps the images.
  • [secrets] holds the manifest of files and dirs under $HOME copied one-way into each session at create, plus an optional claude_oauth_token from claude setup-token (the macOS Keychain escape hatch, injected as CLAUDE_CODE_OAUTH_TOKEN in sessions).