macOS burns half a second animating every space switch — a full second on ProMotion. Every other fix takes your gesture away to fix it.
brew install julienR2/tap/spaceflick
Grab either screen and drag it sideways. Let go slowly and both behave the same. Flick it and only the right one lands immediately.
Made with 🤖 by Nowmad
Two takes on the same machine, recorded back to back, one gesture each way.
It's worse than it looks. Your keystrokes keep going to the space you left until the animation finishes — so the wait isn't just visual, it's dead input time.
One passthrough event tap rewrites a single number as your swipe ends — the release velocity the Dock reads to decide how fast to finish.
No suppression, no synthetic events. The finger-tracking phase never even sees the tap.
Hold mid-swipe to see two spaces at once, exactly as macOS always let you.
A slow release passes through untouched, so macOS still decides it from how far you dragged.
It won't fling you past the first or last space. At an edge it rubber-bands, like always.
Two field reads and one field write per swipe. No timers, no polling — 10ms of CPU across 19 swipes.
No scripting addition, no kext, no disabling System Integrity Protection. Just Accessibility.
Every other fix trades something away.
| Stock | BTT | yabai | AeroSpace | Blink | spaceflick | |
|---|---|---|---|---|---|---|
| Near-instant switch | ✕ | ✓ | ✓ | ✓ | ✓ | ✓ |
| Half-swipe peek preserved | ✓ | ✕ | ✕ | ✕ | ✕ | ✓ |
| Keeps the native 4-finger swipe | ✓ | ✕ | ✕ | ✕ | ✕ | ✓ |
| Native macOS spaces | ✓ | ✓ | ✓ | ✕ | ✓ | ✓ |
| No SIP changes | ✓ | ✓ | ✕ | ✓ | ✓ | ✓ |
| Free & open source | — | ✕ | ✓ | ✓ | ✓ | ✓ |
| Hotkeys, jump to space N | ✓ | ✓ | ✓ | ✓ | ✓ | ✕ |
| Works inside Mission Control | ✓ | ✕ | ✕ | ✕ | ✓ | ✕ |
The two bold rows are the whole reason spaceflick exists. The bottom two are what it gives up in exchange: no hotkeys, no jump-to-space-N, nothing inside Mission Control. Blink has all of that and is a far more complete app — if you want it, go get it.
I've tested only spaceflick and Blink myself. The BetterTouchTool (paid, and vastly more general than this one job), yabai and AeroSpace columns come from their own documentation plus Blink's published comparison, on the same criteria it used. yabai reaches instant switching only with SIP partially disabled and its scripting addition loaded. AeroSpace doesn't switch native spaces at all — it “employs its own emulation of virtual workspaces instead of relying on native macOS Spaces due to their considerable limitations”, so the gesture rows aren't a fair fight: it's solving a different problem, and solving it well.
Free and open source · MIT · about 180 lines of Swift · no dependencies
brew install julienR2/tap/spaceflick && brew services start spaceflick
Add /opt/homebrew/opt/spaceflick/bin/spaceflick under
System Settings → Privacy & Security → Accessibility.
An event tap can't see the trackpad without it.
No restart needed — spaceflick waits for the grant and starts working the moment you flip the switch. It runs as a launchd agent, so it comes back at login and after a reboot.
git clone https://github.com/julienR2/spaceflick && cd spaceflick && ./build.sh install
— that one also gives you a proper /Applications app.
Or ./build.sh && ./build/spaceflick run -v to
try it without installing anything. Both builds are unsigned, so an upgrade
invalidates the Accessibility grant: if swipes go back to feeling slow,
remove spaceflick from the Accessibility list and re-add it.