by dungngminh
Utilities for Android emulators, iOS simulators and real devices: launch, stream, control, record and automate them from a desktop app, TUI and CLI
# Add to your Claude Code skills
git clone https://github.com/dungngminh/simutilLast scanned: 10/17/2026
{
"issues": [
{
"file": "README.md",
"line": 98,
"type": "remote-install",
"message": "Install command (remote install script piped to a shell — review the source before running): \"curl -fsSL https://raw.githubusercontent.com/dungngminh/simutil/main/app/packagi\"",
"severity": "low"
}
],
"status": "PASSED",
"scannedAt": "2026-10-17T08:18:34.113Z",
"npmAuditRan": true,
"pipAuditRan": true,
"promptInjectionRan": true
}See how simutil compares with popular alternatives.
simutil is an open-source ai agents skill for AI coding assistants such as Claude Code, Codex CLI, and ChatGPT, built by dungngminh. Utilities for Android emulators, iOS simulators and real devices: launch, stream, control, record and automate them from a desktop app, TUI and CLI. It has 1,189 GitHub stars.
Yes. simutil passed SkillsLLM's automated security scan — a dependency vulnerability audit plus prompt-injection heuristics — with no high-severity issues. You can read the full report in the Security Report section on this page.
Clone the repository with "git clone https://github.com/dungngminh/simutil" and add it to your Claude Code skills directory (see the Installation section above).
simutil is primarily written in Dart. It is open-source under dungngminh on GitHub, so you can review or fork the full source.
Yes. SkillsLLM lists many other AI Agents skills you can browse and compare side by side. Open the AI Agents category from the badge at the top of this page, or use the Related Skills and comparison links further down to weigh simutil against similar tools.
No comments yet. Be the first to share your thoughts!
30 days in the Featured rail · terms & refunds
⚠️ Third-Party Software Notice
This skill is third-party open-source software developed and hosted independently on GitHub. SkillsLLM is an informational directory and does not control or maintain the underlying repository.
Any security checks, ratings, or warnings displayed by SkillsLLM are automated and limited in scope. They do not constitute a security certification or guarantee that the software is safe, error-free, or free from malicious code, vulnerabilities, compromised dependencies, or prompt-injection risks.
Review the source code, permissions, dependencies, and configuration before installing or running any third-party skill. Use is at your own risk. To the maximum extent permitted by applicable law, SkillsLLM is not liable for losses arising from third-party software.
Automated security scan — not a certification.
Mobile development means juggling Android Studio, Xcode, adb, simctl,
scrcpy and a pile of scripts just to get a device up and look at it.
SimUtil puts those chores in one place, without opening an IDE:
simutil CLI — list, launch and shut down devices, connect over Wi-Fi,
read Logcat and run your own tools from scripts or the terminal.adb, simctl, devicectl)
as libraries for your own tooling.Runs on macOS, Linux and Windows. iOS features need macOS (Xcode).
https://github.com/user-attachments/assets/b0463741-6d31-496d-99a8-264a5e69457a
| Utility | Desktop | CLI | |
|---|---|---|---|
| Devices | Start / stop emulators and simulators, headless or with their window | ✓ | ✓ |
| Android launch options: cold boot, no audio | ✓ | ✓ | |
| Wipe data or delete an emulator / simulator | ✓ | ||
| Slim iOS simulators (about 1 GB of memory instead of 4 GB) | ✓ | ||
| Stream & control | Many devices side by side, grid or spotlight layout | ✓ | |
| Real Android phones over USB or Wi-Fi | ✓ | ||
| Touch, swipe, navigation buttons and keyboard typing on every stream | ✓ | ||
| Real iPhones / iPads connected by USB: device frame, screenshots, recording with sound (view only, macOS) | ✓ | ||
| Built-in scrcpy server, no separate install | ✓ | ||
| Connect | Wireless ADB by QR code, pairing code or IP | ✓ | ✓ |
| Capture | Screenshot one device or the whole grid | ✓ | |
| Record one device or the whole grid (native 60 fps on macOS) | ✓ | ||
| Apps | Install by dropping an .apk / .app / .ipa on a device |
✓ | |
| Convert an iPhone build so it runs on a simulator (Apple Silicon) | ✓ | ||
| Test & automate | Scenario studio: YAML steps (tap by label, swipe, type, assert) on many devices at once | ✓ | |
| MCP server for Claude Code, Codex, Cursor, Gemini CLI, VS Code | ✓ | ||
| JSON output and a full command schema for scripts and agents | ✓ | ||
| Debug | Logcat with filtering | ✓ | |
| Custom tools (scrcpy, Maestro, scripts) as YAML plugins | ✓ | ||
| Clean up | Clear Xcode DerivedData after a size preview (macOS) | ✓ | ✓ |
Installers are on the releases page
(app-v* tags). The app updates itself in place from where you installed it.
macOS (Monterey or later; pulls in adb and ffmpeg):
brew update
brew tap dungngminh/simutil
brew install --cask simutil-desktop
Or download SimUtil-macos.dmg and drag SimUtil into Applications.
Windows: run SimUtil-windows-x64-setup.exe from the
latest desktop release.
The installer offers to install Android platform-tools and FFmpeg.
Linux (x86_64 AppImage; installs adb, ffmpeg and FUSE, re-run to update):
curl -fsSL https://raw.githubusercontent.com/dungngminh/simutil/main/app/packaging/linux/install.sh | bash
More, including the MCP tool list: app/README.md.
simutil CLI# macOS / Linux
curl -fsSL https://raw.githubusercontent.com/dungngminh/simutil/main/install.sh | bash
# Homebrew
brew tap dungngminh/simutil && brew install simutil
# pub.dev
dart pub global activate simutil
Windows (PowerShell):
powershell -ExecutionPolicy Bypass -Command "iwr -useb https://raw.githubusercontent.com/dungngminh/simutil/main/install.ps1 | iex"
simutil upgrade updates it the same way you installed it. simutil checks for
a new release at most once a day; set SIMUTIL_NO_UPDATE_CHECK=1 to turn that off.
simutil list -v # devices on every platform, grouped
simutil list --json # for scripts and agents
simutil launch <device-id> # boot (alias: start)
simutil launch <id> -c --no-audio # cold boot, no audio (Android)
simutil launch <id> --headless # no emulator window / Simulator app
simutil shutdown <device-id> # alias: stop
simutil wipe <device-id> # erase data of a shut-down device (asks y/N)
simutil delete <device-id> -y # delete it; -y skips the prompt
simutil android device list -r # running adb devices only
simutil plugin run scrcpy mirror -d emulator-5554
simutil schema # every command as JSON, for agents
Run simutil with no arguments for an interactive device picker with ADB
tools, Logcat and plugins. simutil <command> --help lists each command's flags.
Wire external tools (scrcpy, Maestro, your own scripts) to a device in
~/.simutil/settings.yaml, no code changes needed:
plugins:
- id: scrcpy
label: scrcpy
availability:
command: scrcpy
args: [--version]
commands:
- id: mirror
label: Screen Mirror
command: scrcpy
args: [-s, "{device.id}"]
platforms: [android]
requires_running: true
Full reference: docs/plugins.md.
| Host OS | Android emulators & devices | iOS simulators & devices |
|---|---|---|
| macOS | Yes | Yes (requires Xcode) |
| Linux | Yes | No |
| Windows | Yes | No |
iOS support uses Apple's tools (xcrun simctl, xcrun devicectl), which only
exist on macOS. On Xcode 27+, a simulator opens in DeviceHub.app; earlier
versions use Simulator.app.
Monorepo (pub workspace); each package is versioned and published separately:
| Package | Contents |
|---|---|
app |
SimUtil Desktop: multi-device streaming, recording, scenarios, MCP server |
simutil |
The simutil CLI |
simutil_core |
Models, CommandExec, DeviceService |
simutil_adb |
Android: devices, wireless ADB, scrcpy session, Logcat |
simutil_apple |
Apple: simulators, physical devices, Xcode cache |
simutil_plugins |
YAML plugin catalog and runner |
simutil_shared |
Shared app layer: settings, app state, changelog |
simutil_h264 |
Native H.264 decoding into Flutter textures |
git clone https://github.com/dungngminh/simutil.git
cd simutil
flutter pub get # whole workspace, desktop app included
dart run melos run check # analyze + Dart and Flutter tests
cd app && flutter run -d macos
Fork, branch, open a Pull Request. Architecture notes: docs/ai/architecture.md.
MIT — see LICENSE