{
  "@context": [
    "https://schema.org",
    {
      "nuanyue": "https://www.nuanyue.com/ns#"
    }
  ],
  "@type": "SoftwareApplication",
  "@id": "https://www.nuanyue.com/software/yabai/#software",
  "name": "yabai",
  "description": "Tiling window manager for macOS that lays windows out with binary space partitioning and adds focus-follows-mouse, instant space switching and spaces beyond the built-in limit of 16.",
  "url": "https://www.nuanyue.com/software/yabai/",
  "mainEntityOfPage": "https://www.nuanyue.com/software/yabai/",
  "operatingSystem": "macOS",
  "applicationCategory": "UtilitiesApplication",
  "publisher": {
    "name": "Åsmund Vikane",
    "url": "https://github.com/asmvik"
  },
  "sameAs": [
    "https://github.com/asmvik/yabai"
  ],
  "softwareVersion": "7.1.25",
  "license": "MIT",
  "offers": {
    "@type": "Offer",
    "price": "0",
    "priceCurrency": "USD"
  },
  "nuanyue:record": {
    "schemaVersion": 1,
    "id": "software:yabai",
    "slug": "yabai",
    "name": "yabai",
    "type": "SoftwareApplication",
    "entityType": "window manager",
    "description": "Tiling window manager for macOS that lays windows out with binary space partitioning and adds focus-follows-mouse, instant space switching and spaces beyond the built-in limit of 16.",
    "shortDescription": "Tiling window manager for macOS with binary space partitioning.",
    "answer": "yabai turns macOS into a tiling window manager. Instead of stacking windows and dragging them around, it arranges them automatically using binary space partitioning, so every window fills its share of the screen and the layout redraws as windows open and close. It extends the built-in window manager rather than replacing it, which means it can also do things macOS cannot: focus-follows-mouse, switching spaces without the animation, and creating more spaces than the built-in limit of 16. It is driven from the command line, with keyboard shortcuts added through a separate hotkey daemon such as skhd. It is free, MIT-licensed, and aimed at people who want their windows managed by rule rather than by hand.",
    "page": "https://www.nuanyue.com/software/yabai/",
    "dataUrl": "https://www.nuanyue.com/data/software/yabai.json",
    "categories": [
      "system-tools"
    ],
    "tags": [],
    "platform": [
      "macOS"
    ],
    "minOsVersion": "macOS 12.0 on Apple silicon; macOS 11.0 on Intel",
    "architecture": [
      "arm64",
      "x86_64"
    ],
    "featured": false,
    "pricing": "open-source",
    "pricingDescription": "Free and open source under the MIT licence, with no paid tier and no account. The project accepts sponsorship through GitHub Sponsors, and is distributed as source that the user builds, rather than as a signed installer.",
    "license": "MIT",
    "currentVersion": "7.1.25",
    "releaseDate": "2026-05-08",
    "openSource": true,
    "website": "https://github.com/asmvik/yabai",
    "documentation": "https://github.com/asmvik/yabai/wiki",
    "github": "https://github.com/asmvik/yabai",
    "developer": {
      "name": "Åsmund Vikane",
      "website": "https://github.com/asmvik"
    },
    "features": [
      "Automatic tiling layout using a binary space partitioning algorithm",
      "Control of windows, spaces and displays from a command-line interface",
      "User-defined keyboard shortcuts, typically through the companion skhd hotkey daemon",
      "Focus-follows-mouse, so the window under the pointer takes focus",
      "Disabling the animation when switching spaces",
      "Creating spaces beyond the built-in macOS limit of 16",
      "An optional scripting addition injected into Dock.app for window control that needs elevated privileges"
    ],
    "useCases": [
      "Arranging windows automatically instead of dragging and resizing them",
      "Switching spaces without waiting for the macOS animation",
      "Driving window management from scripts and keyboard shortcuts rather than the mouse",
      "Working with more than the 16 spaces macOS allows by default"
    ],
    "formats": [],
    "integrations": [],
    "pros": [
      {
        "text": "Lays windows out automatically with a binary space partitioning algorithm, so the layout adapts as windows are opened and closed.",
        "status": "developer-stated",
        "source": "repository",
        "verifiedAt": "2026-10-05T00:00:00.000Z"
      },
      {
        "text": "Extends the built-in macOS window manager rather than replacing it, and is controlled from a command-line interface.",
        "status": "developer-stated",
        "source": "repository",
        "verifiedAt": "2026-10-05T00:00:00.000Z"
      },
      {
        "text": "Adds capabilities macOS does not have, including focus-follows-mouse, disabling space-switch animations, and creating spaces past the built-in limit of 16.",
        "status": "developer-stated",
        "source": "repository",
        "verifiedAt": "2026-10-05T00:00:00.000Z"
      },
      {
        "text": "Keyboard shortcuts are left to a separate hotkey daemon such as skhd, so the tool does not impose its own key bindings.",
        "status": "developer-stated",
        "source": "repository",
        "verifiedAt": "2026-10-05T00:00:00.000Z"
      },
      {
        "text": "Supports Apple silicon Macs running Monterey 12.0 or later, and Intel Macs from Big Sur 11.0.",
        "status": "verified",
        "source": "repository",
        "verifiedAt": "2026-10-05T00:00:00.000Z"
      },
      {
        "text": "Free and open source under the MIT licence.",
        "status": "verified",
        "source": "repository",
        "verifiedAt": "2026-10-05T00:00:00.000Z"
      }
    ],
    "cons": [
      {
        "text": "Requires Accessibility API permission, and the application must be restarted before it works.",
        "status": "verified",
        "source": "repository",
        "verifiedAt": "2026-10-05T00:00:00.000Z"
      },
      {
        "text": "Full functionality depends on changing several system settings, including enabling 'Displays have separate Spaces' and disabling 'Automatically rearrange Spaces based on most recent use'.",
        "status": "verified",
        "source": "repository",
        "verifiedAt": "2026-10-05T00:00:00.000Z"
      },
      {
        "text": "The optional scripting addition needs System Integrity Protection to be partially disabled, and the author makes no recommendation about whether to do so.",
        "status": "verified",
        "source": "repository",
        "verifiedAt": "2026-10-05T00:00:00.000Z"
      },
      {
        "text": "Native tabs in NSDocument-based applications such as Terminal and Finder do not behave correctly; the project advises floating those windows or avoiding tabs.",
        "status": "verified",
        "source": "repository",
        "verifiedAt": "2026-10-05T00:00:00.000Z"
      },
      {
        "text": "Installing from source or from HEAD requires codesigning the binary so it retains its accessibility and automation privileges.",
        "status": "verified",
        "source": "repository",
        "verifiedAt": "2026-10-05T00:00:00.000Z"
      }
    ],
    "whoIsItFor": [
      "People who want their windows laid out by rule and are comfortable editing a config file",
      "Users willing to grant accessibility permissions and change a few Mission Control settings to get window management macOS does not offer"
    ],
    "notFor": [
      "Anyone who wants window management that works without granting accessibility access and adjusting system settings",
      "Users who are not comfortable running a command-line tool that can, with SIP partly disabled, control the window server"
    ],
    "limitations": [
      "Must be granted Accessibility API permission, and the application has to be restarted after access is granted",
      "Screen Recording permission is required if you want window animations, and the app must be restarted afterwards",
      "The Mission Control setting 'Displays have separate Spaces' must be enabled, in both older System Preferences and current System Settings",
      "Several other settings have to be changed for full reliability, including disabling 'Automatically rearrange Spaces based on most recent use'",
      "The optional scripting addition requires partially disabling System Integrity Protection, which the author explicitly makes no recommendation about",
      "Windows in NSDocument-based applications such as Terminal and Finder do not behave correctly when creating native tabs",
      "Building from source or installing from HEAD requires codesigning the binary so it keeps its accessibility and automation privileges",
      "The project is distributed as source rather than as a signed, notarised installer"
    ],
    "firstUse": {
      "installation": {
        "value": "Installed from source — the release publishes a source archive rather than an installer — and building from source or from HEAD requires codesigning the binary so it keeps its permissions.",
        "status": "verified",
        "source": "repository",
        "verifiedAt": "2026-10-05T00:00:00.000Z"
      },
      "firstLaunch": {
        "value": "yabai requests Accessibility API access on launch and must be restarted once that has been granted; Screen Recording access is requested only if window animations are enabled.",
        "status": "verified",
        "source": "repository",
        "verifiedAt": "2026-10-05T00:00:00.000Z"
      },
      "systemIntegration": {
        "value": "Works as an extension to the built-in macOS window manager, and can optionally inject a scripting addition into Dock.app to reach the window server when SIP is partially disabled.",
        "status": "developer-stated",
        "source": "repository",
        "verifiedAt": "2026-10-05T00:00:00.000Z"
      },
      "appleSilicon": {
        "value": true,
        "status": "verified",
        "source": "repository",
        "verifiedAt": "2026-10-05T00:00:00.000Z"
      }
    },
    "updates": [],
    "faq": [
      {
        "question": "Does yabai replace the macOS window manager?",
        "answer": "No. The project describes it as a window management utility designed to work as an extension to the built-in window manager of macOS. It layers tiling and extra commands on top rather than taking over.",
        "status": "developer-stated",
        "source": "repository",
        "verifiedAt": "2026-10-05T00:00:00.000Z"
      },
      {
        "question": "What permissions does yabai need?",
        "answer": "It must be granted the Accessibility API, and restarted afterwards. Screen Recording permission is needed only if you enable window animations, and again requires a restart. Several Mission Control settings also have to be changed, including enabling 'Displays have separate Spaces'.",
        "status": "verified",
        "source": "repository",
        "verifiedAt": "2026-10-05T00:00:00.000Z"
      },
      {
        "question": "Do I have to disable System Integrity Protection to use yabai?",
        "answer": "Not to use it at all. System Integrity Protection can be partially disabled so yabai can inject a scripting addition into Dock.app, which enables control of the window server and additional features. The project marks this as optional and its author explicitly declines to recommend either way.",
        "status": "verified",
        "source": "repository",
        "verifiedAt": "2026-10-05T00:00:00.000Z"
      },
      {
        "question": "Which macOS versions and Macs does yabai support?",
        "answer": "Intel Macs from Big Sur 11.0.0 onward, and Apple silicon Macs from Monterey 12.0.0 onward, with Ventura, Sonoma, Sequoia and Tahoe also listed as supported.",
        "status": "verified",
        "source": "repository",
        "verifiedAt": "2026-10-05T00:00:00.000Z"
      },
      {
        "question": "How do I set up keyboard shortcuts for yabai?",
        "answer": "The project leaves this to separate software and points at skhd, its companion hotkey daemon, though any suitable tool will do. Sample configuration files are published in the repository's examples directory.",
        "status": "developer-stated",
        "source": "repository",
        "verifiedAt": "2026-10-05T00:00:00.000Z"
      }
    ],
    "relationships": [
      {
        "target": "amethyst",
        "type": "alternative",
        "reason": "Both are tiling window managers for macOS, but Amethyst is a graphical application with its own preferences window while yabai is a command-line tool configured through a file and extended with a separate hotkey daemon.",
        "verifiedAt": "2026-10-05T00:00:00.000Z"
      },
      {
        "target": "rectangle-app",
        "type": "competitor",
        "reason": "Both arrange windows with the keyboard, but Rectangle snaps a window to a position when asked while yabai keeps a continuous tiling layout that rearranges itself.",
        "verifiedAt": "2026-10-05T00:00:00.000Z"
      },
      {
        "target": "skhd",
        "type": "complements",
        "reason": "yabai manages the windows and skhd turns key presses into yabai commands; the yabai project points at skhd as the way to add keyboard shortcuts.",
        "verifiedAt": "2026-10-05T00:00:00.000Z"
      }
    ],
    "sources": [
      {
        "id": "yabai:official",
        "type": "official_website",
        "url": "https://github.com/asmvik/yabai",
        "title": "yabai — official website",
        "trustLevel": "B",
        "accessedAt": null
      },
      {
        "id": "yabai:developer",
        "type": "developer",
        "url": "https://github.com/asmvik",
        "title": "Åsmund Vikane — developer website",
        "trustLevel": "B",
        "accessedAt": null
      },
      {
        "id": "yabai:documentation",
        "type": "documentation",
        "url": "https://github.com/asmvik/yabai/wiki",
        "title": "yabai — documentation",
        "trustLevel": "C",
        "accessedAt": null
      },
      {
        "id": "yabai:repository",
        "type": "github",
        "url": "https://github.com/asmvik/yabai",
        "title": "yabai — source repository",
        "trustLevel": "D",
        "accessedAt": null
      }
    ],
    "claims": [
      {
        "id": "software:yabai.isA",
        "subject": "software:yabai",
        "predicate": "isA",
        "value": "window manager",
        "status": "editorially-reviewed",
        "sourceIds": [
          "yabai:official"
        ],
        "lastVerified": null
      },
      {
        "id": "software:yabai.supportsPlatform",
        "subject": "software:yabai",
        "predicate": "supportsPlatform",
        "value": [
          "macOS"
        ],
        "status": "verified",
        "sourceIds": [
          "yabai:official"
        ],
        "lastVerified": null
      },
      {
        "id": "software:yabai.officialWebsite",
        "subject": "software:yabai",
        "predicate": "officialWebsite",
        "value": "https://github.com/asmvik/yabai",
        "status": "verified",
        "sourceIds": [
          "yabai:official"
        ],
        "lastVerified": null
      },
      {
        "id": "software:yabai.listedInCategory",
        "subject": "software:yabai",
        "predicate": "listedInCategory",
        "value": [
          "system-tools"
        ],
        "status": "editorially-reviewed",
        "sourceIds": [
          "yabai:official"
        ],
        "lastVerified": null
      },
      {
        "id": "software:yabai.pricingModel",
        "subject": "software:yabai",
        "predicate": "pricingModel",
        "value": "Open source",
        "status": "developer-stated",
        "sourceIds": [
          "yabai:official"
        ],
        "lastVerified": null
      },
      {
        "id": "software:yabai.developedBy",
        "subject": "software:yabai",
        "predicate": "developedBy",
        "value": "Åsmund Vikane",
        "status": "developer-stated",
        "sourceIds": [
          "yabai:developer",
          "yabai:official"
        ],
        "lastVerified": null
      },
      {
        "id": "software:yabai.ownership",
        "subject": "software:yabai",
        "predicate": "ownership",
        "value": "Third-party product — not published by Nuanyue",
        "status": "editorially-reviewed",
        "sourceIds": [],
        "lastVerified": null
      },
      {
        "id": "software:yabai.isOpenSource",
        "subject": "software:yabai",
        "predicate": "isOpenSource",
        "value": true,
        "status": "verified",
        "sourceIds": [
          "yabai:repository",
          "yabai:official"
        ],
        "lastVerified": null
      },
      {
        "id": "software:yabai.licensedUnder",
        "subject": "software:yabai",
        "predicate": "licensedUnder",
        "value": "MIT",
        "status": "verified",
        "sourceIds": [
          "yabai:repository",
          "yabai:documentation",
          "yabai:official"
        ],
        "lastVerified": null
      },
      {
        "id": "software:yabai.currentVersion",
        "subject": "software:yabai",
        "predicate": "currentVersion",
        "value": "7.1.25",
        "status": "developer-stated",
        "sourceIds": [
          "yabai:official"
        ],
        "lastVerified": null
      },
      {
        "id": "software:yabai.hasFeature",
        "subject": "software:yabai",
        "predicate": "hasFeature",
        "value": [
          "Automatic tiling layout using a binary space partitioning algorithm",
          "Control of windows, spaces and displays from a command-line interface",
          "User-defined keyboard shortcuts, typically through the companion skhd hotkey daemon",
          "Focus-follows-mouse, so the window under the pointer takes focus",
          "Disabling the animation when switching spaces",
          "Creating spaces beyond the built-in macOS limit of 16",
          "An optional scripting addition injected into Dock.app for window control that needs elevated privileges"
        ],
        "status": "editorially-reviewed",
        "sourceIds": [
          "yabai:official"
        ],
        "lastVerified": null
      },
      {
        "id": "software:yabai.usedFor",
        "subject": "software:yabai",
        "predicate": "usedFor",
        "value": [
          "Arranging windows automatically instead of dragging and resizing them",
          "Switching spaces without waiting for the macOS animation",
          "Driving window management from scripts and keyboard shortcuts rather than the mouse",
          "Working with more than the 16 spaces macOS allows by default"
        ],
        "status": "editorially-reviewed",
        "sourceIds": [
          "yabai:official"
        ],
        "lastVerified": null
      },
      {
        "id": "software:yabai.audienceFor",
        "subject": "software:yabai",
        "predicate": "audienceFor",
        "value": [
          "People who want their windows laid out by rule and are comfortable editing a config file",
          "Users willing to grant accessibility permissions and change a few Mission Control settings to get window management macOS does not offer"
        ],
        "status": "editorially-reviewed",
        "sourceIds": [
          "yabai:official"
        ],
        "lastVerified": null
      },
      {
        "id": "software:yabai.audienceNotFor",
        "subject": "software:yabai",
        "predicate": "audienceNotFor",
        "value": [
          "Anyone who wants window management that works without granting accessibility access and adjusting system settings",
          "Users who are not comfortable running a command-line tool that can, with SIP partly disabled, control the window server"
        ],
        "status": "editorially-reviewed",
        "sourceIds": [
          "yabai:official"
        ],
        "lastVerified": null
      },
      {
        "id": "software:yabai.limitation",
        "subject": "software:yabai",
        "predicate": "limitation",
        "value": [
          "Must be granted Accessibility API permission, and the application has to be restarted after access is granted",
          "Screen Recording permission is required if you want window animations, and the app must be restarted afterwards",
          "The Mission Control setting 'Displays have separate Spaces' must be enabled, in both older System Preferences and current System Settings",
          "Several other settings have to be changed for full reliability, including disabling 'Automatically rearrange Spaces based on most recent use'",
          "The optional scripting addition requires partially disabling System Integrity Protection, which the author explicitly makes no recommendation about",
          "Windows in NSDocument-based applications such as Terminal and Finder do not behave correctly when creating native tabs",
          "Building from source or installing from HEAD requires codesigning the binary so it keeps its accessibility and automation privileges",
          "The project is distributed as source rather than as a signed, notarised installer"
        ],
        "status": "editorially-reviewed",
        "sourceIds": [],
        "lastVerified": null
      },
      {
        "id": "software:yabai.advantage.0",
        "subject": "software:yabai",
        "predicate": "advantage",
        "value": "Lays windows out automatically with a binary space partitioning algorithm, so the layout adapts as windows are opened and closed.",
        "status": "developer-stated",
        "sourceIds": [
          "yabai:repository"
        ],
        "lastVerified": "2026-10-05"
      },
      {
        "id": "software:yabai.advantage.1",
        "subject": "software:yabai",
        "predicate": "advantage",
        "value": "Extends the built-in macOS window manager rather than replacing it, and is controlled from a command-line interface.",
        "status": "developer-stated",
        "sourceIds": [
          "yabai:repository"
        ],
        "lastVerified": "2026-10-05"
      },
      {
        "id": "software:yabai.advantage.2",
        "subject": "software:yabai",
        "predicate": "advantage",
        "value": "Adds capabilities macOS does not have, including focus-follows-mouse, disabling space-switch animations, and creating spaces past the built-in limit of 16.",
        "status": "developer-stated",
        "sourceIds": [
          "yabai:repository"
        ],
        "lastVerified": "2026-10-05"
      },
      {
        "id": "software:yabai.advantage.3",
        "subject": "software:yabai",
        "predicate": "advantage",
        "value": "Keyboard shortcuts are left to a separate hotkey daemon such as skhd, so the tool does not impose its own key bindings.",
        "status": "developer-stated",
        "sourceIds": [
          "yabai:repository"
        ],
        "lastVerified": "2026-10-05"
      },
      {
        "id": "software:yabai.advantage.4",
        "subject": "software:yabai",
        "predicate": "advantage",
        "value": "Supports Apple silicon Macs running Monterey 12.0 or later, and Intel Macs from Big Sur 11.0.",
        "status": "verified",
        "sourceIds": [
          "yabai:repository"
        ],
        "lastVerified": "2026-10-05"
      },
      {
        "id": "software:yabai.advantage.5",
        "subject": "software:yabai",
        "predicate": "advantage",
        "value": "Free and open source under the MIT licence.",
        "status": "verified",
        "sourceIds": [
          "yabai:repository"
        ],
        "lastVerified": "2026-10-05"
      },
      {
        "id": "software:yabai.drawback.0",
        "subject": "software:yabai",
        "predicate": "drawback",
        "value": "Requires Accessibility API permission, and the application must be restarted before it works.",
        "status": "verified",
        "sourceIds": [
          "yabai:repository"
        ],
        "lastVerified": "2026-10-05"
      },
      {
        "id": "software:yabai.drawback.1",
        "subject": "software:yabai",
        "predicate": "drawback",
        "value": "Full functionality depends on changing several system settings, including enabling 'Displays have separate Spaces' and disabling 'Automatically rearrange Spaces based on most recent use'.",
        "status": "verified",
        "sourceIds": [
          "yabai:repository"
        ],
        "lastVerified": "2026-10-05"
      },
      {
        "id": "software:yabai.drawback.2",
        "subject": "software:yabai",
        "predicate": "drawback",
        "value": "The optional scripting addition needs System Integrity Protection to be partially disabled, and the author makes no recommendation about whether to do so.",
        "status": "verified",
        "sourceIds": [
          "yabai:repository"
        ],
        "lastVerified": "2026-10-05"
      },
      {
        "id": "software:yabai.drawback.3",
        "subject": "software:yabai",
        "predicate": "drawback",
        "value": "Native tabs in NSDocument-based applications such as Terminal and Finder do not behave correctly; the project advises floating those windows or avoiding tabs.",
        "status": "verified",
        "sourceIds": [
          "yabai:repository"
        ],
        "lastVerified": "2026-10-05"
      },
      {
        "id": "software:yabai.drawback.4",
        "subject": "software:yabai",
        "predicate": "drawback",
        "value": "Installing from source or from HEAD requires codesigning the binary so it retains its accessibility and automation privileges.",
        "status": "verified",
        "sourceIds": [
          "yabai:repository"
        ],
        "lastVerified": "2026-10-05"
      },
      {
        "id": "software:yabai.supportsAppleSilicon",
        "subject": "software:yabai",
        "predicate": "supportsAppleSilicon",
        "value": true,
        "status": "verified",
        "sourceIds": [
          "yabai:repository"
        ],
        "lastVerified": "2026-10-05"
      }
    ],
    "lastUpdated": "2026-10-07T00:00:00.000Z",
    "lastReviewedAt": null
  }
}