1.0.1 (2026-08-10)
- Feat(screencapture): Default FPS to 30 instead of leaving it unset (#335)
- Feat: Dump UI via persistent devicekit server on android (#334)
- Fix: Remote allocate/release fixes (#332)
- Fix: Make remote allocate --name accept a single value (#331)
- Chore: Bump devicekit-android agent to 1.2.5 (#337)
1.0.0 (2026-08-01)
- Fix(ios): Find the right iOS resigner matching provisioning profile (#325)
- Feat(android): Report selected state in Android UI dump (#320), thanks to @sjy
- Fix(android): Add timeout on getprop in case adbd needs a kill-server (#322)
- Fix(ios): Correct iOS UI dump positions for elements in nested windows (#321, devicekit-ios#55)
- Fix(ios): Restore Xcode 26.5 testing support and fix simulator agent version checks and upgrades (#324, devicekit-ios#57)
0.3.89 (2026-07-30)
- Feat: Add windows arm64 build (#314, closes #305)
- Feat(android): Report enabled and checked state in android ui dump (#317, see mobilewright#252)
- Docs: How to run e2e tests (#316)
0.3.88 (2026-07-29)
- Fix: Remote mobilenext.ai device allocation response change (#309)
- Fix: Thread locales through device.apps.launch JSON-RPC handler (#303)
- Fix: Extend write deadline for app install/uninstall RPCs (#304)
0.3.87 (2026-07-15)
- Feat: Add mobilecli skill (#256), thanks to @lazynoda
- Fix: Include multiline TextView in iOS accessibility dump (#294), thanks to @Ernest94
- Fix: Upgrade golang.org/x/crypto and golang.org/x/net to address security alerts (#301)
0.3.86 (2026-07-13)
- Feat: Live bitrate + keyframe control via device socket (Android only) (#295)
0.3.85 (2026-06-17)
- Feat: Device.settings.apply with animations toggle (#287)
0.3.84 (2026-06-15)
- Fix: Include clickable and checkable elements in android view tree dump (#284)
0.3.83 (2026-06-15)
- Fix: Scale press-keys RPC timeout by key count (#281)
- Fix: Match agent bundle id by suffix to support re-signed runner (#280)
- Chore: Update devicekit-ios agent to 0.0.20 (#282)
0.3.82 (2026-06-14)
- Feat: Update agent automatically on install command when the installed version differs (#278)
- Feat: Add agent uninstall command (#277)
- Feat: Add placeholder field to android's dump ui (#276)
- Feat: Android now returns the version and versionCode of apps in list apps (requires devicekit-android installed)
- Feat: Return installed app metadata from apps install (#274)
0.3.81 (2026-06-12)
- Fix: Wait a bit for android foreground app, it might be null if there's a transition animation (#271)
- Fix: Nest elements in 'dump ui' command, it was flat (#267)
- Feat: Add --bitrate to screencapture command (#269)
- Feat: Add --activity for apps launch on android (#272)
0.3.80 (2026-06-11)
- Feat: Support --insecure-storage if keychain/gnome-keyring doesn't exist (#266)
- Fix: Add missing webview element (#265)
- Feat: Add "io keys" command for pressing keys with modifiers (#264)
- Feat: Add --provider to mobilecli auth login (#263)
0.3.79 (2026-06-09)
- Fix: Await promises in WebView JS eval via token-based poll loop (#261)
- Fix: Use callAsyncJavaScript instead of evaluateJavaScript for webview evals (#258)
- Fix: Webview race condition getting port if app not yet in foreground (#260)
- Fix: Increase websocket message size to 8MB (#257)
0.3.78 (2026-06-04)
- Android: Wrongly wrap IIFE expressions around webview evals (#254)
0.3.77 (2026-06-03)
- Feat: Add device.webview.url and device.webview.title JSON-RPC methods (#251)
- Fix: Finalize android screenrecord mp4 on ctrl-c by signaling on-device process (#249)
0.3.76 (2026-06-02)
- Feat: Webview support for real iOS devices (#246)
- Feat: Webview support for iOS simulators and Android real devices and emulators (#244)
- Fix: Recover from panics in websocket handlers to prevent server crash (#240)
0.3.75 (2026-05-26)
- General: File system support for ls, mkdir, rm, push, pull and get app path (#228)
- General: Fix websocket timeouts after around 50-60 seconds (#239)
0.3.74 (2026-05-17)
- Android: Use devicekit instrumentation for android view tree dump (#233)
0.3.73 (2026-05-12)
- Android: Include elements with
resource-idin UI element tree dump even when text and content-desc are empty
0.3.72 (2026-05-11)
- Android: Fix launching apps installed with
-t(test) flag (#225)
0.3.71 (2026-05-05)
- Android: Fix launching apps on emulators with
hw.keyboard = noby passing--pct-syskeys 0to monkey
0.3.70 (2026-05-04)
- iOS: Fix terminating simulator runner and register shutdown hook on agent start (#217)
- iOS: Update devicekit-ios agent to 0.0.18 (#220)
- iOS: Include
placeholderfield in dump UI view tree response
0.3.69 (2026-05-01)
- iOS: update go-ios library to v1.0.211 which fixes iOS 26 on OSX Tahoe (#212)
0.3.68 (2026-05-01)
- General: Add
mobilecli remotecommands for allocating, listing, and releasing remote devices, deprecatemobilecli fleet - General: Move
crashescommands underdevice crashes, deprecate rootcrashes(#209)
0.3.67 (2026-04-27)
- General: Validate artifact host for upload and download to address codeql ssrf alerts (#207)
- iOS: Fix race condition when assigning device kit agent a random port for iOS Simulator (#204)
- iOS: Remove redundant HOME button press after launching device kit agent (#203)
0.3.66 (2026-04-16)
- General: Add
mobilecli agent installcommand for automatically installing devicekit-ios and devicekit-android (#196) - iOS: Disable HTTP keep-alives to fix real device port forwarding (#197)
- iOS: Replace WebDriverAgent with devicekit-ios agent (#196)
0.2.0 (2026-04-13)
- General: Move npm package from
@mobilenext/mobileclitomobilecli(#191) - General: Update npm packages under 'test' directory (#192)
0.1.64 (2026-04-02)
- General: Add
--waitand--timeoutflags tofleet allocatefor polling until device is ready (#189)
0.1.63 (2026-04-02)
- General: Handle provider field as object in remote devices response (#188)
0.1.62 (2026-03-27)
- General: List and fetch crash reports via CLI and JSON-RPC (#187)
- iOS: Fetch crash reports from real devices via Apple crashreport service (#187)
- iOS: Read .ips crash reports from simulator DiagnosticReports directory (#187)
- Android: Parse native and Java crash reports from adb logcat crash buffer (#187)
0.1.61 (2026-03-20)
- General: Fixed oauth login with device code flow (#185)
- iOS: Use openssl instead of security cms for resigning (#182)
- iOS: Support locale when launching apps (#181)
- Android: Support locale when launching apps (#181)
0.1.60 (2026-03-03)
- General: Provide information like time-elapsed, and download performance for screen recording (#180)
- iOS: Support mp4 screen recording across iOS real devices and iOS Simulators (#179)
- Android: Support mp4 screen recording across Android real devices and Emulators (#179)
0.1.59 (2026-02-25)
- General: Allocate remote Android and iOS devices on Mobile Fleet, see https://mobilenext.ai (#176)
0.1.58 (2026-02-14)
- iOS: Click HOME button three times after Broadcast Extension starts running (#27afdbe)
0.1.57 (2026-02-14)
- General: Support for daemonizing (running in background) using -d or --daemon (#169)
0.1.56 (2026-02-07)
- General: Added .model to "devices" and "device info" commands (#166)
- General: Refactored jsonrpc methods into namespaces ("device", and "devices") (#167)
- General: Added
device.apps.foregroundmethod to get the currently active application (#167)
BREAKING CHANGES:
- General: All JSON-RPC method names now use
device.*prefix for better organization. Migration table:devices→devices.listscreenshot→device.screenshotscreencapture→device.screencaptureio_tap→device.io.tapio_longpress→device.io.longpressio_text→device.io.textio_button→device.io.buttonio_swipe→device.io.swipeio_gesture→device.io.gestureio_orientation_get→device.io.orientation.getio_orientation_set→device.io.orientation.setdevice_info→device.infodevice_boot→device.bootdevice_shutdown→device.shutdowndevice_reboot→device.rebootdump_ui→device.dump.uiapps_launch→device.apps.launchapps_terminate→device.apps.terminateapps_list→device.apps.listapps_foreground→device.apps.foregroundurl→device.url
0.0.55 (2026-02-02)
- iOS: Support getting foreground app and its version (#165)
- Android: Support getting foreground app and its version (#165)
0.0.54 (2026-02-01)
- General: Screencapture over /rpc and /ws now returns a redirect url such as /session?s= (#161)
- iOS: Many devicekit-ios start optimizations (#162)
- iOS: Fix potential race condition when checking availability of wda (#163)
- iOS: Cache ios devicename and version for faster 'devices' command (#160)
0.0.53 (2026-01-28)
- iOS: Fixed a bug where tcp forwarders were created on every request for mjpeg (#158)
- iOS: Lazily creating mjpeg tcp forwarder only when needed (#158)
- iOS: Multiple real devices would overwrite each other's wda tcp forwarder (#158)
- iOS: Keep running WebdriverAgent xcuitest as long as "mobilecli server" is running (#158)
- iOS: Graceful shutdown and improved tunnel closing (#158)
- iOS: Calling "device info" on iOS Simulator would fail after first time (#158)
0.0.52 (2026-01-27)
- General: Websocket support for jsonrpc at /ws, single connection multiple requests (#154)
- iOS: Detect devicekit-ios process already running to Start Broadcasting a 2nd time (#156)
- iOS: Return more elements in "dump ui", eg Button with no label (#155)
0.0.51 (2026-01-25)
- General: Plenty of code cleanups and refactoring for smaller and more maintained code (#144)
- General: Merged the port ranges used for wda and wda's mjpeg (#147)
- General: Graceful server shutdown on sigint/sigterm (#151)
- iOS: Support AVC screencapture on real iOS devices via
devicekit-ios(#145) - iOS: Include TextField/SearchField/Switch/Button elements in dump UI results (#155)
0.0.50 (2026-01-13)
- General: Add apps_launch and dump_ui methods to jsonrpc (5163c8a)
- General: Add apps_list and apps_terminate methods to jsonrpc (#142)
- iOS: Fix missing tunnel when listing apps (#140)
- iOS: Fixed potential double-tunnel creation and error (#140)
0.0.49 (2026-01-01)
- General: Add configurable --duration flag to longpress command (#139)
0.0.48 (2025-12-17)
- Android: Added "no-qt-window", "netspeed" and "netdelay" to android emulator start; fixes inconsistent frame-rate (#137)
0.0.47 (2025-12-10)
- General: Don't look for iOS simulators on windows or linux (#133)
- General: Missing 'state' in device info (#135)
- Android: Removed "no-window" again from emulator start, headless is horribly slow (#136)
0.0.46 (2025-12-08)
- General: Allow negative coordinates when swiping (#130)
- iOS: Increase timeout to 60 seconds for dump ui (#131)
0.0.45 (2025-12-07)
- General: Removed command specific flags from root help (#129)
- Android: Support avc format (h264 codec) for screencapture (1f35139)
0.0.44 (2025-12-01)
- General: Bump webdriveragent to 10.2.5 (#125)
- iOS: Support non-ascii characters in io text (#128)
- iOS: Send home button after wda start in simulator (#127)
0.0.43 (2025-11-30)
- General: Now installating dependencies with --ignore-scripts (#122)
- General: Support raw view tree ui dumps with --format flag (#121)
- iOS: Kill wda if StartAgent times out launching on simulator (#124)
- iOS: Support installing wda from local directory via environment variable (#123)
- Android: Run new avd without a window, enable snapshot-loading (#99)
0.0.42 (2025-11-27)
- iOS: Fix mjpeg framerate wda race condition (#119)
- iOS: Fix multiple real devices would override each other's pointers (#120)
0.0.41 (2025-11-26)
- General: Cache preflight cors check for a day (#114)
- General: Fix wrong error message when simulator/emulator device is offline (#107)
- iOS: Optimize "simctl list" performance by eliminating it (#115)
- iOS: Add wda session caching for faster input operations (#111)
- iOS: Support scale parameter for mjpeg (#110)
- iOS: Add progress notifications on wda installation (#109)
- Android: Improve "device list" performance by removing dependency on avdmanager (#116)
- Android: Fix screenshot from multi-display Android (like Pro Fold 9) (#113)
- Android: Make sure ANDROID_HOME path is valid (#108)
- Android: Faster emulator boot (removed -no-snapshot-load) and without window (#117)
0.0.40 (2025-11-20)
- iOS: Start tunnel before apps launch and terminate on iOS 17+ (#106)
0.0.39 (2025-11-20)
- General: Bump glob from 10.4.5 to 10.5.0 in /test (#105)
- General: Bump golang.org/x/crypto from 0.41.0 to 0.45.0 (#104)
- General: Bump js-yaml from 4.1.0 to 4.1.1 in /test (042098c)
- General: Upgrade golang to 1.25.0 (#102)
- General: Update go-quic to 0.49.1 (5510c06)
0.0.38 (2025-11-17)
- Android: Fix broken adb access to emulator-%d (#100)
0.0.37 (2025-11-15)
- General: New and more detailed --help (#96)
- General: Make device_reboot available through jsonrpc (#97)
- Android: Translate Android API levels to Android release versions in device list (#98)
0.0.36 (2025-11-14)
- General: Progammatically boot and shutdown emulators and simulators (#95)
- General: Offline devices need to be booted manually prior to use (#95)
0.0.35 (2025-11-13)
- General: Support "type", "platform" and "includeOffline" in jsonrpc for 'devices' command (#94)
- General: Changed "devices --all" to "devices --include-offline" for consistency and clarity (#94)
0.0.34 (2025-11-13)
- General: Support --type and --platform in list devices command (#81)
- iOS: List simulators that have been initialized once (they boot fast) in "devices --all" (#81)
- iOS: Add an icon and a display name for installed webdriveragent (#93)
- Android: List offline emulators in "devices --all" (#81)
0.0.33 (2025-11-01)
- General: Fix launching mobilecli using npx on macos after split to arm64/amd64 (#91)
0.0.32 (2025-11-01)
- General: Use USERPROFILE and LOCALAPPDATA on Windows to locate adb.exe without relying on PATH (#88)
0.0.31 (2025-10-23)
- Android: CRLF was getting in the way of mjpeg on Windows (#86)
0.0.30 (2025-10-23)
- General: Do not attempt fetching iOS simulators if not running on macos (#85)
- iOS: Skip tunnel creation if running on iOS 16.x and below (#84)
- Android: CRLF was getting in the way of screenshots on Windows (#85)
0.0.29 (2025-10-21)
- General: Split mac binaries into arm64 and amd64 for smaller packages (06d7e89)
0.0.28 (2025-10-07)
- General: Statically linked binaries for linux (#79)
0.0.27 (2025-10-05)
- General: Fix potential zip-split security issue when unpacking wda (#76)
- iOS: Set MJPEG server to stream at 30 fps instead of default 10 (#78)
- iOS: Fix buggy 'device info' on an iOS device when wda wasn't running prior (#77)
0.0.26 (2025-10-02)
- iOS: Added swipe command, use "mobilecli io swipe" (#72)
- Simulator: Fixed 'mobilecli device info', it requires wda prior (#73)
- Android: Added swipe command, use "mobilecli io swipe" (#72)
0.0.25 (2025-09-26)
- General: fixed '--version' on windows and linux distributables (#69)
- General: renamed 'dump source' to 'dump ui' (#68)
- General: upgraded golang to 1.24.7 (#66)
- iOS: support orientation get and set to 'landscape' and 'portrait' (#67)
- iOS: removed a printf in 'dump ui' that was tainting the json output (#68)
- Android: support orientation get and set to 'landscape' and 'portrait' (#67)
0.0.24 (2025-09-23)
- iOS: support longpress (#54)
- iOS: dump ui hierarchy using wda's /source (#53)
- iOS: launch wda on different ports, to enable multiple simulators and real devices on the same host (#52)
- Android: support longpress (#54)
- Android: dump ui hierarchy using uiautomator (#53)
0.0.23 (2025-09-18)
- General: all logs moved to --verbose (#48)
- iOS: fixed "ENTER" io button command (#50)
- iOS: added version to device list response, for both real devices and simulators (#51)
- Android: added OS version to device list response (eg "16") (#51)
0.0.22 (2025-09-10)
- iOS: launch wda on real devices if needed (#45)
- iOS: automatically detect wda installed device, regardless on bundle identifier (#45)
0.0.21 (2025-09-08)
- Android: return the avd name if emulator supports (eg 'Pixel 5' instead of 'sdk_gphone64_arm64') (#42)
- Android: support for POWER and APP_SWITCH buttons (#44)
0.0.20 (2025-09-04)
- iOS: fixed potential race-condition in waiting for wda installation on simulator (#41)
- Android: try $HOME/Library/Android if $ANDROID_HOME is not configured (#40)
- Android: support --scale and --quality for
screencapturemjpeg streaming (#39)
0.0.19 (2025-09-03)
- General: run tests on iOS 16, 17 and 18 simulators upon pull-request (#35)
- General: upgraded go-quic libraries for security (5d35293)
- iOS: embedded go-ios as a library, go-ios is no longer required to be installed before (#34)
0.0.18 (2025-08-26)
- iOS: proper handling and forwarding of port 9100 (#33)
- Simulator: use localhost:9100 properly for mjpeg streaming (#33)
0.0.17 (2025-08-25)
- iOS: fix locating go-ios executable when creating tunnel (#32)
0.0.16 (2025-08-25)
- General: fix zipslip security warning (c21e7f0)
- General: version command showed 'dev' after refactor of cli package (0bb104f)
- iOS: check for go-ios path through GO_IOS_PATH env (1465914)
0.0.15 (2025-08-25)
- General: refactored all commands into "cli" package (8115a787)
- General: reimplemented all tests into golang, added coverage tests (4390b11)
- General: better error responses for jsonrpc protocol (b7ca4a8)
- iOS: automatically start webdriver agent if installed on device (02025dd)
- iOS: automatically start port forwarding for port 8100 using a dynamic source port (02025dd)
- iOS: automatically start userland tunnel for iOS 17 (02025dd)
- iOS: fixed bad parsing of go-ios output if warning was printed (2150f27)
- iOS: use "ios" and fallback to "go-ios" (2150f27)
- iOS: support multiple custom gestures to be passed to device (b7ca418)
- Simulator: automatically donwload webdriveragent for simulator (0dbe361)
- Simulator: automatically install webdriveragent on simulator if needed (0dbe361)