Easily download and install Mac apps in bulk with macapps.link
Ready to automate Mac app downloads and installs? If you’re setting up a new Mac, you probably know how tedious it is to manually navigate to a bunch of different developer websites and individually download and install all the Mac apps you want. This is a necessary but time-consuming procedure to set up a new Mac, especially when using apps not found on the Mac App Store.
And that’s where the MacApps.link service comes in handy, bundling a bunch of different Mac apps of your choosing into a single executable command string that you can throw into the terminal and then go about your business while the apps are downloaded and installed on the Mac. Basically, you’ll automate the download and installation of a ton of popular Mac apps.
For example, suppose you have a brand new MacBook Pro for work and want to install your typical workflow setup of Chrome, Firefox, Chrome Canary, Skitch, Fantastical, GitHub, IntelliJ, BBEdit, Sketch, Docker, The Unarchiver, CyberDuck, iTerm2, iStats Menu, BarTender, VLC, Steam (I swear it’s for the boss at work!), Atom, Slack, Discord, Zoom and Skype…that’s a ton of websites and of different developers to consult manually to install applications right? With the MacApps.link service, you just need to select all these apps from their list, get the installation link, launch it in the terminal and let the command run until the end. Peasy easy.
Caution: This is for advanced users who are comfortable with the command line. Proceed at your own risk. Using macapps.link requires the trust of a free third-party service, because you issue a remotely executed terminal script that interacts with your Mac to install the software. If you’re like me and are the default cautious type, you might want to take a look at the script before running it on your Mac. A method is proposed below if you are curious*.
How to Bulk Download and Install Mac Apps from Terminal
Ready to batch download and install a bunch of Mac apps of your choice, without intervention? Here’s what to do:
- Go to https://macapps.link/ in any web browser
- Click to select the apps you want to bulk download and install, scrolling through the list of available apps
- Click “Install ## Apps” in the upper right corner to get the app download command string
- Open Terminal on Mac via Spotlight by pressing Command + Spacebar and typing “Terminal” followed by the Return key, or launch Terminal from the /Applications/Utilities/ folder
- Paste the copied command string into the terminal, then press Enter to begin downloading and installing Mac apps.
You’ll see the progress of each download and install, reporting if the app installed successfully, if the app can’t be updated for some reason, if the app was skipped because it’s already up to date, and when it’s all over.
This can potentially save a lot of time when setting up a new Mac, either for yourself or for deployments to a handful of Macs when you don’t have other device management software in place. .
* How do I know that I can trust this and what is installed?
It’s wise to be careful when running commands in your terminal, especially those that involve installing apps on your Mac, using a bash script fetched remotely and run locally! Potentially high-risk activity, right? So, how to trust but verify in such a situation?
If you’re technically inclined, the easiest way to check this is to look at what the script does, by looking at the install bash script itself.
For example, let’s say the command to run as supplied is:
curl -s 'https://api.macapps.link/en/firefox-chrome-torbrowser-chromecanary-skitch-bettertouchtool-dropbox-carboncopycloner-superduper-sketch-bbedit-transmission-unarchiver-filezilla-transmit-cyberduck-etcher-appcleaner-caffeine-coconutbattery-vlc-openemu-gimp-plex-skype-telegram-slack-whatsapp-discord' | sh
If we modify the command by removing the pipe to sh at the end and the silent flag -s from curl from the beginning, we’ll print the bash script without running it:
Running this modified command in the terminal will dump the entire bash script. Now all you have to do is maximize that terminal window and look at what the bash script does, which is basically the following; print fancy ASCII art banner, check if apps are already installed, check apps version, download app installer/pkg files directly from developers to temporary directory, extract and install app via dmg/zip/tarball , reporting progress and success, then deleting temporary files that were downloaded.
Ah, the joys of curling.
If what you see looks good to you, you can go ahead and run the full command without modification, as provided by the macapps.link service.
If you see something alarming for you personally, well, definitely don’t run the full script! Just install the apps manually and ignore all that.
If you’re not on the more tech-geeky spectrum, using macapps.link requires either some trust, trust in the creator of the macappslink service, or simply avoiding it altogether. It’s up to you.
If you don’t trust running a fetched shell script remotely (and that’s a perfectly reasonable stance to take) on your Mac, you’ll either have to manually download and install apps as usual, or consider alternatives.
For what it’s worth, a similar feature called cask is available as part of Homebrew, so if you’d rather use Homebrew on the Mac for this purpose, you can certainly do that too. It’s not as simple as that.
Obviously, this is for macOS, but the macapps.link service is similar to Ninite for Windows, so if you’re a Windows user looking for similar convenience, check it out.
Have you ever used macapps.link to automatically download and install a bunch of different Mac apps and make setting up your new Mac easy? Do you use another approach? Let us know your thoughts and experiences in the comments.