๐ป Installation
August 4, 2026 ยท View on GitHub

What is its purpose?
๐ 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 efficiency, discover new tools!
All features
๐ฒ Control Android and iOS devices or Emulators/Simulators using terminal commands
๐ Take screenshots, 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
Table of contents
๐ฉ Maybe you just want to skip to Installation?
๐ญ Do you want to share Feedback or Contribute?
โ Or buy me a coffee? Voluntary, no added benefit.
๐ป Installation
Click here to reveal step by step guide โ
Note: This tool targets macOS for compatibility, but most interactions should work on any Unix system.
- Open terminal
- Clone this repository
git clone https://github.com/IGPenguin/mobile-toolkit.git - Setup Android tools
- Download and install Android Studio and Android command line tools (using Android Studio SDK manager)
- Edit .zshrc (or .bash_profile if you have bash shell)
open -e ~/.zshrc- Insert this line at the end
export PATH=$PATH:/Users/dummyuser/Library/Android/sdk/platform-tools - Don't forget to replace "dummyuser" with your account username
- Use full path to the "platform-tools" directory on your machine
- Insert this line at the end
- Allow USB debugging on your device, connect it and authorize your computer (click OK on the device screen)
- Setup iOS tools
- Install latest Xcode and iOS command line tools using App Store
- Install Homebrew package manager
- Run Xcode, connect iOS device to USB and authorize your computer (click "Trust" on the device screen)
- Enable Developer Mode on the device - required for commands that control apps (
ikill, etc.)- Connecting to Xcode once reveals the option: Settings โ Privacy & Security โ Developer Mode โ enable โ restart device
- Run any script e.g.
iscreenshot, installation of all required tools will be initiated automatically (jq and go-ios)
- Add Mobile Toolkit to $PATH, it is mandatory for iOS scripts and it will let you run scripts in any directory
- Edit .zshrc (or .bash_profile if you have bash shell)
open -e ~/.zshrc- Insert the following lines at the end
export PATH=$PATH:/Users/dummyuser/mobile-toolkit/android
export PATH=$PATH:/Users/dummyuser/mobile-toolkit/ios - Don't forget to replace "dummyuser" with your account username
- Use full path to the "mobile-toolkit" directory (where you cloned this repository)
- Insert the following lines at the end
- Edit .zshrc (or .bash_profile if you have bash shell)
๐ค Android Commands
Capture screen
๐ธ ascreenshot
ascreenshotSave screenshot to ~/Desktopascreenshot -aTake screenshot on all connected devices
๐ฅ arecord
arecordRecord screen- End recording using
ctrl + c - Save screen video footage to ~/Desktop
- Records audio by default on devices running Android 12 and up (when using Scrcpy version 2.0.0 or higher)
arecord <custom-name>Specify your own filename by passing it as argumentarecord -lUse legacy-loption to record using ADB instead of Scrcpy
Control device
โ๏ธ apaste
apaste "john.doe@fakemail.com" password1 "5005 1002 3332 1112" "2/19" 5004
apaste <text>Insert text into currently focused fieldapaste "john.doe@fakemail.com" password1Every additional argument will be inserted into subsequent fieldapaste "This is sample multi-word text."use "" to insert multi-word text into one fieldapaste -lInsert "Lorem Ipsum paragraph"apaste -a <input-text>Insert any text input (options displayed above) on all connected devicesapaste -a -lInsert "Lorem Ipsum paragraph" on all connected devices
๐ aurl
aurl "google.com"Open link in web browser or corresponding applicationaurl -a "google.com"Open link in web browser or corresponding application on all connected devices
๐ด adarkmode
adarkmodeToggle system dark mode
๐ atalkback
atalkbackToggle TalkBack screen reader accessibility option
๐ abounds
aboundsToggle UI layout bounds- App restart may be necessary on lower APIs
๐ aanimationspeed
aanimationspeedset slower animation speed or restore defaultaanimationspeed <speed>set animation speed multiplier
๐ afontscale
afontscaleset large font scale (1.3x bigger than default) or restore defaultafontscale <scale>set font scale multiplier
๐น acontrol
acontrolstart scrcpy session- Provides realtime device screen mirroring and keyboard+mouse control
๐ท acamera
- Start the default camera application
โก๏ธ awireless
- Enable or disable wireless ADB connection
- Use ADB and toolkit without having USB cable attached
๐ apowerbutton
- Lock/Unlock the device (send Power button key event)
- Useful to unlock the device after the screen is locked automatically
Manage packages
๐ alaunch
alaunchList third-party apps and choose one to run italaunch -sList all available apps (including OS pre-installed) and choose one to run italaunch com.dummy.package.name.appRun app by package name
๐ต๏ธ aappinfo
aappinfoList foreground app information- Package name
- Version
- Last update
- minSdk and targetSdk
- Permissions
- (Optional) Open application settings
aappinfo com.dummy.package.name.appTarget specific app by passing package name as argument
๐ช akill
akillRestart the foreground appakill -nKill the foreground app without relaunching itakill com.dummy.package.name.appTarget specific app by passing package name as argumentakill com.dummy.package.name.app -nKill selected app without relaunching it
๐งฝ aerase
aeraseDelete all local data of the foreground app and restart itaerase com.dummy.package.name.appTarget specific app by passing package name as argument
๐ ainstall
ainstall some-app-file.apkInstall and run .apkainstall -a some-app-file.apkInstall and run .apk on all connected devices
๐ auninstall
auninstallUninstall third-party app, choose from the listauninstall com.dummy.package.name.apppass package name as argumentauninstall -wUninstall all third-party packages- Skips some essential apps, edit IGNORED_PACKAGES in this script to customize the list to your needs
๐ฅ awipe
- Wipe internal storage and delete all third-party apps
๐ apermissionreset
- Revoke ALL GRANTED runtime permissions for ALL apps
- You'll have to handle permission requests upon opening almost any app
๐ agoogleplay
agoogleplay "Dummy App"Search for "Dummy App" on Google PlayagoogleplaySearch for currently foreground app on Google Play
๐ญ abuildproject
abuildprojectBuild, install and run Android project located in current directoryabuildproject <relative-path>Build, install and run Android project located in <relative-path>
Manage device
โ๏ธ aoptions
aoptionsOpen system settings on a specific activity- You can choose from quick presets
- Developer settings
- Locale settings
- Date & time
- Wifi settings
- Storage management
- Power usage
- Root settings activity
aoptions AChoose from exhaustive list of all available optionsaoptions 1,2,3... | dev | locale | date | wifi | storage | powerUse a preset, choose one
๐ alog
alogPrint system log outputalog -f <package-name>Filter log by package name
๐ acheckdevice
- Print general device information
- Perform basic safety-checks and toggle "testing friendly" settings
- 10 minutes screen timeout
- Highest brightness
- Automatic date
- Disabled notification sounds
- Internet connectivity and WIFI name
- Font scale
- enUS locale
- (Optional) Search for the device on GSMArena
๐ aservices
- Print running background services
- Search for more information via Google
โป areboot
- Reboot the device
๐ฑ aemulator
Required: Make terminal use Android Studio Java
-
Edit .bash_profile (or .zshrc if you have zsh shell)
open -e ~/.bash_profileoropen -e ~/.zshrc -
Add the following line at the end of the fileย
export JAVA_HOME='/Applications/Android Studio.app/Contents/jbr/Contents/Home' -
Android emulator supports all listed scripts by default + extra actions listed below
-
aemulator <option>Handle various Android emulator activitiesstart- 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- example commands
event | redir | sensor | physics | finger | rotate | fold | unfold...see Android emulator documentation for more information
- example commands
๐ atestmonkey
atestmonkeyDefault 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 count- Perform automated stress test using Application Exerciser Monkey
- You can end test prematurely using ctrl^c or
atestmonkeykillin case something goes wrong - App under test needs to be pinned to fullscreen mode to prevent unwanted interactions elsewhere
- Screen pinning button location is directly tied to OS version and device manufacturer skin.
- It may be tricky to turn on, see examples below:
-
Google Nexus 5 (Android 6)
You need to bring the app window to foreground, the button is located in bottom right corner.

