Welcome to the macOS Scripted Setup.
This project helps Mac users quickly and easily set up a new computer or useraccount by automatically configuring a range of system settings and installing commonly used applications.
Tip
The scripted setup was tested on Intel-based Macs & Apple Silicon Macs On macOS 12 Monterey up to macOS 14 Sonoma
The macOS Scripted Setup is perfect for users who want to save time and avoid the hassle of manually changing settings and installing apps. The whole project, but particularly the configuration file, is portable - so you can keep them on a USB-stick for the next Mac setup. Give it a try and streamline your new Mac setup process!
The script is easy to use and can be run directly from the Terminal application, as a regular user or admin user. It automatically performs a series of commands to change default macOS settings and download applications. It's designed to be widely backward and forward compatible with various macOS versions.
All settings can be configured. Some features include enabling the firewall, setting better security features, customising the Finder, Dock, and Mission Control for better productivity; and many more. Additionally, the script installs applications such as browsers, media players, productivity apps, and web development tools.
See what features, settings, and applications can be changed / installed
- FileVault, macOS Firewall, Mission Control, Control Centre, Finder, Dock, git, SSH Key, adds Userhome folders, Menu bar clock, Fast User Switching, and more.
Some Apps are downloaded from the official websites, other are added through Homebrew or its Mac App Store CLI extension.
- 1Password, AlDente, Beyond Compare, Boop, Brave, Composer, Discord, Docker, eqMac, Fig, Firefox, Fork, GasMask, Git, Google Chrome, Homebrew, Keka, LinearMouse, MAMP, Nova, Pixelmator Pro, Quick Look plugins, Rosetta 2, Safari extensions, Sequel Ace, SonarQube, Spotify, Steam, Strongbox, Telegram, Transmission, Tresorit, Warp, Xcode Command Line Tools, Xnapper, and more.
Automatic download with this command in the Terminal.app
from Applications » Utilities:
curl -SL "https://github.com/Swiss-Mac-User/macOS-scripted-setup/archive/refs/heads/installer.zip" | tar xz -C "$HOME/Downloads" && open "$HOME/Downloads/macOS-scripted-setup-installer"
→ Alternatively you can manually download & extract the latest «Source code (zip)» from Releases to your ~/Downloads/
folder.
-
Duplicate the file
config.default.sh
asconfig.sh
-
Open
config.sh
in a Text editor (e.g.TextEdit.app
) -
…and change all settings to your personal preferences, using
true
/false
.
Warning
If no config.sh
-file is present, the setup will use the default configs from config.default.sh
!
Configuring custom bash commands to run
If you want to run additional bash commands as part of the setup, you can duplicate the template-file mycommands.template.sh
as mycommands.sh
, and populate it with any commands. These custom commands will be executed LAST in the whole setup (see the run.sh
file).
Maybe now is the time to grab a coffee ☕️…
-
Open the «Terminal.app» from Applications » Utilities
-
Paste the following command to the Terminal.app:
cd ~/Downloads/macOS-scripted-setup-installer/ && chmod +x ./run.sh && ./run.sh
- Now start the setup by pressing
Return
& watch the magic happen…
Tip
Occasionally you have to interact when instructions show up, such as to sign-in on the Mac App Store.
Report an Issue or start a new Discussion for feedback or help.
Feel free to fork this project and add Pull Requests for any suggested changes or additions!
A BIG «THANK YOU» to these inspiring and helfpful sources! 🫶 Make sure to check them out and leave a kudos.
- Yann Bertrand's awesome work with «macOS-defaults»
- Patrick Force's approach with «macOSa» (which was a bit too complex for my use case…)
- Ryan Pavlick's helpful «add_to_dock» bash scripts
- Mathias Bynens's epic «dotfiles» (particularly its .macos)!
- Big KUDOS to «Homebrew» and the «Mac App Store command line interface»! 👏
- MacRumors «Dock to Show Running Apps Only», Ask Different «identify if Filevault is enabled» and «Check if OS X user is Administrator»