A macOS app that shows iOS Simulators and Android Emulators side-by-side in one window and mirrors touch input across all of them.
callstackincubator/simlock
A control plane that leases iOS simulators, Android emulators and phones to parallel coding agents so they stop sharing one device.
- Stars
- 612
- Forks
- 30
- Open issues
- 47
- Last commit
- 24 hours ago
What is it?
Simlock is a control plane for running several coding agents at once against mobile targets. Each agent requests a device, receives one that is already booted and checked, and keeps exclusive use of it until the lease is released. Requests that arrive when the machine is full are queued, and devices that nobody is using are cleaned up.
It covers iOS simulators, Android emulators and enrolled phones. The project is installed from npm and driven from a CLI, with commands such as doctor for environment checks and lease for requesting a device by platform and model. A single Mac is the starting point; additional Macs and Linux machines can be added behind a gateway that exposes one URL for the whole fleet.
The documentation covers agent setup, running the worker daemon on the machine that owns the devices, the gateway, and a full reference of commands, configuration keys, events and errors.
Key features
- 01Leases iOS simulators, Android emulators and enrolled phones to individual agents.
- 02Gives each agent exclusive use of a device until it is released.
- 03Creates new devices when none are free and queues requests when the machine is full.
- 04Cleans up devices that are no longer in use.
- 05Scales from one Mac to a fleet of Macs and Linux machines behind a gateway.
Use cases
- Running several coding agents in parallel that each need to test a mobile app.
- Sharing a Mac's simulators across a team's automated mobile development workflows.
- Pooling simulators and emulators across multiple machines behind one endpoint.
Quick start
- 1
Install simlock globally with npm
npm i -g simlock - 2
Check your machine setup with the doctor command
simlock doctor - 3
Lease an iPhone 16 simulator
simlock lease --platform ios --device "iPhone 16"
Things to know
- Documentation is hosted on an external website rather than in the repository.
- Designed to run on a Mac for iOS simulators, so iOS support requires macOS.
In collections
Topics
FAQ
- What is simlock?
- A control plane that leases iOS simulators, Android emulators and phones to parallel coding agents so they stop sharing one device. Simlock is a control plane for running several coding agents at once against mobile targets. Each agent requests a device, receives one that is already booted and checked, and keeps exclusive use of it until the lease is released. Requests that arrive when the machine is full are queued, and devices that nobody is using are cleaned up.
- Is simlock free to use? What license does it have?
- simlock is open source under the MIT license. Check the license terms before using it in commercial products.
- Is simlock still maintained?
- Actively maintained. The last commit to simlock was on Nov 6, 2026.
- What can I use simlock for?
- Running several coding agents in parallel that each need to test a mobile app. Sharing a Mac's simulators across a team's automated mobile development workflows. Pooling simulators and emulators across multiple machines behind one endpoint.
- How do I install simlock?
- Install simlock globally with npm: npm i -g simlock Check your machine setup with the doctor command: simlock doctor Lease an iPhone 16 simulator: simlock lease --platform ios --device "iPhone 16"
- Where can I get simlock?
- The source code and installation instructions are on GitHub: https://github.com/callstackincubator/simlock
Summary generated by AI from the project's README. GitHub stats refresh daily.
Related projects
A CLI that lets AI agents observe and act on iOS Simulator and Android emulator or device screens through one command set.
Hydra Lab is a framework for building your own cloud testing platform on test devices and machines you already have.
A free, open-source macOS app that shows Android emulators, Android phones, iOS simulators and iPhones side by side for mirroring, control and settings changes.
Docker image that runs Android emulators in containers, viewable through noVNC, with video recording, an MCP server and AI-agent support.
A self-hosted web app for remotely viewing, controlling and managing Android devices (and experimental iOS) from a browser.