mas

mas

Mac App Store应用管理的命令行接口

mas-cli是一个为Mac App Store设计的命令行接口工具,支持通过终端搜索、安装、更新和管理应用。该工具可通过Homebrew或MacPorts安装,提供列出已安装应用、搜索新应用、批量更新等功能,简化了Mac用户的应用管理流程。mas-cli主要面向需要自动化和脚本处理的用户,但也适合喜欢命令行操作的普通用户使用。

mas-cliMac App Store命令行界面自动化应用管理Github开源项目
<h1 align="center"><img src="https://yellow-cdn.veclightyear.com/0a4dffa0/337453ab-b8ac-43c6-b733-ab5e1d10780f.png" alt="mas-cli" width="450" height="auto"></h1>

mas-cli

Mac App Store的简单命令行界面。为脚本编写和自动化而设计。

软件许可证 Swift 5 GitHub 发布 由 Hound 审核 构建、测试和代码检查

📲 安装

🍺 Homebrew

Homebrew 是首选的安装方式:

brew install mas

MacPorts

MacPorts 也可以使用:

sudo port install mas

⚠️ 请注意,从 MacPorts 或核心 Homebrew 公式安装 mas 需要 macOS 10.15 (Catalina) 或更高版本。

☎️ 较旧的 macOS 版本

我们提供了一个自定义 Homebrew tap,其中包含自 10.11 以来所有 macOS 版本的预构建软件包。

要从我们的 tap 安装 mas:

brew install mas-cli/tap/mas

Swift 5 运行时支持

mas 需要 Swift 5 运行时支持。macOS 10.14.4 及更高版本包含了它,但早期版本没有。 如果没有它,运行 mas 可能会报告类似这样的错误:

dyld: Symbol not found: _$s11SubSequenceSlTl

要获得 Swift 5 支持,你有几个选择:

🐙 GitHub 发布

另外,二进制文件可在 GitHub Releases 中获取。

🤳🏻 使用方法

Mac App Store 中的每个应用程序都有一个产品标识符,这也用于 mas-cli 命令。使用 mas list 将显示所有已安装的应用程序及其产品标识符。

$ mas list 446107677 Screens 407963104 Pixelmator 497799835 Xcode

可以使用 mas search 按名称搜索应用程序,它将搜索 Mac App Store 并返回匹配的标识符。 包含 --price 标志可在结果中显示价格。

$ mas search Xcode 497799835 Xcode 688199928 Docs for Xcode 449589707 Dash 3 - API Docs & Snippets. Integrates with Xcode, Alfred, TextWrangler and many more. [...]

找到应用程序标识符的另一种方法是:

  1. 在 Mac App Store 中找到应用程序
  2. 选择 共享 > 复制链接
  3. 从字符串中获取标识符,例如对于 Xcode, https://apps.apple.com/us/app/xcode/id497799835?mt=12 的标识符为 497799835

要安装或更新应用程序,只需使用应用程序标识符运行 mas install

$ mas install 808809998 ==> 正在下载 PaintCode 2 ==> 已安装 PaintCode 2

如果你想安装 search 命令返回的第一个结果,请使用 lucky 命令。

$ mas lucky twitter ==> 正在下载 Twitter ==> 已安装 Twitter

请注意,此命令不允许你首次安装(甚至购买)应用程序:在这种情况下请使用 purchase 命令。 ⛔ 从 macOS 10.15 Catalina 开始不支持 purchase 命令。请参阅已知问题

$ mas purchase 768053424 ==> 正在下载 Gapplin ==> 已安装 Gapplin

请注意,你可能需要在 App Store 中重新验证身份才能完成购买。 如果应用程序不是免费的,或者你配置了账户不记住免费购买的凭据,就会出现这种情况。

使用 mas outdated 列出所有有待更新的应用程序。

$ mas outdated 497799835 Xcode (7.0) 446107677 Screens VNC - Access Your Computer From Anywhere (3.6.7)

