# InstantSpaceSwitcher: killing the macOS space switching animation with a fake gesture

> A small unsigned Swift utility that fakes a high velocity trackpad swipe so macOS skips the space transition animation, plus an on-screen display and configurable speed.

**jurplel/InstantSpaceSwitcher** — Native space switching on macOS with no animation

- Repository: https://github.com/jurplel/InstantSpaceSwitcher
- Stars: 2,177 · Forks: 85
- Language: Swift
- License: MIT
- Published: 2026-10-07 · Updated: 2026-10-07 · Language: en
- Canonical page: https://hysenlabs.com/projects/jurplel-instantspaceswitcher

## The bug it works around is a refresh rate scaling bug

The README tells the story that motivates the whole project, and it is a specific one. The author bought a high refresh rate monitor around 2018 and noticed that the macOS space switching animation had grown longer, because it scaled with the refresh rate. The result was that a feature they liked became something they avoided, and they stopped using spaces entirely while looking for a fix.

The technical workaround is described in one sentence and it is the interesting part of the design: the app creates a synthetic trackpad gesture with an artificially high velocity, which effectively skips the animation. Nothing about spaces is reimplemented. macOS still owns them, still lays them out, still animates them, and the gesture is simply fast enough that the transition never has time to draw.

The README closes with a note directed at Apple: if your team owns the space switching animation, fix this long standing bug, and let the animation be disabled natively. The author also mentions knowing of an internal radar for it. Neither happened, which is why the app exists.

## No SIP changes, which is the actual differentiator

The feature list is three lines and the first is the one that matters: it does not require disabling SIP. It uses native macOS spaces, and it is free.

That first point separates this from the usual macOS space-management crowd. The related searches for the project surface BetterTouchTool, SketchyBar, Amethyst, Aerospace and PaperWM, all of which either reimplement Spaces behaviour, manage windows in a tiling model, or require elevated system access to do it. A tool that asks you to turn off System Integrity Protection to reorganise desktops is a real cost in security posture. One that asks only for the accessibility permission it uses to synthesise a gesture is a much smaller ask.

A simple CLI ships alongside the app, reachable at `InstantSpaceSwitcher.app/Contents/MacOS/ISSCli --help`. Having a CLI in a 2,000 star utility app is a decent signal about how the author intends it to be driven, though the README does not document individual flags.

## Installing it, and the unsigned app warning you will hit

Homebrew is the clean path:

```sh
brew install --cask jurplel/tap/instant-space-switcher
```

After that the app lands in `/Applications/InstantSpaceSwitcher.app`. Prebuilt binaries also exist through GitHub Releases, and building from source is three commands:

```sh
git clone https://github.com/jurplel/InstantSpaceSwitcher
cd InstantSpaceSwitcher
./dist/build.sh
```

The `dist/` directory in the tree holds that build script, alongside a `Package.swift` and `Sources/` at the root, so it is a normal Swift package with a shell wrapper to assemble the app bundle. There is a `Tests/` directory and a `.swiftlint.yml`, so linting is wired in rather than aspirational.

The troubleshooting section is honest about what first launch looks like. Because the app is not signed, macOS will report that Apple could not verify it is free of malware, or that the app is damaged and cannot be opened, or that the developer cannot be verified. The README links to a guide for opening unsigned applications on Sequoia and newer and footnotes the reason: signing requires a costly Apple Developer account. You then grant accessibility access, and the configuration window appears when you open the app from Applications.

## What version 2.0 actually added

The release history is short and recent. Version 1.0 shipped on 2026-04-10 with the note that the project was getting attention and a tag seemed worthwhile. Version 2.0 followed on 2026-04-18, which is a fast turnaround and explains why the tags are recent rather than a long history.

The 2.0 notes are worth reading as a list of what a space-switching tool actually has to deal with: fix switching spaces while in Mission Control, allow overriding swipe gestures, add experimental Mission Control detection used both to hide the OSD in Mission Control and to let overridden gestures pass through in Expose, improve the settings dialog, allow configuring animation speed, build on macOS 26, open the settings dialog when re-opening the app, and fix inaccurate shortcuts in the menu.

