{"id":33913124,"url":"https://github.com/asmvik/yabai","last_synced_at":"2026-04-24T13:03:57.195Z","repository":{"id":37443148,"uuid":"184909163","full_name":"asmvik/yabai","owner":"asmvik","description":"A tiling window manager for macOS based on binary space partitioning","archived":false,"fork":false,"pushed_at":"2026-04-18T14:45:53.000Z","size":7607,"stargazers_count":28703,"open_issues_count":271,"forks_count":709,"subscribers_count":101,"default_branch":"master","last_synced_at":"2026-04-18T16:30:51.875Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/asmvik.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null},"funding":{"patreon":"aasvi"}},"created_at":"2019-05-04T15:00:50.000Z","updated_at":"2026-04-18T16:21:23.000Z","dependencies_parsed_at":"2023-10-05T02:35:30.218Z","dependency_job_id":"1f2e44a5-418b-431e-a04b-ac21a9279438","html_url":"https://github.com/asmvik/yabai","commit_stats":{"total_commits":1582,"total_committers":5,"mean_commits":316.4,"dds":0.007585335018963302,"last_synced_commit":"41fc52b2943cbaa9e5e4ceec75f6cadd8c6e2c21"},"previous_names":["asmvik/yabai"],"tags_count":102,"template":false,"template_full_name":null,"purl":"pkg:github/asmvik/yabai","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/asmvik%2Fyabai","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/asmvik%2Fyabai/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/asmvik%2Fyabai/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/asmvik%2Fyabai/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/asmvik","download_url":"https://codeload.github.com/asmvik/yabai/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/asmvik%2Fyabai/sbom","scorecard":{"id":565728,"data":{"date":"2025-08-11","repo":{"name":"github.com/koekeishiya/yabai","commit":"17c023039eae6a50d18285fce4d8d12f4a8c3626"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":3.3,"checks":[{"name":"Dangerous-Workflow","score":-1,"reason":"no workflows found","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"Code-Review","score":0,"reason":"Found 0/30 approved changesets -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Maintained","score":5,"reason":"2 commit(s) and 4 issue activity found in the last 90 days -- score normalized to 5","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Token-Permissions","score":-1,"reason":"No tokens found","details":null,"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"SAST","score":0,"reason":"no SAST tool detected","details":["Warn: no pull requests merged into dev branch"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"Pinned-Dependencies","score":-1,"reason":"no dependencies found","details":null,"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"Vulnerabilities","score":10,"reason":"0 existing vulnerabilities detected","details":null,"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}},{"name":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE.txt:0","Info: FSF or OSI recognized license: MIT License: LICENSE.txt:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Signed-Releases","score":0,"reason":"Project has not signed or included provenance with any releases.","details":["Warn: release artifact v7.1.15 not signed: https://api.github.com/repos/koekeishiya/yabai/releases/219344474","Warn: release artifact v7.1.14 not signed: https://api.github.com/repos/koekeishiya/yabai/releases/210549047","Warn: release artifact v7.1.13 not signed: https://api.github.com/repos/koekeishiya/yabai/releases/207688591","Warn: release artifact v7.1.12 not signed: https://api.github.com/repos/koekeishiya/yabai/releases/207600850","Warn: release artifact v7.1.11 not signed: https://api.github.com/repos/koekeishiya/yabai/releases/204595933","Warn: release artifact v7.1.15 does not have provenance: https://api.github.com/repos/koekeishiya/yabai/releases/219344474","Warn: release artifact v7.1.14 does not have provenance: https://api.github.com/repos/koekeishiya/yabai/releases/210549047","Warn: release artifact v7.1.13 does not have provenance: https://api.github.com/repos/koekeishiya/yabai/releases/207688591","Warn: release artifact v7.1.12 does not have provenance: https://api.github.com/repos/koekeishiya/yabai/releases/207600850","Warn: release artifact v7.1.11 does not have provenance: https://api.github.com/repos/koekeishiya/yabai/releases/204595933"],"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"Branch-Protection","score":0,"reason":"branch protection not enabled on development/release branches","details":["Warn: branch protection not enabled for branch 'master'"],"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}}]},"last_synced_at":"2025-08-20T14:56:11.171Z","repository_id":37443148,"created_at":"2025-08-20T14:56:11.171Z","updated_at":"2025-08-20T14:56:11.171Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32224413,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-24T10:26:35.452Z","status":"ssl_error","status_checked_at":"2026-04-24T10:25:27.643Z","response_time":64,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-12-12T06:00:44.359Z","updated_at":"2026-04-24T13:03:57.189Z","avatar_url":"https://github.com/asmvik.png","language":"C","readme":"\u003c!-- Please be careful editing the below HTML, as GitHub is quite finicky with anything that looks like an HTML tag in GitHub Flavored Markdown. --\u003e\n\u003cp align=\"center\"\u003e\n  \u003cimg width=\"75%\" src=\"assets/banner/banner.svg\" alt=\"Banner\"\u003e\n\u003c/p\u003e\n\u003cp align=\"center\"\u003e\n  \u003cb\u003eTiling window management for the Mac.\u003c/b\u003e\n\u003c/p\u003e\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://github.com/asmvik/yabai/blob/master/LICENSE.txt\"\u003e\n    \u003cimg src=\"https://img.shields.io/github/license/asmvik/yabai.svg?color=green\" alt=\"License Badge\"\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://github.com/asmvik/yabai/blob/master/doc/yabai.asciidoc\"\u003e\n    \u003cimg src=\"https://img.shields.io/badge/view-documentation-green.svg\" alt=\"Documentation Badge\"\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://github.com/asmvik/yabai/wiki\"\u003e\n    \u003cimg src=\"https://img.shields.io/badge/view-wiki-green.svg\" alt=\"Wiki Badge\"\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://github.com/asmvik/yabai/blob/master/CHANGELOG.md\"\u003e\n    \u003cimg src=\"https://img.shields.io/badge/view-changelog-green.svg\" alt=\"Changelog Badge\"\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://github.com/asmvik/yabai/releases\"\u003e\n    \u003cimg src=\"https://img.shields.io/github/commits-since/asmvik/yabai/latest.svg?color=green\" alt=\"Version Badge\"\u003e\n  \u003c/a\u003e\n\u003c/p\u003e\n\n## About\n\n\u003cimg align=\"right\" width=\"40%\" src=\"assets/screenshot.png\" alt=\"Screenshot\"\u003e\n\nyabai is a window management utility that is designed to work as an extension to the built-in window manager of macOS.\nyabai allows you to control your windows, spaces and displays freely using an intuitive command line interface and optionally set user-defined keyboard shortcuts using [\u0026nearr;\u0026nbsp;skhd][gh-skhd] and other third-party software.\n\nThe 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.\nAdditional features of yabai include focus-follows-mouse, disabling animations for switching spaces, creating spaces past the limit of 16 spaces, and much more.\n\n## Installation and Configuration\n\n- The [\u0026nearr;\u0026nbsp;yabai\u0026nbsp;wiki][yabai-wiki] has both brief and detailed installation instructions for multiple installation methods, and also explains how to uninstall yabai completely.\n- Sample configuration files can be found in the [\u0026nearr;\u0026nbsp;examples][yabai-examples] directory. Refer to the [\u0026nearr;\u0026nbsp;documentation][yabai-docs] or the wiki for further information.\n- Keyboard shortcuts can be defined with [\u0026nearr;\u0026nbsp;skhd][gh-skhd] or any other suitable software you may prefer.\n\n## Requirements and Caveats\n\nPlease read the below requirements carefully.\nMake sure you fulfil all of them before filing an issue.\n\n|Requirement|Note|\n|-:|:-|\n|Operating\u0026nbsp;System\u0026nbsp;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.|\n|Operating\u0026nbsp;System\u0026nbsp;Apple Silicon|Monterey 12.0.0+, Ventura 13.0.0+, Sonoma 14.0.0+, Sequoia 15.0+, and Tahoe 26.0+ is supported.|\n|Accessibility\u0026nbsp;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.|\n|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.|\n|System\u0026nbsp;Preferences\u0026nbsp;(macOS 11.x, 12.x)|In the Mission Control pane, the setting \"Displays have separate Spaces\" must be enabled.|\n|System\u0026nbsp;Settings\u0026nbsp;(macOS 13.x, 14.x, 15.x, 26.x)|In the Desktop \u0026 Dock tab, inside the Mission Control pane, the setting \"Displays have separate Spaces\" must be enabled.|\n\nPlease also take note of the following caveats.\n\n|Caveat|Note|\n|-:|:-|\n|System\u0026nbsp;Integrity\u0026nbsp;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.|\n|Code\u0026nbsp;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.|\n|Finder\u0026nbsp;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\".|\n|NSDocument-based\u0026nbsp;Applications|Windows that utilize native macOS tabs such as Terminal and Finder, [do not behave correctly when creating tabs](https://github.com/asmvik/yabai/issues/68). Avoid creating tabs in these applications, consider alternatives that do not use NSDocument's tab system, or make these windows float using rules.|\n|System\u0026nbsp;Preferences\u0026nbsp;(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.|\n|System\u0026nbsp;Settings\u0026nbsp;(macOS 13.x, 14.x, 15.x, 26.x)|In the Desktop \u0026 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.|\n|System\u0026nbsp;Settings\u0026nbsp;(macOS 14.x, 15.x, 26.x)|In the Desktop \u0026 Dock tab, inside the Desktop \u0026 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.|\n|System\u0026nbsp;Settings\u0026nbsp;(macOS 14.x, 15.x, 26.x)|In the Desktop \u0026 Dock tab, inside the Desktop \u0026 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.|\n\n## License and Attribution\n\nyabai is licensed under the [\u0026nearr;\u0026nbsp;MIT\u0026nbsp;License][yabai-license], a short and simple permissive license with conditions only requiring preservation of copyright and license notices.\nLicensed works, modifications, and larger works may be distributed under different terms and without source code.\n\nThanks to [@fools-mate][gh-fools-mate] for creating a logo and banner for this project and making them available for free.\n\nThanks to [@dominiklohmann][gh-dominiklohmann] for contributing great documentation, support, and more, for free.\n\n## Disclaimer\n\nUse at your own discretion.\nI take no responsibility if anything should happen to your machine while trying to install, test or otherwise use this software in any form.\nYou acknowledge that you understand the potential risk that may come from disabling [\u0026nearr;\u0026nbsp;System\u0026nbsp;Integrity\u0026nbsp;Protection][external-about-sip] on your system, and I make no recommendation as to whether you should or should not disable System Integrity Protection.\n\n\u003c!-- Project internal links --\u003e\n[yabai-license]: LICENSE.txt\n[yabai-examples]: https://github.com/asmvik/yabai/tree/master/examples\n[yabai-wiki]: https://github.com/asmvik/yabai/wiki\n[yabai-docs]: https://github.com/asmvik/yabai/blob/master/doc/yabai.asciidoc\n\n\u003c!-- Links to other GitHub projects/users --\u003e\n[gh-skhd]: https://github.com/asmvik/skhd\n[gh-fools-mate]: https://github.com/fools-mate\n[gh-dominiklohmann]: https://github.com/dominiklohmann\n\n\u003c!-- External links --\u003e\n[external-about-sip]: https://support.apple.com/en-us/HT204899\n","funding_links":["https://patreon.com/aasvi"],"categories":["HarmonyOS","📊 Data \u0026 Analytics","C","Utilities"],"sub_categories":["Windows Manager","Window Management"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fasmvik%2Fyabai","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fasmvik%2Fyabai","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fasmvik%2Fyabai/lists"}