macOS App • Free • Open Source

WindowSwitch

Switch windows, not apps.

macOS ⌘Tab only switches between apps. WindowSwitch shows every window—with live previews—so you land exactly where you left off.

+Tabto cycle
🌐
Chrome
GitHub - Pull Request #42
✏️
Cursor
WindowManager.swift
🧭
Safari
Google Flights
🎵
Spotify
Liked Songs
🧭
Safari
New Work FBI
Terminal
~/projects — zsh
Switched to ChromeGitHub - Pull Request #42
Download for macOS

macOS 14.0+ • Apple Silicon & Intel • Free forever

⌘Tab is broken.

macOS groups everything by app. Got three Safari windows open? ⌘Tab shows you one Safari icon. You have to ⌘Tab to Safari, then ⌘~ to find the right window. That’s two shortcuts for something that should take one.

Windows and Linux got this right years ago. Alt+Tab shows every window individually. HyperSwitch brought this to Mac in 2015 but hasn’t been updated since High Sierra.

WindowSwitch fixes this. Every window gets its own thumbnail in the switcher. Tab through them, release, and only that window comes forward. The rest stay exactly where they were.

No more hunting. No more guessing. No more accidentally pulling five Safari windows to the front when you only wanted one.

Per-Window Switching

Every window gets its own slot in the switcher. Switch to a specific Chrome tab without dragging all Chrome windows to the front.

Live Thumbnails

See exactly what's in each window before switching. No more guessing which Safari window is your email vs. your flight search.

True MRU Order

Windows are sorted by last use, not grouped by app. Your most recent window is always one tab away.

Customizable Shortcut

⌘Tab by default, or switch to Option+Tab or Control+Tab if you want to keep the native switcher alongside.

Menu Bar Only

No Dock icon, no window. Runs silently in the menu bar. You'll forget it's there until you need it.

Zero Config

Install, grant permissions, done. No preferences to tweak, no complex setup. It just works.

How It Works

1

Install

Download the zip, unzip, drag to Applications. Grant Accessibility and Screen Recording permissions.

2

Press ⌘Tab

Hit Command+Tab. The switcher appears with live previews of every open window.

3

Browse

Keep holding Command and press Tab to cycle through windows. Shift+Tab goes backwards.

4

Release

Let go of Command. Only the selected window comes forward. Everything else stays put.

Under the Hood

WindowSwitch uses the same battle-tested technique as HyperSwitch, the legendary macOS window switcher from 2015: the Carbon SetFrontProcessWithOptions API with the kSetFrontProcessFrontWindowOnly flag.

This activates the target app but only raises its frontmost window—preserving the z-order of every other window on screen. Combined with the Accessibility API to raise the specific window you selected, this gives true per-window switching without disturbing your carefully arranged workspace.

Window thumbnails are captured via CGWindowListCreateImage, and windows are matched to their Accessibility counterparts using the private _AXUIElementGetWindow API for pixel-perfect accuracy.

Built With

Swift + SwiftUI
Accessibility API
CoreGraphics
Carbon Process Manager

FAQ

Tab like it’s meant to be.

Download WindowSwitch and finally switch between windows—not apps. Free, open source, no account required.

Download WindowSwitch.zip
Made by Max Awad