pier · give every agent session its own VM
[main] 0:claude*"checkout-flow"<br>C-b d detach · idle sessions park themselves runs in your AWS account
##Why pier
Coding agents changed what a dev environment is. A session is no longer<br>you at one machine. It is an agent that runs for hours and wants its own<br>branch, its own ports, its own docker daemon. And you want several at<br>once. Every existing place to run them fights you:
[x] Your laptop. Sessions fight over ports and files. Closing the lid kills the run.<br>[x] Hosted agent platforms. Your code, your secrets, and your agent's credentials live on someone else's infra, billed by the seat.<br>[x] A cloud dev box. Bills 24/7 while the agent thinks and while you sleep. You still hand-build repo, auth, secrets, and tools for every session.
pier makes each session a micro-VM that manages its own lifecycle. One<br>command launches an EC2 instance and drops you into tmux inside it, with:
[+] your repo on a fresh branch, uncommitted edits included<br>[+] Claude Code and Codex installed and authenticated<br>[+] your MCP servers configured<br>[+] your dev environment built by the repo's own setup script
##What you get<br>[+] Parks itself. An in-VM supervisor stops the instance once the agent goes quiet. The disk persists.<br>[+] Resumes in about 20 seconds. Files, branches, and credentials exactly as you left them.<br>[+] Sessions as hostnames. pier proxy serves the dev server at checkout-flow.pier:3000, mirrored on localhost too.<br>[+] One-command resize. Outgrown the box? One 40 second cycle swaps the instance type, disk intact.<br>[+] GitHub-first transfer. The VM fetches your repo straight from GitHub. Only secrets ride the tunnel.<br>[+] Per-repo baked images. pier bake snapshots your toolchain once. Creates drop to about 60-90 seconds.<br>[+] No control plane. No server, no database, no daemon. Session state lives in EC2 instance tags.<br>[+] One transport. Attach, exec, file push, and port forwards are all OpenSSH, direct or over an SSM tunnel.
##The numbers<br>42s<br>create to attach<br>stock image, toolchains keep installing behind you
52s<br>create to fully ready<br>baked image, every toolchain preinstalled
~20s<br>resume from parked<br>files, branches, and credentials intact
~$3-4/mo<br>while parked<br>disk-only prices, running is ~$0.04/h
Measured on the default t4g.medium. A stock create is attachable in 42<br>seconds while agent harnesses finish in the background. A baked create<br>takes 10 seconds longer to boot but arrives with everything installed.
##How it works
A session is one EC2 instance plus its EBS disk, tagged and namespaced<br>by your caller identity. All state lives in those tags and on the disk.<br>There is nothing else to operate, back up, or pay for.
flowchart LR<br>subgraph laptop["laptop"]<br>cli["pier CLI / TUI"]<br>end<br>subgraph aws["AWS account (yours)"]<br>api["EC2 API<br>create / stop / start / tags"]<br>subgraph vm["session VM"]<br>tmux["tmux · claude / codex"]<br>sup["pier-supervisor<br>parks the VM when detached and quiet"]<br>end<br>end<br>cli -- "aws cli" --> api<br>cli -- "ssh, SSM tunnel as fallback" --> tmux<br>laptop AWS account (yours)<br>────── ───────────────────<br>pier CLI/TUI ── aws cli ──────────▶ EC2 API (create/stop/start/tags)<br>│ ┌─────────────────────────┐<br>└── ssh ─────────────────────▶ │ session VM │<br>(direct to its public IP, │ tmux ▸ claude / codex │<br>SSM tunnel as fallback) │ pier-supervisor │<br>│ └─ parks the VM when │<br>│ detached and quiet │<br>└─────────────────────────┘<br>[+] The supervisor samples every 5 seconds for attached and busy. Detached and quiet past the idle timeout parks the VM.<br>[+] The VM holds no cloud credentials. Parking is the VM running shutdown -h now. Anything needing account credentials happens from the laptop.<br>[+] A runaway cap parks a looping agent anyway, so it cannot burn compute for days.
##vs. other tools<br>pier Codespaces Hosted agents DIY EC2 Runs on your AWS account GitHub's infra vendor's sandbox your AWS account Idle cost ~$3-4/mo (self-parks) metered, auto-stop per-seat / per-task full rate unless you script it Agent-ready harnesses + auth + MCP travel you configure their agent only you configure Session lifetime until you rm it workspace-scoped task-scoped until you clean it up Interface your terminal, tmux VS Code / web web UI your terminal Setup one wizard per-repo config account signup everything by hand
##FAQ<br>Does pier need a server or a database?<br>No. There is no control plane. Session state lives in EC2 instance<br>tags, and pier ls is a filtered describe-instances call.
Does the VM hold my cloud credentials?<br>No. The instance role carries SSM and nothing else. Parking is the<br>VM shutting itself down. Resize and destroy happen from the laptop.
What happens when I close my laptop?<br>The session keeps running without you. Once the agent goes quiet<br>past the idle timeout, the supervisor parks the VM. Attach later and<br>it resumes in about 20 seconds.
How do secrets travel?<br>Once, at create, as an explicit manifest: your agent configs, your<br>tokens, and the repo files your .pier-include lists.<br>Nothing...