A macOS window switcher

VortexFlow — find the right window.
Don't leave the pointer.

VortexFlow is a free, open-source macOS window switcher. Windows, tabs, and pinned favorites from a mouse button or a shortcut.

Free · MIT Open source · v1.0.1 · Disk image needs Open Anyway, once

Mouse or keyboardmacOS 15+Apple silicon & IntelNo account, no telemetry
Interactive product demo
01 / Your windowsEverything open. One place to choose.

Click the spiral, then pick a card, use arrow keys and Enter, or type to find it.

Pins and window actions

Pin favorites.
Move windows from the overlay.

Pins sit in the spiral.

Links, apps, and keyboard shortcuts. Drag to reorder.

Hover a pin to peek. Click to open.

Preview, resize, and move.

Preview it. Resize it. Move it to the screen you are using.

Google Chrome
Launch notesAnother Space · Chrome

Move & resize

Try a window action in this example.

Per-window recencyTap to browse · hold to switchAcross Spaces & displaysSite, audio & private-window cues
Five layouts. Spiral is the default.Spiral · Circular · Strip · Grid · ListExplore layouts

Pick a layout.

Spiral. Icons around your pointer.

Layout previewExample windows

Release brief · Chrome

Native Swift. Public source.

Free and open source.

MIT-licensed, native Swift, Sparkle for updates, source public. Download the disk image or build it on your Mac. It is the same code either way.

SOURCE
MIT

Compile it yourself. macOS never shows that sheet. One command, signed on your machine.

Build from sourceView on GitHubXcode command-line tools · Scripts/build-app.sh --install
  • 1third-party library: Sparkle, for updates
  • 780+automated tests
  • 0 bytesof telemetry
  • 2kinds of background request: a site's icon, never for a private window, and the first-party appcast

The disk image is expected to be blocked once. Open Anyway, then it stays open. Build from source if you would rather skip that sheet.

From the case studies

What those desks sound like
after a week.

  • Mapped it to the thumb button on a Tuesday. By Thursday I had stopped using Cmd-Tab and had not noticed. The previous window already being selected is the whole trick.

    Daniel R.Backend engineer
  • Four Figma windows used to be one icon. Now the hub tells me which one is under the pointer, and I never put the pen down to find out.

    Marta K.Product designer
  • Typing a customer's name and landing on their ticket, on another Space, in a window I forgot I had. Search found it.

    Luis O.Support lead
  • I read the one file that touches the network before I granted it anything. Ephemeral session, origin root only, same-origin redirects. Then I granted Accessibility.

    Sam T.Security engineer
  • Hold to go back, tap to look around. The overlay is on the button under my thumb, and the paper can be on another desktop.

    Anika P.PhD candidate

Drafts in the voice of the case studies, not permissioned reviews. Read the five desks →

No account. No telemetry.

Titles and previews stay
on the Mac.

Window titles and previews stay local. No account, no analytics, no telemetry. Because the code is open, that is a fact you can check rather than a policy you have to trust.

Privacy policy ↗
The one network request, in source ↗
How do mouse and keyboard activation work?

Tap to leave the switcher open, or hold and release to switch. Choose a mouse button or keyboard shortcut in Settings. The previous window is preselected, using per-window recency.

What can I pin?

Links, apps, and keyboard shortcuts can be pinned into the spiral and reordered by dragging. Separately, you can choose running apps to always show first; their windows retain recency ordering.

Which windows and tabs can I find?

Search by title, app, site, or URL path. Supported tab providers include Chrome, Safari, Edge, Brave, Arc, Comet, Chromium, and Apple Terminal. If windows and tabs do not match, installed applications can appear. Web and assistant actions open their provider sites.

What permissions do I need?

Grant only the permissions for the features you want. Icon View needs no Screen Recording. Strip, Grid, and List can show window previews; Spiral and Circular use icons. Permission guide.

What about private windows and screen sharing?

Private windows use the browser's icon; their site icon is not fetched. You can opt the overlay out of screenshots, but behavior depends on macOS and the recording app. Check your setup before sharing.

Is it really free?

Yes. VortexFlow is open source under the MIT license. There is no paid tier, no trial, no license key, and no account. Download the build or compile it yourself. Either way it is the same code.

Why does macOS say the developer can't be verified?

That sheet is expected. VortexFlow is open source. Apple has not notarized the download, so macOS asks you to confirm once. System Settings → Privacy & Security → Open Anyway. Or build from source and the sheet never appears. The one click.

Where should I download it from?

The disk image on this site, or build it from the public source. VortexFlow asks for Accessibility, Input Monitoring, and Screen Recording, exactly the permissions a tampered copy would need. The download page lists the SHA-256 of the image.

How can I help?

Use it on a real desk and report what breaks, especially mice and browsers we have not seen. Pull requests are welcome; the codebase is plain Swift with a large test suite. Where to start.

Built in the open.

Clone it.
Change it.

A window switcher sees every window on your Mac. You should be able to read the code that does that, and change it. Every claim on this page is a function you can open. Start with SwitcherController.swift.

Created by Mahesh Auti. Explore my other work ↗

Plain Swift and AppKit · 780+ tests · Issues and pull requests welcome
# macOS 15+, Xcode command-line tools
git clone https://github.com/maheshauti96/VortexFlow.git
cd VortexFlow
Scripts/build-app.sh --install

# run the tests
swift test

Help wanted

  • Tab search for Firefox, Vivaldi, Opera, and Zen. Chrome, Safari, Edge, Brave, Arc, Comet, and Chromium are covered.
  • A Homebrew cask, so brew install --cask vortexflow works.
  • Mice we have never seen: if Detect Button misses one of yours, that is a bug report we want.