Health-check the macOS yabai (tiling window manager) and skhd (hotkey daemon) services — verify they are installed, their launchd services are running, they hold Accessibility permission, configs exist, and yabai's scripting-addition prereqs (SIP, sudoers) are met. When anything is wrong it prints a concrete fix path. Use when yabai or skhd stopped working, hotkeys/window management aren't responding, after a macOS update, or when the user asks to check/verify/diagnose/fix their yabai or skhd s…
Health-check the macOS yabai (tiling window manager) and skhd (hotkey daemon) services — verify they are installed, their launchd services are running, they hold Accessibility permission, configs exist, and yabai's scripting-addition prereqs (SIP, sudoers) are met.
When anything is wrong it prints a concrete fix path.
Use when yabai or skhd stopped working, hotkeys/window management aren't responding, after a macOS update, or when the user asks to check/verify/diagnose/fix their yabai or skhd setup.
Stronger alternatives
This repository is archived — consider an actively maintained alternative.
Declared targets from SKILL.md / docs. Unmarked agents are not listed — the skill may still install via the CLI.
Claude CodeNot declared
CursorNot declared
CodexNot declared
GitHub CopilotNot declared
WindsurfNot declared
Gemini CLINot declared
ClineNot declared
OpenCodeNot declared
Repository health
LicenseLICENSE
Default branchmain
Open issues0
Status
Archived
Package contents
Files included with this skill beyond the listing page.
skill mdSKILL.md2,413 B
docsSUMMARY.md531 B
History
First seen on skills.sh
First recorded snapshot · 29 installs
SKILL.md
yabai + skhd doctor
Read-only diagnostic for a macOS yabai + skhd setup. It changes nothing — it inspects the system and proposes a fix path the user (or you) can act on.
Run it
bash scripts/diagnose.sh
macOS only (uses launchctl, csrutil, sw_vers). Run as the logged-in user, not sudo — the Accessibility checks must see that user's session.
What it checks
Per service (yabai, skhd):
Binary installed + version.
launchd service registered and running (with last exit code).
Config present (~/.config/<svc>/<svc>rc, falling back to ~/.<svc>rc).
Accessibility permission: yabai is probed with yabai -m query (a response
proves running + AX); skhd is inferred from /tmp/skhd_$USER.err.log.
yabai scripting addition (optional, advanced):
SIP status (csrutil status) — SA needs it partially disabled.
Passwordless --load-sa sudoers entry.
Reading the output
✓ healthy · ✗ broken, has a fix · ? unknown/advisory. Findings print per section; a numbered Proposed fix path collects every remediation at the end.
Acting on the fix path
Present the fix path to the user. Most fixes are safe to run for them (brew install ..., yabai --start-service, --restart-service). Two cannot be done from the CLI and must be handed to the user:
Accessibility permission — only grantable in System Settings ▸ Privacy &
Security ▸ Accessibility (toggle yabai / skhd on). After granting, restart the service; macOS does not apply a new permission to a running process.