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."