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?
- 系统需求
- 安装
- 快速上手
- 搜索与查询
- 列出已安装的应用
- 更新应用
- 安装新应用
- Root 权限与安全
- 高级功能
- Homebrew Bundle 集成
- Topgrade 兼容
- Spotlight 索引技巧
- 排障
- 贡献与本地构建
- 许可证
- 总结
为什么选择 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 bundle,mas 可以将已安装的 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 的力量搬到你的终端。