git clone mas-cli-mas_-_2019-03-18_22-56-27.bundle -b master
A simple command line interface for the Mac App Store. Designed for scripting and automation.
Homebrew is the preferred way to install:
brew install mas
macOS 10.13 (High Sierra) is required to install mas from the core Homebrew formula.We provide a custom Homebrew tap with pre-built bottlesfor all macOS versions since 10.11.
Just run these commands:
$ brew tap mas-cli/tap$ brew tap-pin mas-cli/tap$ brew install mas
Alternatively, binaries are available in the GitHub Releases
Each application in the Mac App Store has a product identifier which is alsoused for mas-cli commands. Using
mas list will show all installedapplications and their product identifiers.
$ mas list446107677 Screens407963104 Pixelmator497799835 Xcode
It is possible to search for applications by name using
mas search whichwill search the Mac App Store and return matching identifiers.Include the
--price flag to include prices in the result.
$ mas search Xcode497799835 Xcode688199928 Docs for Xcode449589707 Dash 3 - API Docs & Snippets. Integrates with Xcode, Alfred, TextWrangler and many more.[...]
To install or update an application simply run
mas install with anapplication identifier:
$ mas install 808809998==> Downloading PaintCode 2==> Installed PaintCode 2
If you want to install the first result that the
search command returns, use the
$ mas lucky twitter ==> Downloading Twitter ==> Installed Twitter
Please note that this command will not allow you to install (or even purchase) an app for the first time: it must already be in the Purchased tab of the App Store.
mas outdated to list all applications with pending updates.
$ mas outdated497799835 Xcode (7.0)446107677 Screens VNC - Access Your Computer From Anywhere (3.6.7)
masis only able to install/update applications that are listed in the Mac App Store itself. Use
softwareupdate(8)utility for downloading system updates (like iTunes, Xcode Command Line Tools, etc)
To install all pending updates run
$ mas upgradeUpgrading 2 outdated applications:Xcode (7.0), Screens VNC - Access Your Computer From Anywhere (3.6.7)==> Downloading Xcode==> Installed Xcode==> Downloading iFlicks==> Installed iFlicks
Updates can be performed selectively by providing the app identifier(s) to
$ mas upgrade 715768417Upgrading 1 outdated application:Xcode (8.0)==> Downloading Xcode==> Installed Xcode
To sign into the Mac App Store for the first time run
$ mas signin email@example.com==> Signing in to Apple ID: firstname.lastname@example.orgPassword:
⚠️ Due to breaking changes in the underlying API that mas uses to interact with the Mac App Store, the
signincommand has been temporarily disabled on macOS 10.13+ ⛔. For more information on this issue, see #164.
If you experience issues signing in this way, you can ask to signin using a graphical dialog (provided by Mac App Store application):
$ mas signin --dialog email@example.com ==> Signing in to Apple ID: firstname.lastname@example.org
You can also embed your password in the command.
$ mas signin email@example.com "ZdkM4f$gzF;gX3ABXNLf8KcCt.x.np"==> Signing in to Apple ID: firstname.lastname@example.org
mas signout to sign out from the Mac App Store.
mas is integrated with homebrew-bundle. If
mas is installed, and you run
brew bundle dump,then your Mac App Store apps will be included in the Brewfile created. See the homebrew-bundledocs for more details.
If you see the error "This redownload is not available for this Apple ID either because it was bought by a different user of the item was refunded or cancelled.", it's probably because you haven't installed the app through the App Store yet. See #46.
mas doesn't work for you as expected (e.g. you can't update/download apps), run
mas reset and try again. If the issue persists, please file a bug! All your feedback is much appreciated ✨
mas operates via the same system services as the Mac App Store. These exist asseparate processes with communication through XPC. As a result of this,
masexperiences similar problems as the pasteboard when running inside
tmux. Awrapper tool exists tofix pasteboard behaviour which also works for
You should consider configuring
tmux to use the wrapper but if you do not wishto do this it can be used on a one-off basis as follows:
$ brew install reattach-to-user-namespace$ reattach-to-user-namespace mas install
You can now build from Xcode by opening
mas-cli.xcodeproj, or from the Terminal:
Build output can be found in the
build/ directory within the project.
The tests in this project are a recent work-in-progress.Since Xcode does not officially support tests for command-line tool targets,all logic is part of the MasKit target with tests in MasKitTests.Tests are written using [Quick].