simvyn: One Dashboard for iOS Simulators, Android Emulators and USB Devices
Universal mobile devtool for Agents & Humans - control iOS Simulators, Android Emulators, and real devices from a single dashboard and CLI
At a glance
- What is it?
- simvyn is a TypeScript devtool that puts simulator, emulator and physical device control behind a local web dashboard and a matching CLI. It is convenient for anyone already juggling simctl, adb and Xcode, and it is macOS-centric by design.
- Who is it for?
- Adopt simvyn if your team runs mixed iOS and Android device work on macOS and wants one place to install builds, read logs and set location without switching between simctl, adb and Xcode. Skip it if your work is Android-only on Linux, or if you need a CI-grade headless automation framework rather than a developer dashboard.
- Can I use it commercially?
- Yes. MIT is a permissive licence: you can use, modify and sell software built on it, as long as you keep its copyright and licence notices.
- Is it still maintained?
- Yes. The repository last received commits 2 days ago.
- What is it written in?
- Mainly TypeScript, according to GitHub's language statistics.
Answers come from the project's GitHub data, last synced on September 15, 2026, and from our analysis. They are not legal advice.
DEEP OPEN-SOURCE ANALYSIS
The problem simvyn addresses is device control fragmentation
Mobile development splits device work across two unrelated toolchains. iOS Simulator control goes through Xcode and simctl. Android Emulator and device control goes through adb and Android Studio. A developer testing the same build on both platforms ends up with two mental models, two sets of commands, and no shared view of what is currently running. Physical devices add a third path, since a USB-connected phone is not managed by either simulator UI.
simvyn's answer is a single local server that discovers simulators, emulators and USB-connected physical devices, then exposes them through a web dashboard and a CLI. The README describes the target audience indirectly through its feature list: install and launch apps, stream logs, set GPS coordinates, capture screenshots, inspect SQLite databases, send push payloads. That is the working set of a mobile developer or QA engineer doing manual verification, not the working set of a CI pipeline. The repository topics name claude-code, codex and llm, which suggests the author also intends agent-driven control of devices, though the README does not document an agent-specific interface beyond the CLI itself.
How the local server, dashboard and CLI fit together
Running npx simvyn starts a local server, opens the web dashboard in a browser, and performs automatic discovery of connected devices. Device state updates reach the dashboard over WebSocket, and the same channel carries real-time log streaming. The README states that log history is paginated with virtual scrolling, which implies the server retains a buffer rather than forwarding raw output only.
The CLI is described as covering every feature headlessly via simvyn <command>. That is the architectural claim worth noting: the dashboard is not the only surface, and anything the UI does is meant to be reachable from a shell. The feature set maps closely onto existing platform tools. Device management wraps simulator creation, boot, shutdown and erase. App management handles IPA, APK and .app installation. Location simulation plays GPX and KML routes. Database inspection reads SQLite tables plus SharedPreferences and NSUserDefaults. Each of these corresponds to something simctl, adb or xcrun already does, so simvyn is best understood as a coordinating layer rather than a new device runtime.
Getting it running: Node version, install path and platform limits
The README gives two installation routes. A global install uses npm install -g simvyn. A one-time run uses npx simvyn, which starts the server and opens the dashboard without a persistent install. Requirements are explicit: Node.js >= 22.12.0, and either macOS for full iOS and Android support or Linux for Android only.
The Linux restriction is the first thing to check against your environment. iOS Simulator control depends on Apple tooling, so a Linux host cannot manage simulators regardless of what simvyn exposes in its UI. The README does not describe a Windows path at all, so Windows users have no documented support. Beyond the install commands, the material does not list configuration keys or environment variables for the server, and it does not document CLI subcommand syntax beyond the simvyn <command> pattern. Tool Settings is described as covering server configuration, storage management, diagnostics and debug reports, which suggests configuration happens through the dashboard rather than a config file, but that is an inference from the feature description, not a documented interface.
Where simvyn stops being the right tool
The feature list is oriented toward interactive work. Collections bundle device actions into reusable sequences and apply them to multiple devices, which is the closest thing to automation in the README, but there is no mention of test runners, assertions, parallel device orchestration or CI integration. If your requirement is running an instrumented test suite across a device matrix on every commit, simvyn as documented does not address that. You would still need a framework built for it.
The second limitation is platform coverage. Android-only teams on Linux get a subset of the value with no iOS counterpart, and the README does not explain what changes on Linux beyond the Android-only label. The third is licence clarity. The repository metadata supplied here lists the licence as unknown, while the README embeds an npm licence badge. Those two signals conflict, and the badge image alone does not tell you which licence text applies. Until you read the actual licence file or the npm package metadata, you cannot make a distribution decision. That matters if simvyn ends up in a commercial build pipeline or a shipped developer environment.
How simvyn differs from Maestro and from raw platform tooling
Maestro is the obvious comparison for anyone doing cross-platform mobile work, and the difference is structural rather than cosmetic. Maestro is a test automation framework: you write flows in YAML, run them against a device, and get pass or fail. simvyn does not run flows or assert anything. It gives you a dashboard and CLI to drive devices and inspect their state, and the Collections feature sequences actions without evaluating outcomes. Choosing between them depends on whether you want verification or control. A team writing regression tests wants Maestro. A developer who needs to install a build, set a fake location, watch logs and check a SQLite table wants simvyn.
The comparison against raw tooling is different. simctl and adb are always available, scriptable, and documented by Apple and Google. simvyn's advantage is that a single interface spans both platforms and adds a UI for things that are awkward on the command line, such as route playback with speed control or an interactive map for coordinates. Its disadvantage is that it is a third-party layer over tools that change with each Xcode and Android SDK release. When Apple alters simulator behaviour, simvyn has to catch up.
Release cadence and what maintenance looks like in practice
The release history shows v2.6.4, v2.6.5 and v2.6.6 between March and April 2026, with the last push to the repository in September 2026. That pattern suggests active development with patch-level releases rather than long gaps, though the supplied material does not include changelogs, so what each version changed is not verifiable here. The version numbering staying in the 2.6.x line across three releases points to incremental fixes rather than breaking changes.
Upgrade cost is low by construction. A global npm install is replaced by npm install -g simvyn, and npx simvyn always pulls the current published version. There is no documented migration step between 2.6.x releases. The real maintenance burden is environmental: the Node.js >= 22.12.0 floor means older CI images and developer machines need updating before simvyn runs at all, and macOS users need a working Xcode and Android SDK installation underneath, since simvyn coordinates those tools rather than replacing them. On licence, the unknown metadata means you should read the package's licence file before assuming permissive terms; nothing in the supplied material settles that question, and this is not legal advice.
Who should install simvyn and what to check first
The strongest fit is a macOS-based mobile developer or small QA team working across both iOS and Android, where switching between Xcode, simctl, adb and Android Studio is a daily friction. The unified device list, drag-and-drop app installation and combined log viewer address that friction directly. The CLI surface means the same actions can be scripted, so the dashboard does not become a dead end for anyone who prefers a terminal.
The weakest fit is an Android-only Linux user who needs none of the iOS features, a Windows user who has no documented support path, or a team looking for automated test execution rather than device control. Before installing, confirm three things: the licence terms on the npm package, that your Node runtime meets 22.12.0, and that the CLI subcommands you need are documented for your platform. The README's feature list is broad, but its treatment of CLI syntax and server configuration is thin, so a short trial against your actual workflow will tell you more than the feature list does.
Editorial conclusion
Adopt simvyn if your team runs mixed iOS and Android device work on macOS and wants one place to install builds, read logs and set location without switching between simctl, adb and Xcode. Skip it if your work is Android-only on Linux, or if you need a CI-grade headless automation framework rather than a developer dashboard. Before committing, verify the licence field on the npm package, confirm the Node.js >= 22.12.0 requirement against your toolchain, and check whether the CLI surface covers the device actions your scripts already perform.
Community notes