# ipatool

> CLI for searching the App Store for iOS, iPadOS, tvOS, visionOS and macOS apps and downloading .ipa or macOS .pkg packages.

Stars: 12.0k · Language: Go · License: MIT · Categories: Dev Tools

- Repository: https://github.com/majd/ipatool
- Website: https://ipatool.dev
- Page: https://www.trmn.sh/tools/ipatool

## Install

- Homebrew: `brew install ipatool`
- Go (from source): `go build -o ipatool`

## Overview

ipatool is a command-line client for the Apple App Store. It searches for iOS, iPadOS, tvOS, visionOS, and macOS apps and downloads their packages as .ipa files, or .pkg files for macOS apps. It runs on macOS, Linux, Windows, and iOS, and requires an Apple Account already configured to use the App Store.

Its subcommands cover the App Store workflow. `auth` signs in to the App Store. `search` finds apps. `purchase` obtains a license for an app. `download` fetches the package. `list-purchases` shows apps owned by the authenticated account. `list-versions` lists the available versions of an app. `get-version-metadata` retrieves metadata for a specific version. `completion` generates shell autocompletion scripts.

Global flags include `--format` for text or JSON output, `--non-interactive` for automated environments, `--keychain-passphrase` for unlocking the keychain, and `--verbose` for detailed logs. The tool runs in interactive mode by default. JSON output and non-interactive mode make it usable in scripts and CI. Developers, security researchers, and anyone who needs to retrieve app packages from the App Store from a terminal would use it. It can also be compiled from source with the Go toolchain.

### Installation

```bash
# via Homebrew
brew install ipatool
```

```bash
# via Go (from source)
go build -o ipatool
```

![ipatool demo](https://media.trmn.sh/cached/f144c30f840fb9d47b8a97f7ccf5047101a7729d9299a012089a5877f2b650c3.gif)

## Alternatives

- [Terragrunt](https://www.trmn.sh/tools/terragrunt.md): Orchestration tool for OpenTofu/Terraform infrastructure code, used to scale and manage Infrastructure as Code across many modules and environments. (Go, 9.9k stars)
- [reviewdog](https://www.trmn.sh/tools/reviewdog.md): Parses linter output and posts findings in changed lines as review comments on GitHub, GitLab, and Bitbucket, or filters lint results by diff locally. (Go, 9.7k stars)
- [scc](https://www.trmn.sh/tools/scc.md): Code counter written in Go that reports lines of code, comments, complexity, ULOC and COCOMO estimates across many languages, with multiple output formats. (Go, 8.9k stars)
- [Task](https://www.trmn.sh/tools/go-task.md): Task runner and build tool that reads tasks from a YAML Taskfile, a simpler cross-platform alternative to Make. (Go, 16.3k stars)
- [Krew](https://www.trmn.sh/tools/krew.md): Package manager for kubectl plugins: discover, install, and manage plugins from a central index, similar to apt, dnf, or brew. (Go, 7.0k stars)

---

Canonical: https://www.trmn.sh/tools/ipatool
