MACOS ARM64 · LINUX X86_64 · WINDOWS X86_64

App Store tools.
Desktop. CLI. Rust.

Browse the App Store, download entitled IPA or Mac PKG packages, and prepare FairPlay decryption once. A native dark macOS desktop and CLI share the same Rust workflows.

Built on ipatool and UnfairPlay. For practical use, prefer the original projects.

terminal / ipatool-rs
$ ipatool-rs search ScriptWidget --platform macos

$ ipatool-rs auth login

$ ipatool-rs fairplay-doctor --help

01 / CAPABILITIES

From catalog to package.

An experimental Rust rewrite of the combined ipatool-fairplay Go project, created to use otherwise-unused Codex quota and explore a substantial port. Full parity remains under validation.

01

Public catalog

Search applications, look up details, and find the latest external version ID without signing in. Select a storefront and request JSON output.

search · lookup · latest-version-id
02

Account & packages

Manage saved credentials, obtain free-app licenses, query purchases and versions, and download entitled IPA or Mac PKG packages with metadata and SINF handling.

auth · purchase · download
03

MCP integration

Six App Store tools for compatible clients over standard input and output. Public search needs no account; authenticated tools use saved account state.

ipatool-rs mcp --non-interactive
04

Prepare once. Reuse automatically.

Guided FairPlay setup saves a private model after validating a matching sample. Later matching IPA downloads decrypt automatically. Controlled macOS setup and independent reuse matched current UnfairPlay.

fairplay-doctor · fairplay-enroll · fairplay-decrypt

NATIVE DESKTOP / MACOS APPLE SILICON

A workspace for the whole journey.

Start with iOS search, sign in when needed, and keep downloads and FairPlay tasks in one place. The region follows your account; browsing another region shows a download warning.

The native dark IPATOOL-RS desktop showing public iOS search results, application details, region selection and navigation.
Actual native desktop capture. Public catalog browsing; no private account data or test packages are shown.
01 / BROWSE

Find the right offer.

Search by name, App ID or bundle ID. iOS is selected at launch; change the platform or region to refresh results.

02 / DOWNLOAD

Use your account's access.

Sign in, choose a destination and follow progress. Existing files are preserved, and failed tasks explain the next step.

03 / PREPARE & REUSE

Set up FairPlay once.

Choose a matching installed app and sample IPA. Approve scoped access when needed. A saved matching model handles later IPA downloads automatically.

FairPlay models remain private and authorization-specific. Setup requires compatible local App Store authorization, not just an IPA. The GUI keeps advanced controls collapsed. See the step-by-step FairPlay guide.

02 / INSTALL

Choose the desktop, CLI, or both.

The installed command is ipatool-rs, so it can coexist with the original ipatool.

macOS

Apple Silicon / arm64

Native desktop ZIP and CLI archive, Developer ID signed and notarized. Controlled account, download and FairPlay setup/reuse checked.

Desktop .zip / CLI .tar.gz ↗

Linux

x86_64 · experimental

Native CI and public catalog checks pass. Live account and package workflows remain unverified.

Choose .tar.gz ↗

Windows

x86_64 · experimental

Native CI and public catalog checks pass. Live account and package workflows remain unverified.

Choose .zip ↗
HOMEBREW Apple Silicon macOS
brew tap everettjf/tap

# Desktop app
brew install --cask everettjf/tap/ipatool-rs-gui

# CLI (optional)
brew install everettjf/tap/ipatool-rs
ipatool-rs --version

Open IPATOOL-RS from Applications after installing the cask. Requires macOS 12 or later; protected FairPlay setup requires macOS 13 or later. Upgrade with brew upgrade --cask everettjf/tap/ipatool-rs-gui or brew upgrade everettjf/tap/ipatool-rs.

For manual installation, download the archive and companion .sha256 file from Releases. Verify the checksum. For the GUI, extract *-gui-macos-arm64.zip and move IPATOOL-RS.app to Applications. For the CLI, extract and add the executable directory to your PATH. Windows uses ipatool-rs.exe.

macOS x86_64, Linux ARM64, Windows ARM64, and iOS runtime releases are deferred.

03 / QUICK START

Search first. Sign in when needed.

PUBLIC CATALOG No account needed
ipatool-rs search ScriptWidget --platform macos --country US --limit 5
ipatool-rs lookup --app-id 1555600758 --platform macos --country US
ipatool-rs latest-version-id --app-id 1555600758 --platform macos --country US
OWNED APPLICATION Interactive login
ipatool-rs auth login
ipatool-rs auth info
ipatool-rs list-purchases --platform macos --max-results 2
ipatool-rs download --app-id 1555600758 --platform macos --output ./ScriptWidget.pkg

Enter your Apple ID password and verification code at the interactive prompts. purchase obtains a free-app license; downloads require the appropriate account entitlement.

Native Mac apps such as ScriptWidget download as PKGs. Compatible iPhone or iPad offers can return IPAs; use --platform iphone for an entitled iPhone offer. This flag selects the Store offer, not the host operating system.

Use --format json for machine-readable output and ipatool-rs --help for all commands. Credentials use macOS Keychain, Linux Secret Service with an encrypted file fallback, or encrypted file storage on Windows. --file-keychain selects the file store explicitly.

MCP client configuration

The executable must be on the client's PATH, or use its absolute path.

{
  "mcpServers": {
    "ipatool-rs": {
      "command": "ipatool-rs",
      "args": ["mcp", "--non-interactive"]
    }
  }
}

Tools: search_apps, list_purchases, list_app_versions, get_version_metadata, purchase_app, and download_app. For encrypted file storage and non-interactive credential setup, see the README credential guide.

04 / ARCHITECTURE

Shared Rust workflows.

The desktop, CLI and MCP server use the same Rust modules. Public catalog requests run directly, without a saved account or Apple guest execution.

The GPUI desktop, CLI and MCP server share Rust catalog, account, package and FairPlay modules, backed by platform services, private state, selected Apple guests and Apple endpoints.

Selected Store and SAP signing paths execute pinned ARM64 Apple framework images through Unicorn. Rust supplies image loading, execution control, and host-call models. No separate Go, Python, or Swift executable is launched.

FairPlay defaults to current-format recovery ported from pinned UnfairPlay, with matching samples and plaintext page-hash checks before model publication. The legacy exact-build fairplayd path remains explicit; support for arbitrary authorizations is not established.

05 / CURRENT LIMITS

Validation still in progress.

  • Linux and Windows live login, credential-store migration, and package workflows remain unverified.
  • macOS still needs real 2FA, expired-token recovery, and complete default-Keychain login and revoke checks. Some authenticated MCP paths also remain unverified.
  • Controlled macOS FairPlay setup and independent reuse passed on two real multi-image IPAs. Broader enrollment formats and cross-platform private-data parity remain open. Windows managed-model storage needs equivalent ACL enforcement; desktop accessibility and portable interactive GUI checks remain open.