Mac developers have access to AppleScript, a language designed for simple inter-app communication. Apple's ScriptEditor IDE exports these scripts to executables, which we use to automate all kinds of things. In particular though, the tedious tasks of opening up a set of Terminal windows and configuring development environments at the start of a session.

Here's an example AppleScript that boots a local development stack: a Homestead server and an Angular frontend.

tell application "Terminal"
	# Backend 
	set currentTab to do script ("cd ~/Web/Homestead;vagrant up;")
	delay 15
	do script ("vagrant ssh;") in currentTab
	delay 5
	do script ("cd Sites/cool-project-api") in currentTab
	# Frontend	
	do script ("cd ~/Web/Sites/cool-angular-project;ng serve;")
end tell

Here we tell Terminal to:

  • Start Vagrant and wait while a virtual machine spins up.
  • Log into the virtual server and navigate to an API project's folder, ready to run server-side dev commands.
  • Create another Terminal window, but this time navigate to a front end project and serve an Angular web app.

Having a script like this bundled up as an app, let's us boot our development environment into action with a swift double-tap before the kettle's even boiled.