No description
Find a file
Dmitry Rodionov 784a57afd8 Update README.md
Note that `mas install` is unable to purchase apps
2016-10-03 17:57:48 +07:00
mas-cli Preparing release 1.3.1 2016-09-25 23:01:23 +01:00
mas-cli.xcodeproj Disable Whole module optimization to fix build error 2016-09-25 22:57:21 +01:00
script Ensure sed doesn't save backups 2016-09-24 17:07:15 +01:00
Seeds Commit dependencies 2016-09-24 17:08:40 +01:00
.gitignore Commit dependencies 2016-09-24 17:08:40 +01:00
.ruby-version Use a newer ruby to keep activesupport happy 2016-09-17 17:35:41 +01:00
.travis.yml Commit dependencies 2016-09-24 17:08:40 +01:00
Gemfile Upgrade bundler dependencies 2015-12-30 22:00:32 +00:00
Gemfile.lock Update gems 2016-09-17 17:27:46 +01:00
LICENSE Add the license 2015-09-21 00:25:56 +01:00
mas-cli.png Add logo to the readme 2016-09-26 00:31:41 +01:00
README.md Update README.md 2016-10-03 17:57:48 +07:00
Seedfile Update to Commandant 0.11.1 2016-09-24 15:53:50 +01:00

mas-cli

mas-cli

A simple command line interface for the Mac App Store. Designed for scripting and automation.

Install

Homebrew is the preferred way to install:

brew install mas

Alternatively, binaries are available in the GitHub Releases

Usage

Each application in the Mac App Store has a product identifier which is also used for mas-cli commands. Using mas list will show all installed applications and their product identifiers.

$ mas list
446107677 Screens
407963104 Pixelmator
497799835 Xcode

It is possible to search for applications by name using mas search which will search the Mac App Store and return matching identifiers

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

To install or update an application simply run mas install with an application identifier:

$ mas install 808809998
==> Downloading PaintCode 2
==> Installed PaintCode 2

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.

Use mas outdated to list all applications with pending updates.

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

To install all pending updates run mas upgrade.

$ mas upgrade
Upgrading 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

$ mas upgrade 715768417
Upgrading 1 outdated application:
Xcode (8.0)
==> Downloading Xcode
==> Installed Xcode

To sign into the Mac App Store for the first time run mas signin.

$ mas signin mas@example.com
==> Signing in to Apple ID: mas@example.com
Password: 

You can also embed your password in the command.

$ mas signin mas@example.com "ZdkM4f$gzF;gX3ABXNLf8KcCt.x.np"
==> Signing in to Apple ID: mas@example.com

Use mas signout to sign out from the Mac App Store.

If you experience issues with App Store downloads, try mas reset to clear temporary data in the App Store daemons.

Using tmux

mas operates via the same system services as the Mac App Store. These exist as separate processes with communication through XPC. As a result of this, mas experiences similar problems as the pasteboard when running inside tmux. A wrapper tool exists to fix pasteboard behaviour which also works for mas.

You should consider configuring tmux to use the wrapper but if you do not wish to 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

Build from source

You can now build from Xcode by opening mas-cli.xcodeproj, or from the Terminal:

$ script/build

Build output can be found in the build/ directory within the project.

License

Code is under the MIT license.