mas CLI:ターミナルからmacOS App Storeアプリを管理
mas CLI – Mac App Store コマンドラインインターフェース
macOS には強力な App Store GUI が付属していますが、多くの開発者、システム管理者、パワーユーザーにとってはターミナルベースのソリューションの方がはるかに効率的な場合があります。mas(mass と発音)は、Swift で書かれた軽量かつオープンソースのコマンドラインツールで、シェルから直接アプリを検索・インストール・更新・管理できます。
リポジトリリンク: https://github.com/mas-cli/mas
目次
- masとは?
- 要件
- インストール
- Getting Started
- 検索とルックアップ
- インストール済みアプリ一覧
- アプリの更新
- 新規アプリのインストール
- root権限とセキュリティ
- 高度な機能
- Homebrew Bundle連携
- Topgrade互換性
- Spotlightインデックスのヒント
- トラブルシューティング
- 貢献とローカルビルド
- ライセンス
- 結論
masとは?
- 自動化対応 – スクリプトや cron ジョブでユーザーの介入なしにアプリのインストール・更新が可能。
- クロスプラットフォーム – macOS 13 Ventura 以降で動作。古いバージョンは Homebrew tap でサポート。
- rootセーフ – インストール制限と Apple の最新セキュリティ変更に対応するため、内部で
sudoを使用。 - オープンソース – 12k+ GitHub スターと活発なコミュニティにより、頻繁な更新、バグ対処、機能提案が行われる。
要件
- macOS 13 Ventura 以降(完全バイナリサポート)。ソースは古い macOS でもビルド可能。
- Swift 6.2(Xcode プロジェクトで使用)。
- Homebrew または MacPorts で簡単インストール。
インストール
Homebrew(推奨)
brew install mas
MacPorts
sudo port install mas
古い macOS(10.11 – 12) Homebrew Tap経由
brew install mas-cli/tap/mas
GitHub Releaseから
リリースページ(https://github.com/mas-cli/mas/releases)から自分のアーキテクチャ用の最新バイナリをダウンロードし、/usr/local/bin へ配置、または
brew install --build-from-source
Getting Started
検索とルックアップ
mas は アプリID を 2 つの形式で受け付けます。
* Adam ID – 数値(例:Xcode は 497799835)。
* Bundle ID – テキスト(例:com.apple.Xcode)。
# アプリ名で検索
mas search Xcode
# 結果例:
# 497799835 Xcode
# 688199928 Docs for Xcode
# ...
# 詳細情報取得
mas lookup 497799835
# 出力例:
# Xcode 26.1.1 [Free]
# By: Apple Inc.
# Released: 2025-11-11
# Minimum OS: 15.6
# Size: 2,913.8 MB
ヒント –
searchに--priceを付けるとアプリの価格も確認できます。
インストール済みアプリ一覧
mas list
# 出力例:
# 497799835 Xcode (15.4)
# 640199958 Developer (10.6.5)
# 899247664 TestFlight (3.5.2)
アプリの更新
# アウトデートしているアプリを表示
mas outdated
# 出力例:
# 497799835 Xcode (15.4 -> 16.0)
# 640199958 Developer (10.6.5 -> 10.6.6)
# すべて更新
sudo mas update
# あるいは特定アプリのみ
sudo mas update 715768417
新規アプリのインストール
# 未購入の無料アプリをインストール
sudo mas get 497799835
# 以前購入したアプリをインストール
sudo mas install 497799835
# 最初の検索結果を高速インストール
sudo mas lucky Xcode
注意 –
masは macOS 13+ では全てのインストール/更新動作でsudoを要求します。Apple がinstalldをルート専用に制限しているためです。
root権限とセキュリティ
mas 4.0.0 以降、App Store データを変更するコマンド(インストール・更新)は、root で実行されていない場合、自動的に sudo を要求します。ツールはパスワードを保存したり公開したりせず、セキュアに sudo に転送します。
root が必須な理由
Apple の installd サービスは最近の macOS リリースで root のみが許可されており、App Store を含むすべてのインストーラは root 権限で実行する必要があります。mas はこれを抽象化し、ユーザーは以下のように実行できます。
mas get 497799835
高度な機能
Homebrew Bundle連携
brew bundle を既に使用している場合、mas は App Store アプリを Brewfile に挿入できます。
brew bundle dump
# 更新後に `brew bundle` を再実行して再適用。
Topgrade互換性
mas は Topgrade に完全対応。topgrade を実行すれば、古い App Store アプリが自動で更新されます。
Spotlightインデックスのヒント
mas は macOS の Spotlight Metadata Service (MDS) からインストール済みアプリデータを取得します。アプリが一覧に無い場合はリインデックスが有効です。
mdimport /Applications/WhatsApp.app
# あるいはデータベース全体を再構築
sudo mdutil -Eai on
トラブルシューティング
| 症例 | 予想原因 | 修復策 |
|---|---|---|
mas get が redownload not available で失敗 |
アプリが購入済みでないか、返金済み | アプリを最初に App Store GUI で購入 |
mas update で更新なし |
App Store サービス遅延またはローカルインデックスの古さ | 数分待つか Spotlight を再インデックス |
tmux でコマンドがクラッシュ |
tmux がコピー/ペースト権限を欠く |
reattach-to-user-namespace をインストールし reattach-to-user-namespace mas install 497799835 で実行 |
問題が続く場合は mas reset を実行し、再試行、GitHub に課題を報告してください。
貢献とローカルビルド
# リポジトリクローン
git clone https://github.com/mas-cli/mas.git
cd mas
# 依存関係インストール(Xcode + Swift ツールチェーン)
swift package update
# ビルド
swift build -c release
# テスト実行
swift test
すべての変更は歓迎です。以下の 貢献規約 をご覧ください。
ライセンス
mas は MIT ライセンスの下配布されています。
結論
mas は macOS App Store の管理をスクリプトフレンドリーで再現性のあるワークフローに変えます。1 台の Mac で作業スペースを自動化する開発者も、複数台の Mac をプロビジョニングするシステム管理者も、GUI のドラッグ&ドロップを排除し、Homebrew、Topgrade、独自スクリプトとシームレスに統合できます。ぜひ今日から試して、App Store をコマンドラインへ移行してみてください。