Product definition

What is yabai?

yabai turns macOS into a tiling window manager. Instead of stacking windows and dragging them around, it arranges them automatically using binary space partitioning, so every window fills its share of the screen and the layout redraws as windows open and close. It extends the built-in window manager rather than replacing it, which means it can also do things macOS cannot: focus-follows-mouse, switching spaces without the animation, and creating more spaces than the built-in limit of 16. It is driven from the command line, with keyboard shortcuts added through a separate hotkey daemon such as skhd. It is free, MIT-licensed, and aimed at people who want their windows managed by rule rather than by hand.

Verified product facts

Type
window managerEditorially reviewed
Platform
macOS
Apple Silicon
Yes
Pricing
Open sourceDeveloper-stated
Open source
Yes
Developer
Åsmund VikaneDeveloper-stated
Relationship to Nuanyue
Third-party product — not published by NuanyueEditorially reviewed
Licence
MIT
Current version
7.1.25Developer-stated
Official website
github.com/asmvik/yabai

Last updated . Facts marked developer-stated come from the developer and are not independently confirmed; editorially reviewed marks a Nuanyue judgement.

Key features

What yabai does at a glance.

  • Automatic tiling layout

    Using a binary space partitioning algorithm

  • Control of windows, spaces and displays

    From a command-line interface

  • User-defined keyboard shortcuts, typically

    Through the companion skhd hotkey daemon

  • Focus-follows-mouse

    So the window under the pointer takes focus

  • Disabling the animation when switching spaces

  • Creating spaces

    Beyond the built-in macOS limit of 16

  • An optional scripting addition injected

    Into Dock.app for window control that needs elevated privileges

Common tasks

What you can use yabai for

  • Arranging windows automatically instead of dragging and resizing them
  • Switching spaces without waiting for the macOS animation
  • Driving window management from scripts and keyboard shortcuts rather than the mouse
  • Working with more than the 16 spaces macOS allows by default
Audience

Who is yabai for?

  • People who want their windows laid out by rule and are comfortable editing a config file
  • Users willing to grant accessibility permissions and change a few Mission Control settings to get window management macOS does not offer
Not a fit

Who is yabai not for?

  • Anyone who wants window management that works without granting accessibility access and adjusting system settings
  • Users who are not comfortable running a command-line tool that can, with SIP partly disabled, control the window server

Limitations

  • Must be granted Accessibility API permission, and the application has to be restarted after access is granted
  • Screen Recording permission is required if you want window animations, and the app must be restarted afterwards
  • The Mission Control setting 'Displays have separate Spaces' must be enabled, in both older System Preferences and current System Settings
  • Several other settings have to be changed for full reliability, including disabling 'Automatically rearrange Spaces based on most recent use'
  • The optional scripting addition requires partially disabling System Integrity Protection, which the author explicitly makes no recommendation about
  • Windows in NSDocument-based applications such as Terminal and Finder do not behave correctly when creating native tabs
  • Building from source or installing from HEAD requires codesigning the binary so it keeps its accessibility and automation privileges
  • The project is distributed as source rather than as a signed, notarised installer

Strengths and trade-offs

What yabai does well, and what to weigh before choosing it. Points marked developer-stated come from the developer’s own material and have not been independently confirmed.

Strengths

  • Lays windows out automatically with a binary space partitioning algorithm, so the layout adapts as windows are opened and closed.Developer-stated
  • Extends the built-in macOS window manager rather than replacing it, and is controlled from a command-line interface.Developer-stated
  • Adds capabilities macOS does not have, including focus-follows-mouse, disabling space-switch animations, and creating spaces past the built-in limit of 16.Developer-stated
  • Keyboard shortcuts are left to a separate hotkey daemon such as skhd, so the tool does not impose its own key bindings.Developer-stated
  • Supports Apple silicon Macs running Monterey 12.0 or later, and Intel Macs from Big Sur 11.0.
  • Free and open source under the MIT licence.

Trade-offs

  • Requires Accessibility API permission, and the application must be restarted before it works.
  • Full functionality depends on changing several system settings, including enabling 'Displays have separate Spaces' and disabling 'Automatically rearrange Spaces based on most recent use'.
  • The optional scripting addition needs System Integrity Protection to be partially disabled, and the author makes no recommendation about whether to do so.
  • Native tabs in NSDocument-based applications such as Terminal and Finder do not behave correctly; the project advises floating those windows or avoiding tabs.
  • Installing from source or from HEAD requires codesigning the binary so it retains its accessibility and automation privileges.

First-use experience

What the app asks of you when you set it up. Only established facts appear here; anything we could not confirm is left out rather than guessed at.

