mas CLI:ターミナルからmacOS App Storeアプリを管理

mas CLI – Mac App Store コマンドラインインターフェース

macOS には強力な App Store GUI が付属していますが、多くの開発者、システム管理者、パワーユーザーにとってはターミナルベースのソリューションの方がはるかに効率的な場合があります。masmass と発音)は、Swift で書かれた軽量かつオープンソースのコマンドラインツールで、シェルから直接アプリを検索・インストール・更新・管理できます。

リポジトリリンク: https://github.com/mas-cli/mas

目次

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互換性

masTopgrade に完全対応。topgrade を実行すれば、古い App Store アプリが自動で更新されます。

Spotlightインデックスのヒント

mas は macOS の Spotlight Metadata Service (MDS) からインストール済みアプリデータを取得します。アプリが一覧に無い場合はリインデックスが有効です。

mdimport /Applications/WhatsApp.app
# あるいはデータベース全体を再構築
sudo mdutil -Eai on

トラブルシューティング

症例 予想原因 修復策
mas getredownload 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 をコマンドラインへ移行してみてください。

この記事を共有