WindowFlow is a window switcher that lists all your open application windows, even windows that are hidden, minimized or in another Space.
Moving through the list of windows you get a preview of each one on the desktop, giving you a strong visual cue of where to start focusing your attention when switching. Alternatively WindowFlow can show just the window contents, this is handy for checking on the status of a window in a different Space, e.g to check the progress of a download.
WindowFlow is an alternative to Expose offering a more predictable interface and more powerful than command-tab; and it supports all the standard window control shortcuts to hide, minimize and close windows.
A Pro version is also available and that adds keyboard commands for moving resizing and tiling windows.