Skip to content
Projects

IGPenguin/mobile-toolkit has 410 GitHub stars and 48 forks. GitHot measured 0 stars in 24 hours, 0 in 7 days, and 0 in 15 days. Last checked 2026-11-10 00:07 UTC. Last push 2026-08-04.

How these counts are measured

๐Ÿ“ฑ Terminal tool for Android & iOS device management

Measured star growth

in 24h
0
in 7 days
0
in 15 days
0
in 1 month
Collecting history

Net star changes over overlapping periods, not daily totals. Missing measurements are left blank. Stars measure attention, not software quality.

README.md

Original

Header

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?

๐Ÿค– Android Commands

๐ŸŽ iOS Commands

๐Ÿ’ญ 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.

  1. Open terminal
  2. Clone this repository git clone https://github.com/IGPenguin/mobile-toolkit.git
  3. 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
    • Allow USB debugging on your device, connect it and authorize your computer (click OK on the device screen)
  4. 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)
  5. 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)

๐Ÿค– Android Commands

Capture screen

๐Ÿ“ธ ascreenshot

  • ascreenshot Save screenshot to ~/Desktop
  • ascreenshot -a Take screenshot on all connected devices

๐ŸŽฅ arecord

  1. arecord Record screen
  2. End recording using ctrl + c
  3. Save screen video footage to ~/Desktop
  4. 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 argument
  • arecord -l Use legacy -l option to record using ADB instead of Scrcpy

Control device

โœ๏ธ apaste

apaste "[email protected]" password1 "5005 1002 3332 1112" "2/19" 5004

  • apaste <text> Insert text into currently focused field
  • apaste "[email protected]" password1 Every additional argument will be inserted into subsequent field
  • apaste "This is sample multi-word text." use "" to insert multi-word text into one field
  • apaste -l Insert "Lorem Ipsum paragraph"
  • apaste -a <input-text> Insert any text input (options displayed above) on all connected devices
  • apaste -a -l Insert "Lorem Ipsum paragraph" on all connected devices

๐ŸŒ aurl

  • aurl "google.com" Open link in web browser or corresponding application
  • aurl -a "google.com" Open link in web browser or corresponding application on all connected devices

๐Ÿด adarkmode

  • adarkmode Toggle system dark mode

๐Ÿ”Š atalkback

  • atalkback Toggle TalkBack screen reader accessibility option

๐Ÿ“ abounds

  • abounds Toggle UI layout bounds
  • App restart may be necessary on lower APIs

๐Ÿš— aanimationspeed

  • aanimationspeed set slower animation speed or restore default
  • aanimationspeed <speed> set animation speed multiplier

๐Ÿ”  afontscale

  • afontscale set large font scale (1.3x bigger than default) or restore default
  • afontscale <scale> set font scale multiplier

๐ŸŽน acontrol

  • acontrol start 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

  • alaunch List third-party apps and choose one to run it
  • alaunch -s List all available apps (including OS pre-installed) and choose one to run it
  • alaunch com.dummy.package.name.app Run app by package name

๐Ÿ•ต๏ธ aappinfo

  • aappinfo List foreground app information
    • Package name
    • Version
    • Last update
    • minSdk and targetSdk
    • Permissions
  • (Optional) Open application settings
  • aappinfo com.dummy.package.name.app Target specific app by passing package name as argument

๐Ÿ”ช akill

  • akill Restart the foreground app
  • akill -n Kill the foreground app without relaunching it
  • akill com.dummy.package.name.app Target specific app by passing package name as argument
  • akill com.dummy.package.name.app -n Kill selected app without relaunching it

๐Ÿงฝ aerase

  • aerase Delete all local data of the foreground app and restart it
  • aerase com.dummy.package.name.app Target specific app by passing package name as argument

๐Ÿšš ainstall

  • ainstall some-app-file.apk Install and run .apk
  • ainstall -a some-app-file.apk Install and run .apk on all connected devices

