Automated install flow for OSX: set-up-osx

Have you ever (re)installed OSX on your Apple computer? Then you’d know it becomes harder and harder to replicate your settings to your new Macbook or after a reinstall. Think about all your applications, OSX tweaks and sometimes even command line settings that you have manually set in the time you worked on your computer.

Time Capsule? would some of you probably think: the automated way of backup of settings and installation of applications. Is an option, yes. But how often did you hear about or experienced a “slower” computer or weird issues / errors after upgrading to a new OSX version? I had every time annoying long google-searching-evenings without working solutions.
My experience is that Time Capsule works for the non-developers and the ones that double check their Time Capsule weekly if it still works. But for developers (or perhaps specific edge cases) I have been looking for ways to speed up my install flow when installing a new OSX version, which eventually I always had to do.

I’ve tried Github Boxen and heard about Cask/Brew but I missed the solid option to merge apps and (OSX) scripts in a flow that is repeatable and easy to extend.

Command line flow result which you see during installation.

Therefore I made set-up-osx. It is made with Node.js (ES6) and needs a JSON-file as input to let you follow steps to execute. With it you can replicate your OSX environment on the same or a new computer with every same step you have done before.
After OSX started you only need to install Node.js, npm i set-up-osx (npm) and a JSON-file (from USB or a link) where all the steps are defined. Then follow what the command line says you need to do.

OSX El Capitan was again a clean install for me, but with set-up-osx I now have a set-up-flow that ensures that I do not forget certain settings and in a format people can share their best practices/settings.

Enjoy or share your issues on https://github.com/sayyup/set-up-osx