Tatami
A macOS workspace manager with BSP window tiling
Features
- Virtual workspaces
- Automatic BSP tiling
- Independent profiles
- Side-by-side borrow
- Always on top apps
- Scriptable CLI
- Workspace change hooks
- Five interface languages
Install
$brew install --cask pangmo5/tap/tatamiAbout
Tatami groups your apps into virtual workspaces you switch between with a keystroke or a configurable trackpad gesture, and tiles their windows automatically with a binary space partitioning (BSP) engine. It uses ScreenCaptureKit mirrors with Screen Recording permission instead of changing protected system settings, so System Integrity Protection stays on. Independent Profiles group whole sets of workspaces so you can switch entire setups at once, and a scriptable CLI plus hooks let external tools react to workspace changes.
Who It's For
Tatami is for macOS users who want yabai- or AeroSpace-style automatic BSP tiling combined with first-class virtual workspaces, without touching System Integrity Protection. It particularly suits people who juggle several projects or contexts and want to group apps into named workspaces, then switch between entire multi-workspace setups at once via Profiles rather than reassembling windows by hand.
How It Works
Tatami layers two abstractions on top of window management: virtual workspaces group apps together and tile them automatically, inserting each new window beside the current insertion target in a BSP tree; independent profiles then group whole sets of workspaces so you can swap your entire setup in one action. A "Borrow" feature pulls another workspace's contents beside the current one for side-by-side composition, and apps can be marked to stay "Always on Top" within a workspace or shared across all of them. Rather than requesting the Accessibility permission and disabling SIP the way some tiling managers do, Tatami "uses ScreenCaptureKit mirrors with Screen Recording permission instead of changing protected system settings" — System Integrity Protection stays enabled throughout. Interaction is keyboard-first, using skhd-style bindings such as ctrl + alt - h, with configurable three- and four-finger trackpad gestures as an alternative. Everything is also reachable from a scriptable CLI — commands like tatami workspace activate, tatami window focus left, and tatami layout balance — and JSON hooks notify external tools whenever the active workspace changes.
Configuration
Tatami reads a plain TOML file at ~/.config/tatami/config.toml (or under $XDG_CONFIG_HOME/tatami/ if set), and edits apply live without restarting:
# ~/.config/tatami/config.toml
[settings.layout]
gapInner = 8
gapOuter = 12
[settings.gestures]
enabled = true
threshold = 0.3
[settings.gestures.threeFinger]
left = "nextWorkspace"
right = "previousWorkspace"
[[sharedApps]]
bundleIdentifier = "com.apple.Music"
name = "Music"
layout = "tiled"
Compared to Alternatives
Compared to yabai, which needs a partial SIP disable for its full feature set, Tatami avoids SIP entirely by using ScreenCaptureKit mirrors with Screen Recording permission instead. Compared to AeroSpace, which is also SIP-free but relies on the standard Accessibility permission and a single virtual workspace system, Tatami adds Profiles for switching whole sets of workspaces at once and a "Borrow" feature for pulling another workspace's windows in side-by-side. Compared to KiwiDesk, which also never touches SIP and offers Lua scripting across seven layouts on a flat window list, Tatami is workspace-first with a single BSP layout and TOML-based configuration rather than an embedded scripting language.
Requirements
- macOS 14 or later
- Screen Recording permission required; no SIP changes needed
- Free and open source (AGPL-3.0-only)
- Actively maintained — v1.14.0 released 2026-09-09
Getting Started
Install via Homebrew:
brew install --cask pangmo5/tap/tatami
Or download the signed build directly from the releases page. Launch Tatami and grant Screen Recording permission when prompted, then use the Guided Setup to learn the default bindings. From there, edit ~/.config/tatami/config.toml to adjust gaps, gestures, and shared apps, or drive Tatami from its CLI and hooks for scripting. Full documentation is at pangmo5.dev/Tatami.