Installation
Installed from source — the release publishes a source archive rather than an installer — and building from source or from HEAD requires codesigning the binary so it keeps its permissions.
First launch
yabai requests Accessibility API access on launch and must be restarted once that has been granted; Screen Recording access is requested only if window animations are enabled.
System integration Developer-stated
Works as an extension to the built-in macOS window manager, and can optionally inject a scripting addition into Dock.app to reach the window server when SIP is partially disabled.
Apple Silicon
Supported

What it does

macOS stacks windows and lets you move them. yabai lays them out instead: it applies a binary space partitioning algorithm, which splits the screen and then splits the pieces again, so each window occupies a region and the whole arrangement redraws whenever a window appears or disappears. The project is careful about what it claims to be — a window management utility designed to work as an extension to the built-in window manager of macOS, not a replacement for it.

Around that core it adds things macOS does not offer. Focus follows the mouse rather than requiring a click. Switching spaces can be made instant by turning off the animation. And spaces can be created past the built-in limit of 16. Everything is driven from a command-line interface, with windows, spaces and displays all addressable, so window management can live in scripts as easily as in key bindings.

Shortcuts, and the permissions it needs

yabai deliberately does not own your keyboard. Shortcuts are left to separate software, and the project points at skhd — its companion hotkey daemon — while noting that anything suitable will do. Sample configurations live in the repository’s examples directory.

Installing it means accepting a set of requirements that are worth reading before you start. yabai must be granted the Accessibility API, and it has to be restarted after access is granted. Screen Recording permission is needed only if you enable window animations, and again requires a restart. In Mission Control, “Displays have separate Spaces” must be enabled, and “Automatically rearrange Spaces based on most recent use” must be disabled for commands that depend on space ordering. On multi-display Macs, two further Stage Manager settings have to be adjusted.

The scripting addition, and its cost

Some window operations need to reach the window server, which belongs to Dock.app. To do that, yabai can inject a scripting addition into Dock, and this requires partially disabling System Integrity Protection. The project marks it as optional, lists it as a caveat rather than a feature, and the author states plainly that he takes no responsibility for anything that happens to your machine and makes no recommendation about whether to disable SIP. It is the one part of yabai that asks you to give up a system protection.

Two smaller caveats are worth knowing. Windows in NSDocument-based applications such as Terminal and Finder do not behave correctly when creating native tabs, so those windows are better floated or left tab-free. And building from source — the only distribution route, since the release publishes a source archive — requires codesigning the binary so it retains its accessibility and automation privileges.

Questions about yabai

Does yabai replace the macOS window manager?

No. The project describes it as a window management utility designed to work as an extension to the built-in window manager of macOS. It layers tiling and extra commands on top rather than taking over.Developer-stated

What permissions does yabai need?

It must be granted the Accessibility API, and restarted afterwards. Screen Recording permission is needed only if you enable window animations, and again requires a restart. Several Mission Control settings also have to be changed, including enabling 'Displays have separate Spaces'.

Do I have to disable System Integrity Protection to use yabai?

Not to use it at all. System Integrity Protection can be partially disabled so yabai can inject a scripting addition into Dock.app, which enables control of the window server and additional features. The project marks this as optional and its author explicitly declines to recommend either way.

Which macOS versions and Macs does yabai support?

Intel Macs from Big Sur 11.0.0 onward, and Apple silicon Macs from Monterey 12.0.0 onward, with Ventura, Sonoma, Sequoia and Tahoe also listed as supported.

How do I set up keyboard shortcuts for yabai?

The project leaves this to separate software and points at skhd, its companion hotkey daemon, though any suitable tool will do. Sample configuration files are published in the repository's examples directory.Developer-stated

Alternatives to yabai

Apps that could replace this one — the same job, a different trade-off.

  • Amethyst

    Automatic tiling window manager for macOS, modelled on xmonad.

    Both are tiling window managers for macOS, but Amethyst is a graphical application with its own preferences window while yabai is a command-line tool configured through a file and extended with a separate hotkey daemon.

    • System Tools
    • Open Source
    • v0.24.3

Competitors

Direct competitors: overlapping features aimed at the same users.

  • Rectangle app icon

    Rectangle

    Free open-source window manager for macOS, with a paid Pro tier.

    Both arrange windows with the keyboard, but Rectangle snaps a window to a position when asked while yabai keeps a continuous tiling layout that rearranges itself.

    • System Tools
    • Open Source
    • v2.0.3

Works well with

Not a replacement — apps commonly used alongside this one.

  • skhd

    Simple hotkey daemon for macOS.

    yabai manages the windows and skhd turns key presses into yabai commands; the yabai project points at skhd as the way to add keyboard shortcuts.

    • Utilities
    • Open Source
Get it

Sources

Facts on this page are checked against the sources below. Last updated .

How Nuanyue grades sources →