Yashiki
macOS tiling window manager
Features
- Tag-based workspaces
- Multiple tags per window
- External layout engines via JSON stdin/stdout
- Shell script configuration
- Multi-monitor support
- Window rules
- No SIP disabling required
Install
$brew install --cask yashikiAbout
Yashiki is a tiling window manager for macOS written in Rust that supports tag-based workspaces and external layout engines. It provides flexible window rules, multi-monitor support, and customizable workflows with shell script configuration. The project is under active development and leverages public Accessibility APIs without requiring SIP to be disabled.
Who It's For
Yashiki is for macOS developers comfortable with Unix tooling who want a tiling window manager with tag-based workspaces and the ability to plug in external layout engines. Its tag system (inspired by dwm and similar WMs) allows multiple tags per window and per-workspace tag sets, rather than the fixed one-Space-per-workspace model of most macOS tilers. External layout engines communicate via JSON on stdin/stdout, letting you write a custom layout algorithm in any language. No SIP disabling is required.
How It Works
Yashiki manages windows as a set of tagged entities. Each window can have multiple tags assigned; the visible workspace shows windows matching the active tag set. This enables workflows like "show all windows tagged 'reference' alongside windows tagged 'coding'" without windows physically moving between Spaces. Layout control is delegated to external processes via a JSON protocol: Yashiki sends window and screen geometry, the layout engine responds with placement coordinates. Built-in layouts are also available. Shell script configuration defines window rules that automatically apply tags or layout behaviors to specific applications.
Compared to Similar Tools
Compared to AeroSpace (i3-style, fixed workspaces), Yashiki's tag system is more flexible — windows can belong to multiple workspaces simultaneously, which i3/AeroSpace don't support. Compared to yabai (BSP, SIP partial disable for full features), Yashiki requires no SIP changes and offers the external layout engine extensibility. For users who want the dwm/xmonad tag-based mental model on macOS, Yashiki is the primary option on this list.
Requirements
- macOS version: check github.com/typester/yashiki for requirements
- No SIP disabling required
- Accessibility permission required
- Free and open-source
Getting Started
brew install --cask yashiki
Launch Yashiki and grant Accessibility permission. Configure window rules and keybindings per the GitHub README. External layout engines can be written in any language that reads/writes JSON on stdin/stdout.