mas 只能安装/更新 Mac App Store 中列出的应用程序。 使用 softwareupdate(8) 实用程序下载系统更新(例如 Xcode 命令行工具)

要安装所有待更新的应用程序,请运行 mas upgrade

$ mas upgrade 正在升级 2 个过时的应用程序: Xcode (7.0), Screens VNC - Access Your Computer From Anywhere (3.6.7) ==> 正在下载 Xcode ==> 已安装 Xcode ==> 正在下载 iFlicks ==> 已安装 iFlicks

可以通过向 mas upgrade 提供应用程序标识符来选择性地执行更新

$ mas upgrade 715768417 正在升级 1 个过时的应用程序: Xcode (8.0) ==> 正在下载 Xcode ==> 已安装 Xcode

🚏📥 登录

⛔ 从 macOS 10.13 High Sierra 开始不支持 signin 命令。请参阅已知问题

要首次登录 Mac App Store,请运行 mas signin

$ mas signin mas@example.com ==> 正在登录 Apple ID:mas@example.com 密码:

如果你在以这种方式登录时遇到问题,可以要求使用图形对话框登录 (由 Mac App Store 应用程序提供):

$ mas signin --dialog mas@example.com ==> 正在登录 Apple ID:mas@example.com

你还可以在命令中嵌入密码。

$ mas signin mas@example.com 'ZdkM4f$gzF;gX3ABXNLf8KcCt.x.np' ==> 正在登录 Apple ID:mas@example.com

使用 mas signout 从 Mac App Store 注销。

🍺 Homebrew 集成

mas 已与 homebrew-bundle 集成。如果安装了 mas,并运行 brew bundle dump,那么您的 Mac App Store 应用将包含在创建的 Brewfile 中。有关更多详细信息,请参阅 homebrew-bundle 文档。

⚠️ 已知问题

随着时间推移,Apple 改变了 mas 用于管理 App Store 应用的 API,限制了其功能。请使用 App Store 应用进行登录或购买应用。后续可以使用 mas install 重新下载。

  • ⛔️ 从 macOS 10.13 High Sierra 开始,不支持 signin 命令。#164
  • ⛔️ 从 macOS 10.15 Catalina 开始,不支持 purchase 命令。#289
  • ⛔️ 从 macOS 12 Monterey 开始,不支持 account 命令。#417

mas 从 Mac 上的应用包中看到的版本并不总是与 App Store 报告的相同应用包版本匹配。这导致 outdatedupgrade 命令的行为与 App Store 应用中显示的过时情况不同,造成一些混淆。更令人困惑的是,由于 CDN 传播和缓存,新应用版本发布到 App Store 到在 App Store 应用或通过 mas 命令显示可用之间往往有一些延迟。这些问题导致了类似 #384#387 的症状。

搭载 Apple 芯片的 Mac 可以从 App Store 安装和运行 iOS 和 iPadOS 应用。mas 目前还无法识别这些应用,也无法安装或更新它们。#321

💥 当出现问题时

如果您看到这个错误,可能是因为您还没有通过 App Store 安装应用。 参见 #46

此 Apple ID 无法重新下载此项目,原因可能是由其他用户购买或项目已退款或取消。

如果 mas 未按预期工作(例如,无法更新/下载应用),请运行 mas reset 并重试。 如果问题仍然存在,请提交错误报告。 非常感谢您的所有反馈!✨

📺 使用 tmux

mas 通过与 Mac App Store 相同的系统服务运行。这些服务作为独立进程存在,通过 XPC 进行通信。因此,mastmux 中运行时会遇到类似剪贴板的问题。有一个包装工具可以修复剪贴板行为,同时也适用于 mas

您应考虑配置 tmux 使用该包装工具,但如果不想这样做,也可以一次性使用如下方法:

brew install reattach-to-user-namespace reattach-to-user-namespace mas install

ℹ️ 从源代码构建

您可以通过打开根 mas 目录在 Xcode 中构建,或在终端中:

