mas CLI:在终端中管理 macOS App Store 应用

mas CLI – Mac App Store 命令行接口

macOS 附带强大的图形界面用于 App Store,但对许多开发者、系统管理员和高阶用户而言,基于终端的解决方案往往更高效。mas(发音 mass)是一款轻量级、开源的 Swift 编写的命令行工具,允许你直接在 shell 中搜索、安装、更新和管理应用。

Repository link: https://github.com/mas-cli/mas

目录

为什么选择 mas?

  • 开箱即用 – 脚本和 cron 作业可以轻松安装和更新应用,无需用户交互。
  • 跨平台 – 兼容 macOS 13 Ventura 及更高版本;旧 macOS 版本可通过 Homebrew tap 支持。
  • Root‑Safe – 内部使用 sudo 处理安装限制和 Apple 安全更新。
  • 开源 – 12k+ GitHub stars 与活跃社区意味着频繁更新、错误修复与功能建议。

系统需求

  • 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 Releases

下载最新的二进制文件(Releases page)并放置在 /usr/local/bin,或使用 brew install --build-from-source

快速上手

搜索与查询

mas 接受两种形式的 App ID: * Adam ID – 数字(如 497799835 对应 Xcode)。 * 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

技巧 – 使用 --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

提示 – 在 macOS 13+ 上,mas 需要 sudo 才能执行所有安装/更新操作,这是 Apple 强制执行 installd 仅根权限的结果。

Root 权限与安全

mas 4.0.0 开始,所有修改 App Store 数据的命令(安装与更新)在非 root 时会自动请求 sudo。该工具不会存储或暴露你的密码;它会安全转发给 sudo 子进程。

为什么需要 Root

Apple 的 installd 服务在新版 macOS 上仅限 root,任何安装程序都必须以 root 身份运行。mas 隐藏了这一细节,让你只需运行:

mas get 497799835
并在需要时交互式输入密码。

高级功能

Homebrew Bundle 集成

如果你已使用 brew bundlemas 可以将已安装的 App Store 应用注入到你的 Brewfile 中:

brew bundle dump
# 更新后再次运行 `brew bundle` 以重新应用安装。

Topgrade 兼容

mas 可以被 Topgrade 完整支持。运行 topgrade 将自动更新所有过期的 App Store 应用。

Spotlight 索引技巧

mas 从 macOS 的 Spotlight 元数据服务(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 上提交 Issue。

贡献与本地构建

# 克隆仓库
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 管理变为脚本友好、可重复的工作流。无论你是想自动化个人工作空间的独立开发者,还是为一批 Mac 提供全局配置的系统管理员,命令行都能消除 GUI 的拖拽步骤,并顺畅集成 Homebrew、Topgrade 以及你自定义的脚本。今天就试试,它会把 App Store 的力量搬到你的终端。

原创文章: 查看原文

分享本文