simctl-device
Manage iOS simulator device lifecycle: boot, shut down, create, delete, erase, clone, or rename simulators using structured JSON commands.
Instructions
simctl-device
Unified iOS simulator device management - boot, shutdown, create, delete, erase, clone, rename.
Overview
Single tool for all simulator device lifecycle operations. Routes to specialized handlers while maintaining clean operation semantics.
Complete JSON Examples
Boot a Simulator
{"operation": "boot", "deviceId": "ABCD1234-5678-90EF-GHIJ-KLMNOPQRSTUV", "waitForBoot": true, "openGui": true}Shutdown Running Simulator
{"operation": "shutdown", "deviceId": "booted"}Create New Simulator
{"operation": "create", "name": "Test iPhone 16", "deviceType": "iPhone 16 Pro", "runtime": "iOS-18-0"}Delete Simulator
{"operation": "delete", "deviceId": "ABCD1234-5678-90EF-GHIJ-KLMNOPQRSTUV"}Factory Reset (Erase)
{"operation": "erase", "deviceId": "simulator-udid", "force": true}Clone Simulator
{"operation": "clone", "deviceId": "source-udid", "newName": "Snapshot Before Tests"}Rename Simulator
{"operation": "rename", "deviceId": "simulator-udid", "newName": "My Test Device"}Operations
boot
Boot iOS simulator device with performance tracking.
Parameters:
deviceId(string): Device UDID, "booted" for current, or "all"waitForBoot(boolean, default: true): Wait for device to finish bootingopenGui(boolean, default: true): Open Simulator.app GUI
Example:
await simctlDeviceTool({ operation: 'boot', deviceId: 'ABC-123-DEF' })shutdown
Shutdown iOS simulator devices.
Parameters:
deviceId(string): Device UDID, "booted" for all booted devices, or "all"
Example:
await simctlDeviceTool({ operation: 'shutdown', deviceId: 'ABC-123-DEF' })create
Create new iOS simulator device.
Parameters:
name(string): Display name for new simulatordeviceType(string): Device type (e.g., "iPhone 16 Pro")runtime(string, optional): iOS version - defaults to latest
Example:
await simctlDeviceTool({ operation: 'create', name: 'TestDevice', deviceType: 'iPhone 16 Pro' })delete
Permanently delete iOS simulator device.
Parameters:
deviceId(string): Device UDID to delete
Example:
await simctlDeviceTool({ operation: 'delete', deviceId: 'ABC-123-DEF' })erase
Reset simulator to factory settings.
Parameters:
deviceId(string): Device UDID to eraseforce(boolean, optional): Force erase even if booted
Example:
await simctlDeviceTool({ operation: 'erase', deviceId: 'ABC-123-DEF' })clone
Clone simulator with complete state preservation.
Parameters:
deviceId(string): Source device UDIDnewName(string): Name for cloned simulator
Example:
await simctlDeviceTool({ operation: 'clone', deviceId: 'ABC-123-DEF', newName: 'Snapshot' })rename
Rename simulator device.
Parameters:
deviceId(string): Device UDID to renamenewName(string): New display name
Example:
await simctlDeviceTool({ operation: 'rename', deviceId: 'ABC-123-DEF', newName: 'Production' })Related Tools
simctl-list: Discover simulators and their UDIDssimctl-app: Install and launch apps on devicessimctl-io: Take screenshots and record videos
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| operation | Yes | ||
| deviceId | No | ||
| waitForBoot | No | ||
| openGui | No | ||
| name | No | ||
| deviceType | No | ||
| runtime | No | ||
| force | No | ||
| newName | No |