Two of those are the real engineering. Mission Control detection means the app has to know when the system is showing all spaces at once, because a synthetic swipe during that state does something visibly wrong. Gesture overriding means the app can claim swipes that macOS already handles, which is why passthrough behaviour during Expose matters. The top level `expose-mc-detect-diag/` directory, which sits next to `Sources/`, looks like the diagnostic tooling for exactly that problem. The project is MIT licensed, is not archived, and its last push was 2026-06-21.

## An on-screen display and a nightly build that warns you

The release list includes a tag called `nightly` whose entire description reads: latest automatic build from the main branch, might be broken. That is a reasonable thing to publish and an unusual thing to see, because it means the author ships a continuous build channel alongside the two tagged versions.

The OSD is mentioned twice, once as an on-screen display the app can hide when Mission Control is active and once implicitly in the settings dialog work. There is no README section describing what the OSD looks like or what it reports, so its exact content is something you only learn by running the app.

The honest summary is that this is a focused single-purpose tool with a small README that matches its scope. It does not document the gesture configuration surface, the CLI flags, or the OSD. What it does document, it documents well: why the tool exists, why it avoids SIP, how to install it three different ways, and exactly which errors to expect on first launch.

## Where it sits against the macOS tiling managers

The comparison to be honest about is not against other space switchers, because there are not many. It is against the tools that appear alongside it in search results. Amethyst and Aerospace are tiling window managers that give you keyboard-driven layouts across spaces and monitors. PaperWM adds a spoon-based layout on top of PaperWM. SketchyBar and BetterTouchTool are general purpose automation and menu bar tools that could, with enough configuration, produce a similar fast swipe.

None of those is trying to remove an animation, which is what makes this project a different category rather than a worse or better version of them. If you want spaces to feel instant and nothing else, a 2,161 star Swift app that fakes a fast gesture is the direct answer, and it is smaller and more predictable than configuring BetterTouchTool to do the same thing. If you want your windows arranged, you still need one of the managers, and running both is normal.

The one caveat is the accessibility permission. It is a real grant, it is required for synthetic events, and a tool whose entire function is to synthesise input events is worth thinking about on that basis even though the code is open and MIT licensed.

## Conclusion

InstantSpaceSwitcher does one thing that macOS refuses to let users configure, and it does it without asking you to weaken System Integrity Protection, which is what separates it from the alternatives. If the animation is the problem, install the cask, grant the accessibility permission, and the OSD will confirm the switch. If you want more than faster native spaces, the project is not a window manager: the related searches around it point at Amethyst, Aerospace, PaperWM and SketchyBar, which tile and rearrange windows rather than merely skipping an animation. Version 2.0 released on 2026-04-18 and the tree still carries an `expose-mc-detect-diag/` directory, so Mission Control remains the edge the author is still probing.

## FAQ

### How do I enable fast switching on my Mac?

Install InstantSpaceSwitcher and grant it accessibility access. It synthesises a trackpad gesture with an artificially high velocity so macOS skips the space switching animation, and it does this without disabling System Integrity Protection.

### Does InstantSpaceSwitcher need System Integrity Protection disabled?

No. Disabling SIP is the first item in the feature list by its absence, and using native macOS spaces the way the system already manages them is what keeps the permission down to accessibility only.

### Why does macOS say the app is damaged or cannot be verified?

Because the app is not signed, and signing would require a paid Apple Developer account. The README links to a guide for allowing unsigned applications on macOS Sequoia and newer, then tells you to grant the accessibility permission on next launch.

### How is this different from a tiling window manager like Amethyst or Aerospace?

Those tools rearrange windows into layouts across spaces and monitors. InstantSpaceSwitcher changes nothing about layout; it only makes the existing native space switch happen without the animation, which makes it something you can run alongside a tiling manager.

## Sources

- [Issues](https://github.com/jurplel/InstantSpaceSwitcher/issues)
- [jurplel/InstantSpaceSwitcher on GitHub](https://github.com/jurplel/InstantSpaceSwitcher)
- [License: MIT](https://github.com/jurplel/InstantSpaceSwitcher/blob/main/LICENSE)
- [README](https://github.com/jurplel/InstantSpaceSwitcher/blob/main/README.md)
- [Releases](https://github.com/jurplel/InstantSpaceSwitcher/releases)

---

Hysen Labs editorial analysis, written from the project's own repository and release notes. Cite the canonical page: https://hysenlabs.com/projects/jurplel-instantspaceswitcher
