# Does yabai need SIP disabled?

Source: https://ribbonformac.com/yabai-without-sip  
Updated: 2026-10-22

No. yabai's core tiling works with System Integrity Protection fully on. Partially disabling SIP only unlocks a set of extras, such as creating and moving Spaces, window transparency, shadows and animations. If you don't need those, leave SIP alone.

## The short answer

[yabai](https://github.com/asmvik/yabai) arranges windows through the Accessibility API, like every other macOS window manager. That part doesn't care about SIP. BSP, stack and float layouts, focusing and moving windows, resizing, rules, signals and mouse drag to move or resize all work on a stock Mac.

The SIP question comes from a second piece: a scripting addition that yabai can inject into Dock.app. The Dock owns the only connection to the window server that can do certain things, such as creating a Space or changing a window's opacity. Getting code into the Dock means relaxing some of SIP's protections. So "yabai needs SIP off" is true only for the features that go through the Dock.

## Feature by feature

This table follows yabai's own wiki and man page.

| Feature | Needs SIP partly disabled? |
| --- | --- |
| BSP, stack and float layouts | No |
| Focus, swap, warp and resize windows | No |
| Window rules and signals | No |
| Move or resize windows with modifier + mouse | No |
| Focus a Space (`space --focus`) | No SIP note in the current docs |
| Send a window to another Space (`window --space`) | No SIP note in the current docs |
| Create, destroy, move or swap Spaces | Yes |
| Move a Space to another display (`space --display`, `display --space`) | Yes |
| Window transparency (`window_opacity`, `window --opacity`) | Yes |
| Remove window shadows (`window_shadow`) | Yes |
| Window animations | Yes (plus Screen Recording) |
| Scratchpad windows | Yes |
| Window layers: always on top or on the desktop (`--sub-layer`) | Yes |
| Sticky windows (shown on every Space) | Yes |
| Picture-in-picture for any window | Yes |

The man page also flags `space --switch`. If one of the "No" rows matters to you, check the [man page](https://github.com/asmvik/yabai/blob/master/doc/yabai.asciidoc) for your version, because notes change between releases.

## What partially disabling SIP involves

If you decide you want the extras, the process has three parts. The commands below are copied from yabai's wiki page [Disabling System Integrity Protection](https://github.com/asmvik/yabai/wiki/Disabling-System-Integrity-Protection) as of October 2026. **Read that page and use its current version before running anything.** Flags change between macOS releases, and a wrong flag at the boot level is not something to guess at.

### 1. Relax SIP from macOS Recovery

Boot into Recovery, open Terminal there, and run the line that matches your Mac.

```sh
# Apple silicon, macOS 13 Ventura and later (from yabai's wiki)
csrutil enable --without fs --without debug --without nvram

# Apple silicon, macOS 12 Monterey (from yabai's wiki)
csrutil disable --with kext --with dtrace --with basesystem

# Intel, macOS 11 Big Sur and later (from yabai's wiki)
csrutil disable --with kext --with dtrace --with nvram --with basesystem
```

### 2. Apple silicon only: set a boot argument

After restarting into macOS, set this boot argument and restart again. It allows arm64e binaries that Apple didn't sign to run, which the scripting addition needs.

```sh
# Apple silicon only (from yabai's wiki)
sudo nvram boot-args=-arm64e_preview_abi
```

### 3. Let yabai load the scripting addition

Loading the addition needs root, so the wiki has you add a sudoers rule in `/private/etc/sudoers.d/yabai` that lets your user run exactly one command without a password. The rule pins the yabai binary by its SHA-256 hash:

```text
# format from yabai's wiki; <user>, <hash> and <yabai> are placeholders
<user> ALL=(root) NOPASSWD: sha256:<hash> <yabai> --load-sa
```

Then put these two lines at the top of your `yabairc`, so the addition loads at start and again whenever the Dock restarts:

```sh
# from yabai's wiki
yabai -m signal --add event=dock_did_restart action="sudo yabai --load-sa"
sudo yabai --load-sa
```

## The ongoing cost

Setting it up once is the easy part. Keeping it working is what people underestimate.

- **Every yabai upgrade** changes the binary, so the hash in your sudoers rule stops matching. You have to update it by hand and reconfigure the scripting addition, or the extras quietly stop working.
- **Repairs reset it.** An Apple Store or Authorized Service Provider repair turns SIP back on, and you repeat step 1.
- **macOS updates** are a grey area. The project doesn't say whether a macOS update undoes the csrutil step or the boot argument, so check after each one.
- **Security.** SIP protects system files and processes from changes, even by an admin. Partially disabling it, and on Apple silicon allowing unsigned arm64e code, lowers that protection for the whole Mac, not just for yabai. yabai's own disclaimer is to use it at your own discretion.

For a personal Mac and someone who wants scripted Space control, that can be a fair trade. On a work Mac, or if you'd rather not think about it, it usually isn't.

## Tiling on a Mac with SIP on

You have several good options that never ask you to touch SIP:

- **yabai with SIP on.** Honestly the simplest answer if you like yabai. You keep BSP tiling, rules, signals and mouse actions, and skip the Dock extras. Compare it with a strip in [Ribbon vs yabai](https://ribbonformac.com/ribbon-vs-yabai).
- **[AeroSpace](https://github.com/nikitabobko/AeroSpace).** Free i3-style tiling. It promises never to require disabling SIP, and its own workspaces stand in for the Space features yabai needs SIP for. See [Ribbon vs AeroSpace](https://ribbonformac.com/ribbon-vs-aerospace).
- **[Amethyst](https://github.com/ianyh/Amethyst).** Free, automatic xmonad-style layouts, Accessibility permission only. See [Ribbon vs Amethyst](https://ribbonformac.com/ribbon-vs-amethyst).
- **[OmniWM](https://github.com/OmniNull/OmniWM).** Free scrolling and BSP layouts with SIP enabled, but macOS 26 Tahoe on Apple silicon only.
- **Ribbon.** A scrolling window manager for macOS 13 and later, on Apple silicon (M1 or later). It needs only Accessibility, and its focus border and dimming of inactive windows work without any Dock tricks. It costs $9.99 once; all sales are final: no refunds (see the [terms](https://ribbonformac.com/terms)), so watch the [live demo](https://ribbonformac.com/#demo) first and then [buy it](https://ribbonformac.com/buy) if it fits.

For a wider survey, see [AeroSpace alternatives](https://ribbonformac.com/aerospace-alternatives) and [how to tile windows on a Mac](https://ribbonformac.com/how-to-tile-windows-on-mac).

## FAQ

### Does yabai work with SIP enabled?

Yes. Tiling, focus, window movement, rules, signals and mouse actions all work with SIP on. Only features that go through the Dock scripting addition need it partly disabled.

### Which yabai features need SIP disabled?

Creating, destroying, moving and swapping Spaces, moving Spaces between displays, window transparency, shadow removal, animations, scratchpads, window layers, sticky windows and picture-in-picture for any window.

### Do I have to redo anything after updating yabai?

Yes, if you use the scripting addition. The sudoers rule pins yabai's SHA-256 hash, so you update it and reconfigure the addition after every yabai upgrade.

### Is it safe to partially disable SIP?

It's a trade-off you choose. It lowers macOS's protection of system files and processes for the whole Mac, which many people accept on a personal machine and avoid on a work one.

### Which tiling window managers don't need SIP at all?

AeroSpace, Amethyst, OmniWM and Ribbon all work with SIP fully on, and so does yabai if you skip the extras.

## Keep reading
- [Ribbon vs yabai](https://ribbonformac.com/ribbon-vs-yabai) — Free BSP tiling driven by scripts vs a paid scrolling strip you set up in a window.
- [AeroSpace alternatives](https://ribbonformac.com/aerospace-alternatives) — yabai, Amethyst, Rectangle, Loop, OmniWM, Ribbon, PaperWM.spoon and macOS tiling.
- [Ribbon vs AeroSpace](https://ribbonformac.com/ribbon-vs-aerospace) — Free i3-style tree with its own workspaces vs a paid strip that keeps macOS Spaces.
- [Ribbon vs Amethyst](https://ribbonformac.com/ribbon-vs-amethyst) — Free xmonad-style auto layouts vs a paid strip where windows keep their width.
- [Tile windows on Mac](https://ribbonformac.com/how-to-tile-windows-on-mac) — Drag, green button, Window menu and every Fn-Control shortcut, plus how to turn it off.