script/bootstrap script/build

构建输出可以在项目内的 .build/ 目录中找到。

✅ 测试

本项目中的测试是最近正在进行的工作。 由于 Xcode 不官方支持命令行工具目标的测试, 所有逻辑都是 MasKit 目标的一部分,测试在 MasKitTests 中。 测试使用 Quick 编写。

script/test

📄 许可证

mas-cli 由 @argon 创建。 代码采用 MIT 许可证

编辑推荐精选

音述AI

音述AI

全球首个AI音乐社区

音述AI是全球首个AI音乐社区,致力让每个人都能用音乐表达自我。音述AI提供零门槛AI创作工具,独创GETI法则帮助用户精准定义音乐风格,AI润色功能支持自动优化作品质感。音述AI支持交流讨论、二次创作与价值变现。针对中文用户的语言习惯与文化背景进行专门优化,支持国风融合、C-pop等本土音乐标签,让技术更好地承载人文表达。

QoderWork

QoderWork

阿里Qoder团队推出的桌面端AI智能体

QoderWork 是阿里推出的本地优先桌面 AI 智能体,适配 macOS14+/Windows10+,以自然语言交互实现文件管理、数据分析、AI 视觉生成、浏览器自动化等办公任务,自主拆解执行复杂工作流,数据本地运行零上传,技能市场可无限扩展,是高效的 Agentic 生产力办公助手。

lynote.ai

lynote.ai

一站式搞定所有学习需求

不再被海量信息淹没,开始真正理解知识。Lynote 可摘要 YouTube 视频、PDF、文章等内容。即时创建笔记,检测 AI 内容并下载资料,将您的学习效率提升 10 倍。

AniShort

AniShort

为AI短剧协作而生

专为AI短剧协作而生的AniShort正式发布,深度重构AI短剧全流程生产模式,整合创意策划、制作执行、实时协作、在线审片、资产复用等全链路功能,独创无限画布、双轨并行工业化工作流与Ani智能体助手,集成多款主流AI大模型,破解素材零散、版本混乱、沟通低效等行业痛点,助力3人团队效率提升800%,打造标准化、可追溯的AI短剧量产体系,是AI短剧团队协同创作、提升制作效率的核心工具。

seedancetwo2.0

seedancetwo2.0

能听懂你表达的视频模型

Seedance two是基于seedance2.0的中国大模型,支持图像、视频、音频、文本四种模态输入,表达方式更丰富,生成也更可控。

nano-banana纳米香蕉中文站

nano-banana纳米香蕉中文站

国内直接访问,限时3折

输入简单文字,生成想要的图片,纳米香蕉中文站基于 Google 模型的 AI 图片生成网站,支持文字生图、图生图。官网价格限时3折活动

扣子-AI办公

扣子-AI办公

职场AI,就用扣子

AI办公助手,复杂任务高效处理。办公效率低?扣子空间AI助手支持播客生成、PPT制作、网页开发及报告写作,覆盖科研、商业、舆情等领域的专家Agent 7x24小时响应,生活工作无缝切换,提升50%效率!

堆友

堆友

多风格AI绘画神器

堆友平台由阿里巴巴设计团队创建,作为一款AI驱动的设计工具,专为设计师提供一站式增长服务。功能覆盖海量3D素材、AI绘画、实时渲染以及专业抠图,显著提升设计品质和效率。平台不仅提供工具,还是一个促进创意交流和个人发展的空间,界面友好,适合所有级别的设计师和创意工作者。

图像生成热门AI工具AI图像AI反应堆AI工具箱AI绘画GOAI艺术字堆友相机
码上飞

码上飞

零代码AI应用开发平台

零代码AI应用开发平台,用户只需一句话简单描述需求,AI能自动生成小程序、APP或H5网页应用,无需编写代码。

Vora

Vora

免费创建高清无水印Sora视频

Vora是一个免费创建高清无水印Sora视频的AI工具

下拉加载更多