yabai README

The project's README from github.com/asmvik/yabai. As one markdown file: README.md.

Banner

Tiling window management for the Mac.

License Badge Documentation Badge Wiki Badge Changelog Badge Version Badge

About

Screenshot

yabai is a window management utility that is designed to work as an extension to the built-in window manager of macOS. yabai allows you to control your windows, spaces and displays freely using an intuitive command line interface and optionally set user-defined keyboard shortcuts using ↗ skhd and other third-party software.

The primary function of yabai is tiling window management; automatically modifying your window layout using a binary space partitioning algorithm to allow you to focus on the content of your windows without distractions. Additional features of yabai include focus-follows-mouse, disabling animations for switching spaces, creating spaces past the limit of 16 spaces, and much more.

Installation and Configuration

Requirements and Caveats

Please read the below requirements carefully. Make sure you fulfil all of them before filing an issue.

Requirement Note
Operating System Intel x86-64 Big Sur 11.0.0+, Monterey 12.0.0+, Ventura 13.0.0+, Sonoma 14.0.0+, Sequoia 15.0+, and Tahoe 26.0+ is supported.
Operating System Apple Silicon Monterey 12.0.0+, Ventura 13.0.0+, Sonoma 14.0.0+, Sequoia 15.0+, and Tahoe 26.0+ is supported.
Accessibility API yabai must be given permission to utilize the Accessibility API and will request access upon launch. The application must be restarted after access has been granted.
Screen Recording yabai must be given Screen Recording permission if and only if you want to enable window animations, and will request access when necessary. The application must be restarted after access has been granted.
System Preferences (macOS 11.x, 12.x) In the Mission Control pane, the setting "Displays have separate Spaces" must be enabled.
System Settings (macOS 13.x, 14.x, 15.x, 26.x) In the Desktop & Dock tab, inside the Mission Control pane, the setting "Displays have separate Spaces" must be enabled.

Please also take note of the following caveats.

Caveat Note
System Integrity Protection (Optional) System Integrity Protection can be (partially) disabled for yabai to inject a scripting addition into Dock.app for controlling windows with functions that require elevated privileges. This enables control of the window server, which is the sole owner of all window connections, and enables additional features of yabai.
Code Signing When building from source (or installing from HEAD), it is necessary to codesign the binary so it retains its accessibility and automation privileges when updated or rebuilt.
Finder Desktop Some people disable the Finder Desktop window using an undocumented defaults write command. This breaks focusing of empty spaces and should be avoided when using yabai. To re-activate the Finder Desktop, run: "defaults write com.apple.finder CreateDesktop -bool true".
NSDocument-based Applications Windows that utilize native macOS tabs such as Terminal and Finder, do not behave correctly when creating tabs. Avoid creating tabs in these applications, consider alternatives that do not use NSDocument's tab system, or make these windows float using rules.
System Preferences (macOS 11.x, 12.x) In the Mission Control pane, the setting "Automatically rearrange Spaces based on most recent use" should be disabled for commands that rely on the ordering of spaces to work reliably.
System Settings (macOS 13.x, 14.x, 15.x, 26.x) In the Desktop & Dock tab, inside the Mission Control pane, the setting "Automatically rearrange Spaces based on most recent use" should be disabled for commands that rely on the ordering of spaces to work reliably.
System Settings (macOS 14.x, 15.x, 26.x) In the Desktop & Dock tab, inside the Desktop & Stage Manager pane, the setting "Show Items On Desktop" should be enabled for display and space focus commands to work reliably in multi-display configurations.
System Settings (macOS 14.x, 15.x, 26.x) In the Desktop & Dock tab, inside the Desktop & Stage Manager pane, the setting "Click wallpaper to reveal Desktop" should be set to "Only in Stage Manager" for display and space focus commands to work reliably.

License and Attribution

yabai is licensed under the ↗ MIT License, a short and simple permissive license with conditions only requiring preservation of copyright and license notices. Licensed works, modifications, and larger works may be distributed under different terms and without source code.

Thanks to @fools-mate for creating a logo and banner for this project and making them available for free.

Thanks to @dominiklohmann for contributing great documentation, support, and more, for free.

Disclaimer

Use at your own discretion. I take no responsibility if anything should happen to your machine while trying to install, test or otherwise use this software in any form. You acknowledge that you understand the potential risk that may come from disabling ↗ System Integrity Protection on your system, and I make no recommendation as to whether you should or should not disable System Integrity Protection.

yabai (asmvik/yabai)

Searching Database…

29.7K ·GitHub
What is this?Yabai is a tiling window manager for macOS that extends the system's built-in window manager, arranging windows automatically using a binary space partitioning algorithm.
Is this a separate app I open, or something that runs in the background and I control via a terminal?It's a background utility controlled through its own command-line interface; you don't interact with a window like a regular app.
How do I install and set it up?There's no single install command in the README; you follow the yabai wiki, which documents multiple installation methods and how to uninstall it completely.
Do I need anything else to set up keyboard shortcuts?Yabai itself doesn't handle shortcuts; you pair it with skhd (a separate hotkey daemon) or any other third-party shortcut tool to trigger its commands.
Do I need to disable System Integrity Protection to use it?Partially disabling SIP is optional but required for advanced features, since yabai injects a scripting addition into Dock.app to control the window server with elevated privileges.
Does it work on Intel Macs too, or only Apple Silicon?Both are supported: Intel Macs need macOS Big Sur 11.0+ while Apple Silicon Macs need Monterey 12.0+, up through the current Tahoe 26 release.
What macOS permissions does it need?It requires Accessibility API access to control windows at all, and additionally needs Screen Recording permission if you want window animations enabled.
What does binary space partitioning actually do for my windows?It automatically splits your screen into a tree of rectangular regions as you open and close windows, so the layout stays tiled without you manually resizing anything.
What else can yabai do besides tiling?It also supports focus-follows-mouse, disabling space-switching animations, and creating more than the default 16 macOS Spaces, among other extras.
Are there apps that don't play well with yabai?Apps that use native macOS document tabs, like Terminal and Finder, misbehave when creating tabs under yabai; the recommendation is to avoid tabbing in them or set rules to float those windows.
Can I skip disabling SIP entirely?Yes, SIP-related features are optional; basic tiling and window control work without touching System Integrity Protection, it's only needed for the elevated window-server features.
Creator
asmvik
Size
7.3 MB
Stars
29.7K
Age
7y
Commits · 90 Days