2016-09-25 23:31:41 +00:00
|
|
|
[<p align="center"><img src="mas-cli.png" alt="mas-cli" width="450" height="auto"></p>][mas-cli]
|
|
|
|
|
2015-09-20 23:47:42 +00:00
|
|
|
# mas-cli
|
|
|
|
|
2015-09-20 23:55:58 +00:00
|
|
|
A simple command line interface for the Mac App Store. Designed for scripting
|
|
|
|
and automation.
|
2015-09-20 23:47:42 +00:00
|
|
|
|
|
|
|
## Install
|
|
|
|
|
2016-05-05 18:09:47 +00:00
|
|
|
[Homebrew](https://brew.sh) is the preferred way to install:
|
2015-09-20 23:47:42 +00:00
|
|
|
|
2016-05-05 18:09:47 +00:00
|
|
|
brew install mas
|
2015-09-20 23:47:42 +00:00
|
|
|
|
2016-05-05 18:09:47 +00:00
|
|
|
Alternatively, binaries are available in the [GitHub Releases](https://github.com/argon/mas/releases)
|
2015-09-20 23:47:42 +00:00
|
|
|
|
|
|
|
## Usage
|
|
|
|
|
|
|
|
Each application in the Mac App Store has a product identifier which is also
|
2015-09-20 23:55:58 +00:00
|
|
|
used for mas-cli commands. Using `mas list` will show all installed
|
|
|
|
applications and their product identifiers.
|
2015-09-20 23:47:42 +00:00
|
|
|
|
|
|
|
$ mas list
|
|
|
|
446107677 Screens
|
|
|
|
407963104 Pixelmator
|
|
|
|
497799835 Xcode
|
|
|
|
|
2016-04-17 00:26:52 +00:00
|
|
|
It is possible to search for applications by name using `mas search` which
|
|
|
|
will search the Mac App Store and return matching identifiers
|
|
|
|
|
2016-04-20 13:35:58 +00:00
|
|
|
$ mas search Xcode
|
2016-04-17 00:26:52 +00:00
|
|
|
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:
|
2015-09-20 23:47:42 +00:00
|
|
|
|
|
|
|
$ mas install 808809998
|
|
|
|
==> Downloading PaintCode 2
|
|
|
|
==> Installed PaintCode 2
|
|
|
|
|
|
|
|
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)
|
|
|
|
|
2015-12-30 21:03:45 +00:00
|
|
|
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
|
|
|
|
|
2016-09-25 23:38:31 +00:00
|
|
|
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
|
|
|
|
|
2016-02-14 01:42:18 +00:00
|
|
|
To sign into the Mac App Store for the first time run `mas signin`.
|
|
|
|
|
2016-06-08 20:23:55 +00:00
|
|
|
$ mas signin mas@example.com
|
|
|
|
==> Signing in to Apple ID: mas@example.com
|
|
|
|
Password:
|
|
|
|
|
|
|
|
|
|
|
|
You can also embed your password in the command.
|
|
|
|
|
2016-02-14 01:42:18 +00:00
|
|
|
$ 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.
|
|
|
|
|
2016-06-15 11:29:01 +00:00
|
|
|
|
2016-09-25 23:39:59 +00:00
|
|
|
## Using `tmux`
|
2016-06-15 11:29:01 +00:00
|
|
|
|
2016-09-25 23:39:59 +00:00
|
|
|
`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](https://github.com/ChrisJohnsen/tmux-MacOSX-pasteboard) 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:
|
2016-06-15 11:29:01 +00:00
|
|
|
|
|
|
|
```
|
|
|
|
$ brew install reattach-to-user-namespace
|
|
|
|
$ reattach-to-user-namespace mas install
|
|
|
|
```
|
|
|
|
|
2015-12-30 21:45:36 +00:00
|
|
|
## Build from source
|
|
|
|
|
|
|
|
`mas` currently requires the [bundler](http://bundler.io/) RubyGem in order to
|
|
|
|
bootstrap and build the project. There are a number ways to install bundler but
|
|
|
|
if you have never used it before then installing it with `gem` should be enough.
|
|
|
|
|
|
|
|
```
|
|
|
|
$ gem install bundler
|
|
|
|
```
|
|
|
|
|
|
|
|
You can now bootstrap the project by executing the `bootstrap` script
|
|
|
|
from the mas sources script directory:
|
|
|
|
|
|
|
|
```
|
|
|
|
$ script/bootstrap
|
|
|
|
```
|
|
|
|
|
|
|
|
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.
|
|
|
|
|
2015-09-20 23:47:42 +00:00
|
|
|
## License
|
|
|
|
|
2016-05-05 18:09:47 +00:00
|
|
|
Code is under the [MIT license](LICENSE).
|
2016-09-25 23:32:19 +00:00
|
|
|
|
|
|
|
[mas-cli]: https://github.com/argon/mas
|