How KiwiDesk compares

KiwiDesk and the other macOS window managers

macOS has good window managers, and this page is not an argument that they are bad. If you are looking for an alternative to yabai, AeroSpace or Magnet — or working out which to start with — it is here so you can see quickly which one fits the way you work, including the cases where the answer is not KiwiDesk.

Everything here was checked against each project’s own documentation, and the claims that turn on a source link to it — including ours. Where we could not verify something, this page says so rather than guessing.

How KiwiDesk compares
FeatureKiwiDeskyabaiAeroSpaceRiftOmniWMMagnet
Setting it upSettings app or LuaConfig fileTOML fileTOML fileSettings app or TOMLSettings app
UpdatesAuto check, installs in-appHomebrewHomebrewHomebrewAuto check, brew to installApp Store
MouseDrag, drop, reorderKeyboard-firstKeyboard onlyTrackpad gesturesDrag, resize, gesturesEdge snapping
LayoutsSevenThreeFourFiveTwoSnap regions
On screenFocus ring, app & space barsJankyBorders, SketchyBarNoneMenu barMenu barNone
LicenceFree, MITFree, MITFree, MITFree, open sourceFree, GPL-2.0Paid, closed
PermissionsAccessibilityAccessibilityAccessibilityAccessibilityAccessibility + Input MonitoringAccessibility
System Integrity ProtectionStays onMust be off for full featuresStays onStays onStays onStays on
macOS DesktopsNative, per-Desktop profilesOnly with SIP offReplaced by its ownWorks with separate SpacesNeeds separate Spaces on
Native tabsKeeps its tileKnown issueKnown issueKnown issueSupported
ShortcutsBuilt in, with modesSeparate app (skhd)Built in, with modesBuilt inBuilt in, Hyper keyBuilt in
ScriptingLua, CLI, eventsCLI, signals, queriesCLI, callbacksCLINone documented
CommunityNew, smallLargest — skhd, SketchyBarLargeNew, smallNew, smallNone — commercial app

The cells are deliberately terse — the sections below carry the reasoning, and the guide explains KiwiDesk’s seven layouts. Layout counts are each project’s own; checked against their documentation in August 2026. These projects move quickly, so please tell us if anything here has gone stale.

What is actually different about KiwiDesk

Five things — and none of them is that the others are bad at their job.

A Settings app with a scripting VM underneath

yabai, AeroSpace and Rift are config-file-first by design: write a file, reload, repeat. That is a good model for people who enjoy it and a wall for everyone else. OmniWM ships a settings app too, though — so a GUI on its own is no longer what separates KiwiDesk, and this page is not going to pretend otherwise. What is different is what sits underneath it: KiwiDesk pairs its Settings app with a sandboxed Lua VM, a CLI and a JSON event stream, where OmniWM pairs its own with a TOML file. Everything — layouts, gaps, per-app rules, shortcuts, profiles — is reachable from either end, so the depth is something you reach for rather than the price of entry.

Native tabs do not scatter your layout

Open a second tab in Finder, Safari or Ghostty and macOS quietly creates a second window — which is why tabs tend to spray stray tiles across a tiling layout. Ghostty’s own documentation names this as a known issue for yabai and AeroSpace, and says the fix is not theirs to make: it is how the macOS window API works. Rift has it open as an issue of its own; OmniWM lists native-tab support among its features, though its docs do not describe the behaviour. KiwiDesk recognises the switch and keeps the tab group in one tile, with its float state and its place in the order intact. What it cannot do — and nor can anyone else — is split two tabs into two tiles: that would need cross-process window reparenting macOS does not permit, and we say so plainly rather than leaving you to discover it.

Built for the mouse as well as the keyboard

yabai and AeroSpace are keyboard-first by design — AeroSpace has no mouse story at all — and for a lot of people that is the wall. KiwiDesk is built for both, though it is not alone in that: OmniWM has its own mouse resizing and trackpad gestures, and on this axis the two of us are comparable rather than one ahead. What KiwiDesk gives you is a window you drag across the desktop with live drop targets showing where it will land, a Space Bar you can drop that window onto to send it to another space, and a focus ring that tells you where the keyboard is in a dense layout. The App Bar and Space Bar are part of the app rather than a separate daemon to install and configure, and the shortcuts, modes and app-launch bindings are built in too — where yabai reaches for skhd.

Native macOS Desktops, without switching SIP off

Being straight about this one: KiwiDesk’s own spaces are emulated by parking inactive windows off in a corner — the same technique AeroSpace documents, and we cite them for it in our own docs. What is different is that KiwiDesk also drives the native macOS Desktops you already swipe between: send a window to Desktop 3, switch to it, and bind a profile to a Desktop so your whole setup loads when you arrive there. yabai reaches those operations through a scripting addition that needs SIP disabled. KiwiDesk never asks you to disable SIP, and never will. And a window you want everywhere — a call, a notes panel, a calculator — can be made sticky so it follows you across every space, carrying a mark on the window itself and a badge on its Space Bar tile.

