A simple and naΓ―ve vsCode/Cursor plugin that lets you list and start iOS and Android emulators directly from Cursor's sidebar.
- π± List iOS Simulators: View all available iOS simulators from Xcode
- π€ List Android Emulators: View all available Android Virtual Devices (AVDs)
βΆοΈ Start Emulators: Start any emulator with a single click- π Real-time Status: See which emulators are currently running
- π Refresh: Manually refresh the emulator list on demand
- macOS only - iOS simulators are only available on macOS
- Xcode installed
- Xcode Command Line Tools (
xcrunmust be available in PATH)
- Cross-platform - Works on macOS, Windows, and Linux
- Android Studio installed
- Android SDK with emulator tools
- The extension automatically detects:
- Environment variables:
ANDROID_HOMEorANDROID_SDK_ROOT - Default installation paths:
- macOS:
~/Library/Android/sdk - Windows:
%LOCALAPPDATA%\Android\Sdkor%USERPROFILE%\AppData\Local\Android\Sdk - Linux:
~/Android/Sdkor~/android-sdk
- macOS:
- PATH environment variable (if tools are in PATH)
- Environment variables:
adbcommand available (for status detection)
Install directly from OpenVSX:
- Clone or download this repository
- Open the project in Cursor
- Run
npm installto install dependencies - Run
npm run compileto build the extension - Press
F5to open a new Cursor window with the extension loaded - Or package the extension:
npm install -g vsce && vsce package
Install from the VS Code Marketplace:
- Open Cursor
- Look for the "Emulators" view in the Explorer sidebar
- The view will automatically load available iOS and Android emulators
- Click on any emulator to start it
- Use the refresh button (π) to reload the emulator list
- π’ Filled circle: Emulator is currently running
- βͺ Outline circle: Emulator is stopped/available
β οΈ Warning icon: Tool (Xcode/Android Studio) not available- β Error icon: Error loading emulators
emulatorManager.refresh: Refresh the emulator listemulatorManager.startIOS: Start selected iOS simulatoremulatorManager.startAndroid: Start selected Android emulator
- Ensure Xcode is installed:
xcode-select --print-path - Verify
xcrunis available:xcrun --version - Make sure you have at least one iOS simulator installed in Xcode
- Verify Android Studio is installed
- Check that
emulatorcommand is in PATH:- macOS/Linux:
which emulator - Windows:
where emulator.exe
- macOS/Linux:
- Or set
ANDROID_HOMEenvironment variable:- macOS/Linux:
export ANDROID_HOME=$HOME/Library/Android/sdk export PATH=$PATH:$ANDROID_HOME/emulator export PATH=$PATH:$ANDROID_HOME/platform-tools
- Windows (PowerShell):
$env:ANDROID_HOME = "$env:LOCALAPPDATA\Android\Sdk" $env:PATH += ";$env:ANDROID_HOME\emulator;$env:ANDROID_HOME\platform-tools"
- macOS/Linux:
- The extension will also automatically check default installation paths
- Ensure you have created at least one AVD in Android Studio
- For iOS: Check that the simulator UDID is valid
- For Android: Verify the AVD name is correct and the emulator isn't already running
- Check Cursor's output panel for detailed error messages
src/
βββ extension.ts # Main extension entry point
βββ emulatorProvider.ts # TreeView provider for UI
βββ iosEmulator.ts # iOS simulator management
βββ androidEmulator.ts # Android emulator management
βββ cli.ts # Secure CLI command execution
βββ platform.ts # Platform detection utilities
βββ types.ts # TypeScript type definitions
npm install
npm run compile- Open the project in Cursor
- Press
F5to launch a new Cursor window with the extension loaded - Use the Debug Console to see output
- Check the Output panel for extension logs
This extension uses secure command execution practices:
- Uses
execFileinstead ofexecto prevent shell injection - Validates all inputs before executing commands
- Validates UDID and AVD name formats
- Implements timeout protection for long-running commands
MIT License - see LICENSE file for details.
Contributions are welcome!