HackerReposA FIELD GUIDE TO OPEN SOURCE
ProSponsor the shelf♧ 0
← Back to top all-time
asmvik
yabai
C2019–2026
asmvik / yabai

yabai

A tiling window manager for macOS based on binary space partitioning

107Distinct people
134Mentions
3Explicit recommenders
29.8KGitHub stars
REPOSITORY AT A GLANCE

What to know before exploring

What it is

A tiling window manager for macOS based on binary space partitioning

GitHub

Where it is used

  • SketchyBar — SketchyBar integrates with yabai to power workspace indicators that show active desktops, focused windows, and switching in real time. Source

What people are saying

Interesting. I used to daily drive <https://github.com/asmvik/yabai> for almost a year until a major macOS update broke it and I just didn't have it in me to diagnose the…

thefossguy69 used a recommendation phrase. 3 indexed comments match. This is a phrase match, not a verdict.

No classified warning is attached to this page. Read the discussions before treating silence as approval.

Also in these discussions

Mentioned in the same Hacker News threads. That is not proof they are substitutes.

This week on Hacker News

Nov 8–Nov 15 UTC · Direct repository links and separately labeled related project stories. Indexed through 11/15/2026, 3:38:16 PM UTC.

No direct repository links were found in the indexed HN discussions over the past seven days. Older discussions are available below.

Mentions over time

HN mentions by year134 dated mentions

Observed mentions: 2019-08-25 20:04:44 UTC to 2026-05-30 16:22:44 UTC.

01020302019-01-01 00:00:00 UTC to 2020-01-01 00:00:00 UTC (exclusive): 11 mentions; 2 submissions, 9 comments20192020-01-01 00:00:00 UTC to 2021-01-01 00:00:00 UTC (exclusive): 21 mentions; 2 submissions, 19 comments2021-01-01 00:00:00 UTC to 2022-01-01 00:00:00 UTC (exclusive): 22 mentions; 2 submissions, 20 comments2022-01-01 00:00:00 UTC to 2023-01-01 00:00:00 UTC (exclusive): 30 mentions; 4 submissions, 26 comments20222023-01-01 00:00:00 UTC to 2024-01-01 00:00:00 UTC (exclusive): 29 mentions; 2 submissions, 27 comments2024-01-01 00:00:00 UTC to 2025-01-01 00:00:00 UTC (exclusive): 12 mentions; 0 submissions, 12 comments2025-01-01 00:00:00 UTC to 2026-01-01 00:00:00 UTC (exclusive): 4 mentions; 1 submissions, 3 comments2026-01-01 00:00:00 UTC to 2027-01-01 00:00:00 UTC (exclusive): 5 mentions; 2 submissions, 3 comments. Incomplete calendar period.2026*

* An incomplete calendar period is marked with an outlined bar. Its count is not directly comparable with a full period.

Counts come from the repository’s dated source evidence. Index cutoff: 2026-11-02 08:16:59 UTC.

View mention counts and date ranges
UTC ranges include their start and exclude their end. Select a period to filter the source evidence.
PeriodStart (UTC)End (exclusive, UTC)MentionsSubmissionsComments
20192019-01-01 00:00:00 UTC2020-01-01 00:00:00 UTC1129
20202020-01-01 00:00:00 UTC2021-01-01 00:00:00 UTC21219
20212021-01-01 00:00:00 UTC2022-01-01 00:00:00 UTC22220
20222022-01-01 00:00:00 UTC2023-01-01 00:00:00 UTC30426
20232023-01-01 00:00:00 UTC2024-01-01 00:00:00 UTC29227
20242024-01-01 00:00:00 UTC2025-01-01 00:00:00 UTC12012
20252025-01-01 00:00:00 UTC2026-01-01 00:00:00 UTC413
2026 (partial)2026-01-01 00:00:00 UTC2027-01-01 00:00:00 UTC523

From the project README

An excerpt from the repository, fetched Nov 14, 2026.

Read the project’s introduction
Tiling window management for the Mac. About 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 The ↗ yabai wiki has both brief and detailed installation instructions for multiple installation methods, and also explains how to uninstall yabai completely. Sample configuration files can be found in the ↗ examples directory. Refer to the ↗ documentation or the wiki for further information. Keyboard shortcuts can be defined with ↗ skhd or any other suitable software you may prefer. 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.
Read the full README on GitHub

What Hacker News says

