Application to launch specific applications, windows, and tabs I am a programmer. I'd like to improve my workflow by being able to have a "saved workspace". When I start my computer, or whenever I'm ready to resume a project, I want to launch a specific set of browser tabs, terminal windows, text editor, etc. and when finished, "save" the state of my tabs/windows so I can resume again later.

My current workflow is to never close any windows and never shut down my computer.

I don't know of an application like this but I would really like to find (or build) one.
Mac OS X has been trying to achieve something like this on a per-app basis using Saved Application State, however, that will only retrieve the last known state of an app, not some arbitrary one from the past.

I'm not sure of any app which can do that.

The closest that I am aware of would be a macro which could, for example:


launch a specific set of applications
open a specific set of URLs in a web browser 
open a specific set of files in a specific app (or apps)


You could also add optional features such as 


quit all of your currently-open applications before beginning (or quit specific apps, like your email and twitter client) when you know you are going to work


This is very simple to do in Keyboard Maestro, which has a free, 30-day demo on the site. 

For example, in the image attached I have created a macro like this as an example. I will use numbers to correspond with the numbers on the image to show what each step is doing:




This macro (read simply as: "series of actions") will take place either if I choose the menu from the menu bar…
…or if I use the keyboard shortcut I have specified. (Other actions are also available 
Quit all applications 
Hide the Dock, if it is visible 
Launch BBEdit
Launch Terminal.app
Launch Safari 
Open the URL https://apple.stackexchange.com/?tab=featured in Safari.
Open the URL http://gmail.com in Chrome
Open a folder in Finder


this is just an example for illustration. I could have told Keyboard Maestro to run any sort of command, or open specific files in other applications.

The only thing which is not possible, as far as I am aware in any app, is the ability to say: "Ok, save everything that is on my screen right now and remember it for later."