
? Control Android & iOS devices: Capture screen, manage apps, simulate input, examine system logs etc.
⚡️ Speed++ Are you an app developer or a tester? Boost your effectivity, discover new tools!
? Control Android and iOS devices or Emulators/Simulators using terminal commands
? Take screeshots, change device settings, gather app & device information
Manage mobile applications - install, restart, wipe data and much more
? Handle multiple devices effortlessly - select from list or target all connected devices
⏳ Save your precious time - stop doing repetitive tasks manually
Automatic update - get new features and fixes ASAP
? Maybe you just want to skip to Installation?
? Android Commands
? iOS Commands
? Do you want to share Feedback or Contribute?
Note: This tool targets macOS for compatibility, but most interactions should work on any Unix system.
git clone https://github.com/IntergalacticPenguin/mobile-toolkit.gitopen -e ~/.zshrc
PATH=$PATH:/Users/dummyuser/Library/Android/sdk/platform-tools export PATHiscreenshot, installation of all required tools will be initiated automatically (jq and go-ios)open -e ~/.zshrc
PATH=$PATH:/Users/dummyuser/mobile-toolkit/android PATH=$PATH:/Users/dummyuser/mobile-toolkit/iosexport PATH to the end of the fileascreenshot Save screenshot to ~/Desktopascreenshot -a Take screenshot on all connected devicesarecord Record screenctrl + carecord <custom-name> Specify your own filename by passing it as argumentarecord -l Use legacy -l option to record using ADB instead of Scrcpyapaste "[email protected]" password1 "5005 1002 3332 1112" "2/19" 5004
apaste <text> Insert text into currently focused fieldapaste "[email protected]" password1 Every additional argument will be inserted into subsequent fieldapaste "This is sample multi-word text." use "" to insert multi-word text into one fieldapaste -l Insert "Lorem Ipsum paragraph"apaste -a <input-text> Insert any text input (options displayed above) on all connected devicesapaste -a -l Insert "Lorem Ipsum paragraph" on all connected devicesaurl "google.com" Open link in web browser or corresponding applicationaurl -a "google.com" Open link in web browser or corresponding application on all connected devicesadarkmode Toggle system dark modeatalkback Toggle TalkBack screen reader accessiblity optionabounds Toggle UI layout boundsaanimationspeed set slower animation speed or restore defaultaanimationspeed <speed> set animation speed multiplierafontscale set large font scale (1.3x bigger than default) or restore defaultafontscale <scale> set font scale multiplieracontrol start scrcpy sessionalaunch List third-party apps and choose one to run italaunch -s List all available apps (including os pre-installed) and choose one to run italaunch com.dummy.package.name.app Run app by package nameaappinfo List foreground app information
aappinfo com.dummy.package.name.app Target specific app by passing package name as argumentakill Restart the foreground appakill com.dummy.package.name.app Target specific app by passing package name as argumentaerase Delete all local data of the foreground app and restart itaerase com.dummy.package.name.app Target specific app by passing package name as argumentainstall some-app-file.apk Install and run .apkainstall -a some-app-file.apk Install and run .apk on all connected devicesauninstall Uninstall third-party app, choose from the listauninstall com.dummy.package.name.app pass package name as argumentauninstall -w Uninstall all-third party packages
agoogleplay "Dummy App" Search for "Dummy App" on Google Playagoogleplay Search for currently foreground app on Google Playabuildproject Build, install and run Android project located in current directoryabuildproject <relative-path> Build, install and run Android project located in <relative-path>aoptions Open system settings on a specific activityaoptions A Choose from exhaustive list of all available optionsaoptions 1,2,3... | dev | locale | date | wifi | storage | power Use a preset, choose onealog Print system log outputalog -f <package-name> Filter log by package nameRequired: Make terminal use Android Studio Java
Edit .bash_profile (or .zshrc if you have zsh shell) open -e ~/.bash_profile or open -e ~/.zshrc
Add the following line at the end of the file export JAVA_HOME='/Applications/Android Studio.app/Contents/jre/jdk/Contents/Home'
Android emulator supports all listed scripts by default + extra actions listed below
aemulator <option> Handle various Android emulator activites
start - choose and launch installed emulatorgprs | edge | 3g - simulate network latency, choose onecall <number> - receive fake callsms <number> <text> - receive fake smsgps <lat> <long> - set manual GPS locationbattery <0-100> - set battery leveltelnet <command> - call command via telnet
event | redir | sensor | physics | finger | rotate | fold | unfold... see Android emulator documentation for more informationatestmonkey Default test with random seed and 15000 input eventsatestmonkey <event-count> Test with random seed and custom input event countatestmonkey <event-count> <seed> Test with custom seed and custom event countatestmonkeykill in case something goes wrong

iscreenshot Save screenshot to ~/Desktopiscreenshot -a Take screenshot on all connected devicesRequired: Install videosnap -> download and install videosnap-0.0.8.pkg
Required: Install ffmpeg brew install ffmpeg
irecord Record screenctrl + cirecord on M1 macs as it is currently not workingiinstall some-app-file.ipa Install .ipa (make sure to use properly signed build)iinstall -a some-app-file.ipa Install .ipa to all connected devicesiuninstall Uninstall third-party app, choose from the listiuninstall com.dummy.package.name.app pass bundle name as argumentiuninstall -w Uninstall all third-party packages
ilaunch List third-party apps and choose one to run itilaunch -s List os pre-installed apps and choose one to run itilaunch com.dummy.bundle.id.app Run app by bundle idikill List third-party apps and choose one to restartikill -s List os pre-installed apps and choose one to restartikill com.dummy.bundle.id.app Target specific app by passing bundle id as argumentioptions Open system settings applicationilang <lang> Change the device language to different one, according to ISO-639 (i.e. "cs")ilang Change the device language to different one, choose from a list of all supportedilog Print system log outputisimulator <option> Handle various simulator related activites
start - choose and launch installed simulatorscreenshot - save screenshot to ~/Desktoprecord - save screen recording to ~/Desktop (full resolution and frame rate, without QuickTime hassle)paste <text> - insert text into pasteboardimport <file> - import image or video to simulator gallery applog - print simulator logurl <url> - open link in web browser or corresponding applicationwipe - wipe all simulator databattery <0-100> - set battery level displayed in status bar (no functional impact)time <hh:mm> - set time displayed in status bar (no functional impact)iconsole Examine iOS or macOS system logs using Console applicationFeedback & Contribution
? Pull requests are highly appreciated, see the issue board.
Also visit my NoMo project and leave a star.
? Find me on LinkedIn or Twitter.