11 sources
From the readme (https://github.com/koekeishiya/yabai/blob/master/README.md): * The WindowServer is a single point of contact for all applications. It is central to the implementation of the GUI frameworks and many other services. Because of this, System Integrity Protection must be disabled for yabai to function properly.* I haven’t tried it because that language made me think it was a dead end out of the gate... are you running it with SIP enabled?
In Ask HN: What are your favorite tools for windows and mouse management on macOS?
Yabai does function without disabling SIP [1], just that certain features do not work without doing so. Whether or not those functions are critical to your workflow you'd have to figure that out for yourself. They are functions that you couldn't get functioning without SIP being disabled, as far as I know. Amethyst doesn't require disabling sip because it doesn't support the same features that yabai does. It does support different rules for layouts than yabai, which only supports floating and bsp rules. If you didn't like Amethyst's handling of windows, you can try adding different layout rules; there are several that you can cycle through in the settings. Tangentially related, Karbiner Elements [2] will let you modify your keyboard so you can say, invoke hyper by pressing down the caps lock keys so it would be easier to map keys to globa
Read the rest
l functions like launching applications or moving windows around. I use it extensively for throwing windows to different spaces in yabai, or switching spaces. Yabai can swap spaces without any animation. You can reduce animation of changing spaces in macos from a swiping animation to a fade animation in accessibility settings, if that is sufficient for your needs. Karabiner can also bind keys to control the mouse cursor. An app (that may be pretty much dead) that I found somewhat interesting is Switchem [3]. Dead as in the website for its independent release no longer exists, but the functionality for it might be enough for you anyway. It allows you to create workspaces that you can invoke with keyboard shortcuts that lay out the applications on the screen the same way each time. So rather than using spaces for managing windows, you switch from a "coding" workspace which has a terminal window and a web browser and an IDE to a "research" workspace which might open up a notes application and a web browser. Moom [4] also allows you to define custom layouts and save them. It can be controlled by the keyboard entirely. [1] https://github.com/koekeishiya/yabai/wiki/Disabling-System-I... [2] https://pqrs.org/osx/karabiner/ [3] https://setapp.com/apps/switchem [4] https://manytricks.com/moom/
In Ask HN: What are your favorite tools for windows and mouse management on macOS?
Interesting! The active project (rewrite) moved here apparently: https://github.com/koekeishiya/yabai Just to piggyback on your interest: My comments were more in the way of evangelizing Plasma (iirc KDE is the company, Plasma is their DE product), to share awesome features that I'd love to see generalized on all platforms. In searching for a productive DE, provided you only want GUI config on the user side and can learn to juggle between 3-4 settings panels, Plasma beats them all. Defaults are very close to Windows 10 (rather the other way around historically but whatever), with a touch of Linux twist here and there (magnet sides, feature-rich title bar menu, etc.) The more advanced stuff is only necessary to maximize X (real estate, aesthetics, shortcut-driven controls...), some of it becomes invaluable over time. I strongly encourage y
Read the rest
ou to spend some time with KDE's Plasma, it's inspiring regarding the 'desktop paradigm' insofar as we just want to refine, not disrupt it (familiarity is a good thing for users imho).
In Show HN: Alt-tab-macos – Windows-style alt-tab on macOS
I cannot say enough good things about chwm (or yabai[0], as he now calls it), by far the best window management tool I've used on macOS. Unlike most other tools, it is instantaneous and requires no mental effort. In conjunction with skhd[1], it gives a super clean interface for you to completely control your desktop. It's only too bad that you have to disable SIP for all the APIs to get exposed. [0]: https://github.com/koekeishiya/yabai [1]: https://github.com/koekeishiya/skhd
In Show HN: Alt-tab-macos – Windows-style alt-tab on macOS
I personally use Contexts (https://contexts.co) for switching between applications. It functions similar to rofi's application switcher (fuzzy keyboard driven switching). There are a couple of automatic tiling window managers for MacOS, the most notable being Yabai (https://github.com/koekeishiya/yabai) and Amethyst (https://github.com/ianyh/Amethyst). Yabai doesn't handle window switching on its own but it can use SKHD (https://github.com/koekeishiya/skhd) or any other application that can bind terminal commands to keyboard shortcuts such as Hammerspoon (https://www.hammerspoon.org) or BetterTouchTool (https://folivora.ai) or even Keyboard Maestro. The commands are context-aware of spaces and the placement of windows on the x-y plane so you can move between windows relative to their position on the screen.
In From Mac to Linux – the setup I've grown to love

MAKE YOURSELF AT HOME

A few shortcuts

/
Search the collection
?
Open this guide
Esc
Close dialogs and navigation

Your saved repositories and interests stay in this browser.