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, 6:01:32 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

12 sources
If your into the tiling window manager experience, I would highly recommend looking into yabai + skhd + Sketchybar - https://github.com/koekeishiya/yabai - https://github.com/koekeishiya/skhd - https://github.com/FelixKratz/SketchyBar Some honorable mentions: Hammerspoon - Unlock insane levels of configuration/automation (https://github.com/Hammerspoon/hammerspoon) Raycast - Spotlight search replacement (https://www.raycast.com/) LuLu Firewall - An amazing FOSS firewall (https://github.com/objective-see/LuLu)
In Ask HN: What macOS apps/programs do you use daily and recommend?
Here's my .yabairc https://github.com/kcrwfrd/dotfiles/blob/master/link/.yabair... Looking through it I don't see a setting for instant space switching... I think maybe it's provided by default when you install the scripting addition? https://github.com/koekeishiya/yabai/issues/1527 I have keybindings in my skhd for focusing spaces: https://github.com/kcrwfrd/dotfiles/blob/master/skhd/space I usually just keep 10 spaces at all times rather than creating new ones on demand.
In AeroSpace is an i3-like tiling window manager for macOS
Not OP, but I also have instant space switching enabled with yabai. Here is my yabairc and skhdrc. yabairc - https://github.com/SxC97/dotfiles/blob/main/.yabairc skhdrc - https://github.com/SxC97/dotfiles/blob/5db5e13f894f767722758... If it's still not working, make sure SIP is disabled and the Scripting Addition is installed and loaded. Here's a link to the instructions as it's a little complicated: https://github.com/koekeishiya/yabai/wiki/Installing-yabai-(...
In AeroSpace is an i3-like tiling window manager for macOS
The biggest QOL improvements imo are found in the approach to the user-facing API design. Compare basic multi-monitor commands in something like bspwm[1] or yabai[2][3] to twms on Windows where this is typically handled transparently by directional `move` and `focus` commands understanding monitor boundaries. Besides this, Whim has implemented a very functional ctrl+p style command palette which provides a great interface for more advanced on-the-fly/one-time window manager interactions. With komorebi I think that having different border colours to indicate different types of containers is very helpful (one colour for single window stacks, a different colour for monocle containers, a different colour for stacks with multiple windows), as well as custom window-based work area offsets[4] (so if you have an ultrawide monitor with only a sing
Read the rest
le window on a workspace, you can add offsets to the sides so it doesn't stretch across the whole width and give poor usability). It's not really any one "big thing" but rather a difference in approach which adds up over many small design decisions. [1]: https://github.com/baskerville/bspwm/issues/563 [2]: https://github.com/koekeishiya/yabai/issues/505 [3]: from my own personal yabai config - imo this is not really acceptable for a user facing API, especially for basic commands like focusing and moving: ``` # focus window alt - h : yabai -m window --focus west || yabai -m display --focus west alt - j : yabai -m window --focus south || yabai -m display --focus south alt - k : yabai -m window --focus north || yabai -m display --focus north alt - l : yabai -m window --focus east || yabai -m display --focus east # swap window alt + shift - h : yabai -m window --swap west || yabai -m window --display west && yabai -m display --focus west alt + shift - j : yabai -m window --swap south || yabai -m window --display south && yabai -m display --focus south alt + shift - k : yabai -m window --swap north || yabai -m window --display north && yabai -m display --focus north alt + shift - l : yabai -m window --swap east || yabai -m window --display east && yabai -m display --focus east ``` [4]: https://hachyderm.io/@LGUG2Z/112493589633823318
In AeroSpace is an i3-like tiling window manager for macOS
Oh, I like the fake Spaces approach. I have considered trying that by minimizing windows, but would never get around to it. Tiling is doomed to sadness on macOS, because of lack of APIs. But this is probably the most performant approach. Have used yabai, but only for moving windows and focus-follows-mouse. Not for tiling. Because flaky (not yabai’s fault). Thanks nikitabobko. Looking forward to trying it as soon as I figure out how to mod alt-tab to ignore all the windows (from every fake workspace) in the corner. Also, linked in the docs, JankyBorders. Nice. https://github.com/koekeishiya/yabai https://github.com/lwouis/alt-tab-macos https://github.com/FelixKratz/JankyBorders
In AeroSpace is an i3-like tiling window manager for macOS
Historically I'd install refind/refit and install(use a Debian boot on my work laptops, but haven't been brave enough to do that on the m1's yet. So I took have been living the Mac life for a while now. I hadn't been using Spaces much, instead kind of juggling a stack of a couple active windows on one screen. Like the author though I did decide to try out Yabai, and it's been an pretty decent tiling system for me. Every now and then it feels like an obvious should work split won't work, or like today Zoom just refuses to be tiled, but in general it's been a huge upgrade & really improved usability. It also sucked me into using multiple spaces, since there's some configs I knew I'd want to keep. One thing worth mentioning is how wild it is to get Yabai actually fully running. It runs pretty well as a regular service, but to really be fully
Read the rest
featured one have to disable System Integrity Protection, letting it hook itself into the Dock ia some backdoor messing around evidently. https://github.com/koekeishiya/yabai/wiki/Disabling-System-I... It keeps feeling like the consumer world is more and more locked down, and this was one of those scary signs for me. The OS refusing to afford control, reserving it for itself seems like a trend, with no available permissioning paths even possible. Having to run a naked insecure system to get a couple management and keyboard shortcuts is wild. This feels like a bleak direction for general purpose computing.
In A Linux guy buys a MacBook Pro
I have a 49 inch CRG9 and the best recommendation for window management is Yabai (https://github.com/koekeishiya/yabai) along with skhd (https://github.com/koekeishiya/skhd). Yabai is a greedy window management solution that tries to fit opened applications in given space and skhd let's you easily jump between those using keyboard shortcuts. This has massively improved my ultrawide experience. Only disclaimer is, configuring yabai has a slight learning curve.
In Ask HN: Best Hacks for a Ultrawide Monitor?

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.