Configuration
Resource limits
Every instance gets a memory/CPU/PID ceiling so a runaway build in one container can't take down the machine (or your other instances). Defaults are conservative — 6 GB memory, 4 CPUs, 512 PIDs — sized against your container runtime's actual memory budget (which is smaller than your host's total RAM if you're on OrbStack or Docker Desktop's own VM), not the host's full capacity. Override per-repo in .claudio.yml, or per-instance:
A local override always wins over what a repo's .claudio.yml asks for — create tells you when it's doing that, rather than silently picking a different number than what's committed. If an instance gets killed for exceeding its memory limit, claudio ls/claudio status say so explicitly (colored, and distinct from a plain stop) instead of leaving you to guess why it stopped.
.claudio.yml and config.yml
Two files, two audiences. <repo>/.claudio.yml is what this project needs — commit it, share it. ~/.claudio/config.yml is what this machine allows — personal, uncommitted, applies to every instance regardless of repo.
.claudio.yml (all fields optional):
A repo declaring an image: section with apt/npm_global/dockerfile needs its own image layer, built on top of the shared base — build it explicitly:
create never builds an image as a side effect (a multi-minute, network-dependent build has no business happening inside what's supposed to be a fast provisioning step) — if the image it needs doesn't exist yet, it tells you the exact claudio image build --repo ... command to run.
~/.claudio/config.yml: