A control plane so parallel coding agents stop fighting over the same simulator.
// readme
A control plane so parallel coding agents stop fighting over the same simulator
Simlock is a CLI-first control plane for iOS simulators and Android
emulators, built for environments where multiple coding agents run at the
same time — on one machine, or across a fleet of them behind a single
address. Agents don’t touch simctl or avdmanager
directly — they ask Simlock for a device and get one back, booted and
health-checked, that no other agent will touch until they’re done with it.
Why you’d want this
Two agents, one simulator, zero coordination. Left to themselves, agents
that need a device grab whatever simctl / avdmanager happens to show
them. Two agents that pick the same one start booting, erasing, and
installing over each other — without either ever knowing the other exists.
Simlock gives them a single primitive instead: lease a device.
You don’t provision devices by hand. If nothing matching is free,
Simlock provisions one itself, up to a capacity limit it derives from the
machine’s CPU and RAM. Once that limit is reached, further requests block
and wait in a fair queue rather than failing outright, with --timeout and
--no-wait escape…