It asks for as little as macOS allows

KiwiDesk requests Accessibility and nothing else. No Input Monitoring: the hotkeys go through Carbon, so the permission that reads every keystroke is never asked for. No Screen Recording. And never SIP. It also works whether macOS’s “Displays have separate Spaces” is on or off — OmniWM’s own README requires it on and pauses window management until you enable it. Updates arrive in the app itself, so there is no brew upgrade habit to keep. The cost, stated plainly: without Input Monitoring, macOS’s own shortcuts win any conflict with yours — a trade we would make again, but a trade.

The other tools, one by one

yabai

What it does well

The most capable and most scriptable window manager on macOS, with by far the deepest community. Its query API and signals are the reason so much of the macOS ricing ecosystem — SketchyBar, JankyBorders, skhd — grew up around it. If you want to program your window manager, yabai is still the reference.

How KiwiDesk differs

Two differences. Its fuller feature set — moving windows between Spaces, opacity, window sub-levels — needs the scripting addition, which requires partially disabling System Integrity Protection; KiwiDesk reaches Desktop operations through a bridge that works with SIP on, and simply does not offer the parts that would need SIP off. And yabai is configured by editing a shell script, with no settings UI at all. Where yabai is genuinely ahead of us: its ecosystem, and the sheer volume of published configurations to copy from. It has a five-year head start and it shows.

AeroSpace

What it does well

Fast, SIP-clean and refreshingly opinionated. Its i3-style workspace model sidesteps macOS Spaces entirely, which makes it predictable in a way native Spaces rarely are, and its documentation is unusually good — good enough that our own docs send people to it.

How KiwiDesk differs

AeroSpace is keyboard-only and TOML-only: no settings UI, no focus ring, no bars, no mouse story. It also deliberately does not touch the native macOS Desktops — its workspaces replace them rather than working alongside them, so Mission Control and a Desktop-bound profile are not part of the model. KiwiDesk hides inactive windows exactly the way AeroSpace does, and adds the native Desktop layer on top of it.

Rift

What it does well

The newest of these and the most technically ambitious: written in Rust, SIP-clean, with five layouts including niri-style scrolling columns and trackpad gestures. If you want a fast, modern, config-file window manager, it is a serious option.

How KiwiDesk differs

Rift is configured through a TOML file with no settings app, and its on-screen surface is a menu bar item rather than focus rings and bars. It is also young and moving quickly, which cuts both ways: features land fast, and things change. We could not find documentation of how it handles native macOS tabs, so this page makes no claim about that in either direction.

OmniWM

What it does well

The closest thing here to a peer: Swift, SIP-clean, notarized builds, and the only other one in this list with a real settings app. Its niri-style scrolling and dwindle BSP layouts are well made, and it has grown fast.

How KiwiDesk differs

Two differences worth knowing before you choose. It requires Input Monitoring at launch, where KiwiDesk asks only for Accessibility; and it requires macOS’s “Displays have separate Spaces” to be on, pausing window management until it is, where KiwiDesk works either way. Underneath its GUI is a TOML file rather than a scripting VM, it ships two layouts to our seven, and it is GPL-2.0 where KiwiDesk is MIT — which matters if you intend to reuse the code.

Magnet and Rectangle

What it does well

The one most Mac users have actually heard of, and deservedly so: it costs a few euros, you understand it in thirty seconds, and dragging a window to a screen edge solves the problem most people actually have. Rectangle does much the same thing for free.

How KiwiDesk differs

Magnet snaps windows into regions; it does not manage a layout. There is no automatic tiling when a window opens, no spaces model, no per-app rules, no profiles that reshape the whole desktop, and no scripting. It is also paid and closed source. If what you want is “Magnet, but it keeps arranging things for me”, that is roughly the gap KiwiDesk fills.

So which one should you use?

Choose…

yabai
if you want to script your window manager deeply, you are at home in a shell config, and you accept the SIP trade-off for its full feature set.
AeroSpace
if you want a fast, keyboard-only, i3-style workflow, and you would rather replace macOS Spaces than work with them.
Rift
if you want a modern Rust config-file window manager with scrolling columns, and a young project does not put you off.
OmniWM
if you want a Swift, SIP-clean window manager with a settings app and niri-style scrolling, and neither Input Monitoring nor the separate-Spaces requirement bothers you.
Magnet
if you just want to snap a window to half the screen and never think about it again.
KiwiDesk
if you want real tiling without writing a config file first — a Settings app, a mouse that works, focus rings and bars built in, native Desktop and profile binding with SIP on, and Lua underneath for when you outgrow the GUI.

Free and MIT-licensed, for macOS 14 and later on Apple silicon. Arriving from one of the tools above? The Lua reference shows how far the configuration actually goes.