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:59:22 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

30 sources
Does macOS count? There are large chunks of the system that are impenetrable in real-world use. For example, in order to install the `yabai` window manager, here's what you need to do on your system: - https://github.com/koekeishiya/yabai/wiki/Installing-yabai-(... - https://github.com/koekeishiya/yabai/wiki/Disabling-System-I... If part of your program's installation process is "reboot into recovery mode", I feel like you're working with an OS that isn't quite as malleable as we sometimes are led to believe it is. :D (btw I use `yabai` and it is totally worth doing all these things...I wouldn't set it to auto-update, and I review every release carefully, but so far so good. It's a great WM for macOS!)
In VanillaOS: Immutable Ubuntu-Based Linux
I have the animations off entirely, be warned though, it requires disabling SIP which is a non starter for many corporate environments. If you install yabai[0] with its scripting addition, you can configure hotkeys to change spaces with no animations. It's pretty powerful, and I have specific keybinds[1] to do things such as transition to a space with a specific application running. [0]: https://github.com/koekeishiya/yabai [1]: https://github.com/worm-emoji/dotfiles/blob/140c9fd614ebfc54...
In Ask HN: I have diagnosed ADHD and cannot work with Slack anymore – advice?
I recently had to start using MacOS for work after never using an Apple product ever. Between MacPorts packages, Yabai[1], and skhd [2] I've found myself able to achieve a close enough setup in terms of tiling WM + system keybindings to make the desktop experience close enough to what I have using i3 or whatever else on Linux. I still don't love using MacOS and would probably never buy a Macbook for personal use, but it's not really that bad and sure beats using Windows + WSL for development since at least MacOS is a UNIX [1] https://github.com/koekeishiya/yabai [2] https://github.com/koekeishiya/skhd
In Ask HN: Are Any of You Tired from macOS and Want to Go Back to Linux?
Just a note that there's a whole app called rcmd for switching apps using the Right Command key: https://lowtechguys.com/rcmd I'm the developer and have the same exact use case: viewing one window at a time on a single space, instantly switching between them. I used to map those hotkeys manually using Karabiner, skhd or BTT before, but I figured a semi-dynamic tool might fit this better. Another thing that's useful for me is using yabai (https://github.com/koekeishiya/yabai) with its Stack layout, which automatically maximizes any window (with or without padding if you want) Basically: brew install yabai Then add this in ~/.yabairc yabai -m config layout stack Then start yabai and add it to launch automatically at login: brew services start yabai
In LG announces the first 1440p 240Hz OLED monitor and it only costs $999
Yep! That option works well for some people but personally I find it takes a bit too much "feel" away. There are other options like making some animation speeds faster (so fast that the animation is almost imperceptible) and disabling some animations in Finder. The Cocktail utility can do it, and it can be done from the terminal too. I'm not 100% sure this is up to date, but it might be: https://osxdaily.com/2015/01/06/make-the-window-resizing-ani... The main one is basically like this: defaults write -g NSWindowResizeTime -float 0.003 Plus there are some more similar things you can set in `defaults`. (What the Cocktail utility is is a GUI that captures knowledge about a bunch of these settings into a convenient tool. There are other utilities like this afaik? BetterTouchTool maybe? idk.) Then there's something called yabai which is a
Read the rest
'window management utility', but afaik it goes a lot deeper than other similar programs for macOS - it can disable animations and do some more stuff up to the point that you need to (partially) disable SIP to be able to make full use of it. Haven't tried but it does seems to be very worthwhile. https://github.com/koekeishiya/yabai
In Ask HN: Devs with ADHD do you use specialized tooling?
Indeed, power users are not really what Apple optimizes for. They try to dumb everything down, and it helps them in their ultimate goal: get more market share. You've actually stumbled upon the least configurable components of macOS: the Window Manager, and the Desktop Environment. On Linux you can choose your own, and you have so many different paradigms. I still miss i3 wm.. On macOS you don't have this choice, and you have to use apps to get to the workflow you need. I was a Windows power user for a few years, and now I use both Linux and macOS daily since 6 years ago. In the end, I feel more productive on macOS nowadays, mostly because there are many quality apps to get anything I want done, I don't have to worry that basic OS function will stop working when I update some dependency, and there are some macOS-native features that reall
Read the rest
y improved my workflow. For example I didn't know how useful Live Text would be until the first time I noticed that Command-F search in Safari also searches text in images, or when I double clicked on a phone number and I could just call it with my iPhone (which was in another room) but keep talking from the MacBook. I can't even imagine how I would do that on Linux (surely doable, but nothing beats "already done and usable"), and it's just one of many features like that. I will end with some more software recommendations: yabai for window management (https://github.com/koekeishiya/yabai) and skhd for hotkeys (https://github.com/koekeishiya/skhd) They are more Linux-like, using config files, free and easy to forget they aren't native.
In Using the same Arch Linux installation for a decade

Showing the 15 most recent of 30 sources. Enable JavaScript to search and browse every indexed mention.

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.