-
Google Pixel 3 (Android 11)
You need to click on the app icon, the button is located in popup menu.

- It may be tricky to turn on, see examples below:
๐ iOS Commands
Capture screen
๐ธ iscreenshot
iscreenshotSave screenshot to ~/Desktopiscreenshot -aTake screenshot on all connected devices
๐ฅ irecord
Required: ffmpeg (installation is offered automatically)
irecordRecord screen (~6 fps, captured via the go-ios screenshot stream - works on Apple Silicon and iOS 17+)- End recording using
ctrl + c - Video footage is saved to ~/Desktop
irecord <custom-name>Specify your own filename by passing it as argument- Use
iquicktimewhen you need smooth high frame rate footage
๐น iquicktime
- Run QuickTime and open video source picker (so you can choose a device right away)
- You may have to allow security system permission, so the script can access QuickTime application
- Use it when you need smooth high frame rate footage (
irecordrecords at ~6 fps)
Manage applications
๐ iinstall
iinstall some-app-file.ipaInstall .ipa (make sure to use properly signed build)iinstall -a some-app-file.ipaInstall .ipa to all connected devices
๐ iuninstall
iuninstallUninstall third-party app, choose from the listiuninstall com.dummy.package.name.apppass bundle name as argumentiuninstall -wUninstall all third-party packages- Skips some essential apps, edit IGNORED_PACKAGES in this script to customize the list to your needs
๐ ilaunch
ilaunchList third-party apps and choose one to run itilaunch -sList OS pre-installed apps and choose one to run itilaunch com.dummy.bundle.id.appRun app by bundle id
๐ช ikill
ikillList third-party apps and choose one to restartikill -nList third-party apps and choose one to kill without relaunching itikill -sList OS pre-installed apps and choose one to restartikill -s -nList OS pre-installed apps and choose one to kill without relaunching itikill com.dummy.bundle.id.appTarget specific app by passing bundle id as argumentikill com.dummy.bundle.id.app -nKill selected app without relaunching it
Manage device
โ๏ธ ioptions
ioptionsOpen system settings application
๐ฌ ilang
ilang <lang>Change the device language to different one, according to ISO-639 (e.g. "cs")ilangChange the device language to different one, choose from a list of all supported
๐ ilog
ilogPrint system log output
๐ icheckdevice
- Print device information
- (Optional) Search for the device on GSMArena
โป ireboot
- Reboot the device
๐ฑ isimulator
- Simulator has limited functionality (no camera, biometrics, Appstore...), but offers some extra options, unavailable on physical iOS devices
isimulator <option>Handle various simulator related activitiesstart- 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
iconsoleExamine iOS or macOS system logs using Console application
โ Support the project
Mobile Toolkit is free and always will be. If it saves you time, you can buy me a coffee.
With a young family, the hours left for open source are scarce. Coffee helps keep this project alive.
๐ธ Donate via Revolut - Voluntary donation, no added benefit.
โญ๏ธ Hit the star button - Makes me happy, increases visibility.
Feedback & Contribution
โ๏ธ Submit an issue to report any bugs, request a feature or ask questions.
๐ค Pull requests are highly appreciated, see the issue board.
๐ Check out Stay Dead - my choice-based RPG, now in open beta!
๐ Find me on LinkedIn or Twitter.