๐Ÿ—‘ auninstall

  • auninstall Uninstall third-party app, choose from the list
  • auninstall com.dummy.package.name.app pass package name as argument
  • auninstall -w Uninstall 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 Play
  • agoogleplay Search for currently foreground app on Google Play

๐Ÿญ abuildproject

  • abuildproject Build, install and run Android project located in current directory
  • abuildproject <relative-path> Build, install and run Android project located in <relative-path>

Manage device

โš™๏ธ aoptions

  • aoptions Open 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 A Choose from exhaustive list of all available options
  • aoptions 1,2,3... | dev | locale | date | wifi | storage | power Use a preset, choose one

๐Ÿ“œ alog

  • alog Print system log output
  • alog -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_profile or open -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 activities

    • start - choose and launch installed emulator
    • gprs | edge | 3g - simulate network latency, choose one
    • call <number> - receive fake call
    • sms <number> <text> - receive fake sms
    • gps <lat> <long> - set manual GPS location
    • battery <0-100> - set battery level
    • telnet <command> - call command via telnet

๐Ÿ’ atestmonkey

  • atestmonkey Default test with random seed and 15000 input events
  • atestmonkey <event-count> Test with random seed and custom input event count
  • atestmonkey <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 atestmonkeykill in 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.

๐ŸŽ iOS Commands

Capture screen

๐Ÿ“ธ iscreenshot

  • iscreenshot Save screenshot to ~/Desktop
  • iscreenshot -a Take screenshot on all connected devices

๐ŸŽฅ irecord

Required: ffmpeg (installation is offered automatically)

  1. irecord Record screen (~6 fps, captured via the go-ios screenshot stream - works on Apple Silicon and iOS 17+)
  2. End recording using ctrl + c
  3. Video footage is saved to ~/Desktop
  • irecord <custom-name> Specify your own filename by passing it as argument
  • Use iquicktime when 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 (irecord records at ~6 fps)

Manage applications

๐Ÿšš iinstall

  • iinstall some-app-file.ipa Install .ipa (make sure to use properly signed build)
  • iinstall -a some-app-file.ipa Install .ipa to all connected devices

๐Ÿ—‘ iuninstall

  • iuninstall Uninstall third-party app, choose from the list
  • iuninstall com.dummy.package.name.app pass bundle name as argument
  • iuninstall -w Uninstall all third-party packages
    • Skips some essential apps, edit IGNORED_PACKAGES in this script to customize the list to your needs

๐Ÿš€ ilaunch

  • ilaunch List third-party apps and choose one to run it
  • ilaunch -s List OS pre-installed apps and choose one to run it
  • ilaunch com.dummy.bundle.id.app Run app by bundle id

๐Ÿ”ช ikill

  • ikill List third-party apps and choose one to restart
  • ikill -n List third-party apps and choose one to kill without relaunching it
  • ikill -s List OS pre-installed apps and choose one to restart
  • ikill -s -n List OS pre-installed apps and choose one to kill without relaunching it
  • ikill com.dummy.bundle.id.app Target specific app by passing bundle id as argument
  • ikill com.dummy.bundle.id.app -n Kill selected app without relaunching it

Manage device

โš™๏ธ ioptions

  • ioptions Open system settings application

๐Ÿ’ฌ ilang

  • ilang <lang> Change the device language to different one, according to ISO-639 (e.g. "cs")
  • ilang Change the device language to different one, choose from a list of all supported

๐Ÿ“œ ilog

  • ilog Print 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 activities
    • start - choose and launch installed simulator
    • screenshot - save screenshot to ~/Desktop
    • record - save screen recording to ~/Desktop (full resolution and frame rate, without QuickTime hassle)
    • paste <text> - insert text into pasteboard
    • import <file> - import image or video to simulator gallery app
    • log - print simulator log
    • url <url> - open link in web browser or corresponding application
    • wipe - wipe all simulator data
    • battery <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

  • iconsole Examine 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.

Explore related projects