A powerful, all-in-one command-line and interactive utility to download Apple Firmware (IPSW), OTA Updates, and iTunes versions directly from Apple's servers via the ipsw.me API.
- 🍏 IPSW Downloads: Automatically filter by device category (iPhone, iPad, Mac, etc.).
- 📡 OTA Updates: Download Over-The-Air updates using device identifiers and build IDs.
- 🎵 iTunes Archive: Access legacy iTunes versions for Windows and macOS.
- 🛠 Dual Mode: Switch between a user-friendly terminal menu and a fast CLI.
- Python 3.9 or higher.
- Operating System: Windows, macOS, or Linux.
- Internet Connection: Required to fetch metadata and download firmware.
git clone https://github.com/mrrabyss/ipswtool.git
cd ipswtoolpython3 -m venv .venv
source .venv/bin/activatepip3 install -r requirements.txtSimply run the script without any arguments to enter the guided menu system. This is best for browsing available firmware versions.
python ipsw.pyNavigation: Use Arrow Keys to move, Enter to select, and Ctrl+C to exit.
Use CLI arguments for faster execution or integration into your own automation scripts.
Download the latest signed firmware for a device:
python ipsw.py -t ipsw -d iPhone14,7 --latestpython ipsw.py -t ipsw -d iPhone14,7 -b 19H218Note: OTA downloads require a specific Build ID.
python ipsw.py -t ota -d iPhone14,7 -b 19H218Download the latest version for Windows:
python ipsw.py -t itunes -p Windows --latestDownload a specific legacy version for macOS:
python ipsw.py -t itunes -p macOS -b 12.8.2| Argument | Flag | Description | Required For |
|---|---|---|---|
| Type | -t, --type | ipsw, ota, or itunes | All |
| Device | -d, --device | Device Identifier (e.g., iPhone14,7) | IPSW, OTA |
| Platform | -p, --platform | Windows or macOS | iTunes |
| Build | -b, --build | Build ID (IPSW/OTA) or Version (iTunes) | Specific downloads |
| Latest | -l, --latest | Auto-selects the newest/signed version | Latest downloads |
Signed Status: The tool identifies if an IPSW is still being signed by Apple in the interactive menu. In CLI mode, --latest automatically targets the newest signed version for IPSW. Identifiers: If you don't know your device identifier (e.g., iPhone13,2), use the Interactive Mode to find it.
If you see anything in the console related to these specific keywords(ERR, traceback, error, exception), you may have to:
- Check your internet connection
- Check your Python envirionment
- Re-launch the script
- Try again later(may be due to the problems on the Apple or ipsw.me side)
- Update the script, see installation
This project is licensed under the MIT License - see the LICENSE file for details.
Built with ❤️ by mrrabyss