Amethyst
Automatic tiling window manager

Amethyst — Official Website
Quick Take: Amethyst
Amethyst is the best tiling window manager for macOS users who want automatic window management without disabling SIP. It has enough built-in layouts to cover most workflows, keyboard shortcuts for everything, and the flexibility of custom JavaScript layouts for edge cases. The learning curve is real — if you've never used a tiling WM, expect a few days of adjustment. But once tiling becomes second nature, you'll wonder how you ever worked with overlapping windows. It's free, open-source, and actively maintained. For developers, writers, and anyone who routinely works with 3+ windows, Amethyst turns window management from a constant chore into a non-issue.
Best For
- •Developers who want keyboard-driven window management without disabling SIP
- •Users with multi-monitor setups who need per-display layout control
- •Linux users switching to macOS who miss xmonad or i3
- •Anyone tired of manually dragging and resizing windows throughout the day
What is Amethyst?
Amethyst is a free, open-source tiling window manager for macOS inspired by xmonad on Linux. It automatically arranges your application windows into non-overlapping layouts so you never manually drag or resize anything. You open apps, Amethyst tiles them. The concept is simple: your screen is divided into regions, and each window fills a region. Open a terminal and a browser — they split the screen in half. Open a third app — the screen divides into thirds (or into a main pane plus a stack, depending on your layout). Close a window and the remaining ones instantly expand to fill the gap. This happens automatically, driven by whichever layout algorithm you've selected. Amethyst ships with about a dozen built-in layouts. Tall puts one main window on the left and stacks the rest on the right. Wide does the same but horizontally — main window on top, stack below. BSP (Binary Space Partitioning) recursively splits the screen so every window gets a proportional rectangle, which works well when you have 4-6 windows open. Fullscreen maximizes the focused window. Column arranges everything in equal vertical strips. You cycle through layouts with a keyboard shortcut and the windows instantly rearrange. Everything is keyboard-driven. Option+Shift+J and K move focus between windows. Option+Shift+Enter swaps the focused window into the main position. Option+Shift+H and L resize the main pane. Option+Shift+Space cycles layouts. These defaults use Option+Shift as the modifier, but you can remap them. The point is that you manage windows without touching your mouse, which is why tiling window managers are popular with developers who already live in the keyboard. Amethyst works with macOS Spaces and multiple monitors. Each Space can have a different layout. Each monitor tiles independently. You move windows between monitors and Spaces with keyboard shortcuts. The one macOS setting you absolutely must change: disable 'Automatically rearrange Spaces based on most recent use' in System Settings, or your Spaces will shuffle unpredictably. Why Amethyst over alternatives? It doesn't require disabling System Integrity Protection (SIP). Yabai, the other major tiling WM for macOS, needs SIP disabled for its full feature set, which many people aren't comfortable with. Amethyst works within macOS's accessibility APIs, so it's a safer choice for work machines and managed devices. The tradeoff is less customization — Yabai can do things Amethyst can't, like remove title bars or control window opacity. But for straightforward tiling with keyboard control, Amethyst is the practical choice. The honest assessment: if you've never used a tiling window manager, Amethyst will feel strange for the first few days. You're giving up the freedom to put windows wherever you want, and gaining the speed of never having to think about window placement again. Most people who try tiling for a week don't go back.
Install with Homebrew
brew install --cask amethystDeep Dive: Tiling Window Managers on macOS
Why tiling works, how Amethyst implements it, and what the macOS tiling landscape looks like in 2026.
History & Background
Tiling window managers originated in the Unix/Linux world with tools like dwm, i3, and xmonad. The concept is simple: instead of floating windows that overlap, the screen is divided into non-overlapping regions and each window fills a region. This eliminates the cognitive overhead of window management — you never think about where to put a window because the layout algorithm decides. Amethyst brought this concept to macOS, working within Apple's accessibility APIs rather than requiring kernel-level access. It was originally written in Objective-C and later moved to Swift.
How It Works
Amethyst uses macOS Accessibility APIs to detect window creation, destruction, and focus changes. When a window event occurs, Amethyst recalculates the current layout and issues resize/move commands to all windows in the current Space. The layout engine is modular — each layout (Tall, BSP, Wide, etc.) is a function that takes window count and screen dimensions and returns frame positions. Custom JavaScript layouts plug into this same system. The approach is event-driven: Amethyst only recalculates when something changes, so it doesn't continuously poll or consume resources.
Ecosystem & Integrations
The macOS tiling ecosystem in 2026 includes Amethyst (accessibility-based, no SIP required), Yabai (most powerful, SIP required for full features), AeroSpace (newer, TOML-configured, own workspace system), and Rectangle (simple snapping, not true tiling). Each targets a different point on the simplicity-power spectrum. Amethyst sits in the middle — more powerful than Rectangle, simpler than Yabai, and more Mac-native than AeroSpace. Many users try all four before settling on one.
Future Development
Amethyst development focuses on macOS compatibility (each macOS release changes accessibility APIs slightly), bug fixes, and incremental feature additions. The project doesn't have an aggressive feature roadmap — it's mature software that does its core job well. Community contributions tend to focus on new built-in layouts, configuration options, and macOS version compatibility.
Key Features
BSP Layout (Binary Space Partitioning)
BSP is Amethyst's most flexible layout for multi-window workflows. It recursively splits the screen: the first window takes the full screen, the second splits it in half, the third splits one half again, and so on. Each window gets a proportional rectangle. With four windows, you get a clean grid. With six, each window is still visible and usable. BSP works especially well on large or ultrawide monitors where you have enough pixels to keep 4-6 windows readable. It's the layout most people settle on after trying the others.
Tall and Wide Layouts
Tall is the classic tiling layout: one main window on the left (taking about 60% of the screen by default), with all other windows stacked vertically on the right. Wide is the same idea rotated — main window on top, stack below. Tall is the most popular layout for coding: editor on the left, terminal and browser stacked on the right. You resize the main pane with Option+Shift+H/L to give your editor more or less room depending on what you're doing. Tall is where most people start and many people stay.
Keyboard-Driven Window Management
Every window operation has a keyboard shortcut. Move focus: Option+Shift+J/K. Swap window to main: Option+Shift+Enter. Resize main pane: Option+Shift+H/L. Move window to next screen: Control+Option+Shift+L. Send window to a specific Space: Control+Option+Shift+1/2/3. Cycle layouts: Option+Shift+Space. Toggle float for current window: Option+Shift+T. The modifier keys are configurable — you can change mod1 and mod2 in preferences or in ~/.amethyst.yml. Once you memorize 5-6 shortcuts, window management becomes instant and unconscious.
Multi-Monitor and Spaces Support
Each monitor runs its own independent tiling layout. Your main display might use BSP while your external monitor uses Tall. Each macOS Space also gets its own layout. You can set up Space 1 as your coding environment with Tall layout and Space 2 as your communication space with a different arrangement. Moving windows between monitors and Spaces uses keyboard shortcuts. The one critical requirement: disable 'Automatically rearrange Spaces based on most recent use' in System Settings > Desktop & Dock > Mission Control. If you skip this, macOS will reorder your Spaces randomly and Amethyst's window management becomes chaotic.
Floating Windows
Not every app should be tiled. System Settings, calculators, Slack calls, color pickers, and small utility windows look awkward in a tiling layout. Amethyst lets you mark specific apps as always-floating in its preferences. These apps behave like normal macOS windows — you drag and resize them manually. You can also toggle any individual window between tiled and floating with Option+Shift+T. Most people float 5-10 apps and tile everything else.
Custom JavaScript Layouts
If the built-in layouts don't match your workflow, you can write custom ones in JavaScript. Create a .js file in ~/Library/Application Support/Amethyst/Layouts/, restart Amethyst, and your layout appears in the cycle. The layout script receives the number of windows and screen dimensions, and returns an array of frames (rectangles) for each window. This lets you create asymmetric layouts, three-column setups, or workspace-specific arrangements that none of the built-in options cover.
YAML Configuration
Amethyst can be configured through its GUI preferences or through a ~/.amethyst.yml file. The YAML file is more powerful: you can define enabled layouts, set the modifier keys, configure per-app floating rules, adjust margins and padding, and set up layout-specific options. The YAML config is version-controllable — commit it to your dotfiles repo and replicate your window management setup on any Mac in seconds.
Who Should Use Amethyst?
1The Full-Stack Developer
A developer working on a web application has VS Code, a terminal running the dev server, Chrome showing the app, and sometimes a database client open. With Amethyst's Tall layout, VS Code takes the main pane (left 60%), and the terminal and browser stack on the right. When they need the database client, they open it and it joins the right stack. They resize the main pane wider when writing code, narrower when debugging in the browser. Switching between windows is Option+Shift+J/K — no mouse, no Alt+Tab cycling through a list. Everything is always visible.
2The Writer with Research Windows
A technical writer works with a writing app, 2-3 browser tabs (research sources), and a notes app. Using BSP layout on a 27-inch monitor, four windows arrange into a grid — each gets a quarter of the screen. The writer reads a source in one quadrant, writes in another, and references notes in a third. When they close a source, the remaining windows expand. No manual resizing, no overlapping windows hiding important content. The writer focuses on content, not window management.
3The Sysadmin with Multiple Terminals
A systems administrator monitors multiple servers simultaneously. They open 4-6 terminal windows — each connected to a different server via SSH. Using Column layout, each terminal gets an equal vertical strip across the screen. On an ultrawide monitor, six terminals side by side are all readable. They watch logs scroll in one, run commands in another, and compare configurations across servers without any window overlapping. Option+Shift+J/K moves focus between terminals. When they're done with a server, they close that terminal and the others expand.
How to Install Amethyst on Mac
Amethyst installs via Homebrew or direct download from GitHub.
Install via Homebrew
Run: brew install --cask amethyst. This downloads and installs Amethyst to your Applications folder.
Grant Accessibility Permission
Open Amethyst. macOS will prompt you to grant Accessibility access in System Settings > Privacy & Security > Accessibility. Enable Amethyst. Without this permission, Amethyst cannot move or resize windows.
Disable Space Auto-Rearranging
Go to System Settings > Desktop & Dock > Mission Control. Turn off 'Automatically rearrange Spaces based on most recent use.' This is not optional — if enabled, macOS shuffles your Spaces unpredictably and Amethyst's tiling becomes inconsistent.
Learn the Core Shortcuts
Start with these five: Option+Shift+Space (cycle layouts), Option+Shift+J/K (move focus), Option+Shift+Enter (swap to main), Option+Shift+H/L (resize main pane). These cover 90% of daily use.
Pro Tips
- • Add apps that shouldn't be tiled (System Settings, calculators, Slack calls) to the floating list immediately. Preferences > Floating.
- • Try the Tall layout first. It's the most natural starting point for people new to tiling.
- • If keyboard shortcuts conflict with other apps, change Amethyst's modifier keys in Preferences or ~/.amethyst.yml.
- • Use 'brew upgrade --cask amethyst' to update when new versions are released.
Configuration Tips
Set Window Margins for Visual Breathing Room
By default, tiled windows sit edge-to-edge. Add margins (Preferences > General > Window Margins, or window-margins in YAML) of 5-10 pixels for visual separation. This small gap makes it easier to distinguish window boundaries, especially with apps that have similar background colors. Some people set margins to 0 for maximum screen use; others prefer 8-12px for aesthetics. It's personal preference.
Configure Per-App Floating Rules
In ~/.amethyst.yml, you can set floating rules by app name. Common floaters: System Settings, 1Password, Calculator, Spotify mini player, any app with small utility windows. Add them to the floating list so they don't get tiled into awkward thin strips. You can also mark apps that should always tile even if they're normally floating.
Remap Modifier Keys If You Use Vim or Emacs
Amethyst's default Option+Shift modifier conflicts with some Vim/Emacs keybindings and apps that use Option for special characters. Change mod1 to Hyper (Control+Option+Shift+Cmd) if you have a Hyper key configured, or to Control+Option. Edit the mod1 and mod2 settings in ~/.amethyst.yml. The goal is a modifier combination that doesn't conflict with your editor, terminal, or browser shortcuts.
Enable Only the Layouts You Use
Amethyst ships with ~12 layouts, but cycling through all of them is slow. Disable the ones you never use in Preferences > Layouts. Most people keep 3-4: Tall, BSP, Fullscreen, and maybe Wide or Column. Fewer enabled layouts means fewer presses of Option+Shift+Space to get to the one you want.
Alternatives to Amethyst
macOS has several window management options that make different tradeoffs between simplicity, power, and system integration.
Rectangle
Rectangle is a free, open-source window snapping tool — think Windows' Aero Snap for Mac. You drag windows to screen edges or use keyboard shortcuts to snap them to halves, quarters, or thirds. Rectangle doesn't auto-tile: you arrange each window yourself. It's simpler than Amethyst, has zero learning curve, and works well for people who want basic split-screen without committing to a tiling philosophy. If you only ever use 2-3 windows at once, Rectangle is probably enough. If you regularly have 4+ windows and want them all visible without manual arrangement, Amethyst is the better tool.
AeroSpace
AeroSpace is a newer tiling window manager for macOS that uses its own virtual workspace system instead of native macOS Spaces. It's configured entirely through a TOML file and has i3-inspired keyboard shortcuts. AeroSpace gives you more control over workspace behavior but requires giving up macOS Spaces in favor of its own workspace model. Amethyst works within native macOS Spaces, which is more familiar if you already use Mission Control. If you're comfortable with i3-style configuration and want deeper control, AeroSpace is worth trying. If you want something that feels more 'Mac-native,' Amethyst is the choice.
Yabai
Yabai is the most powerful tiling window manager for macOS. It can remove title bars, control window opacity, manage borders, and do things Amethyst can't. The catch: Yabai's full feature set requires disabling System Integrity Protection (SIP), which weakens macOS security. Without disabling SIP, Yabai is roughly equivalent to Amethyst. If you're willing to disable SIP and want maximum customization, Yabai is better. If you want solid tiling without touching SIP — especially on a work machine — Amethyst is the safer, simpler option.
Pricing
Amethyst is completely free and open-source under the MIT license. No paid tiers, no subscriptions, no feature restrictions. Download it, use it, configure it, modify it. Development is community-driven and hosted on GitHub.
Pros
- ✓Automatic window tiling — no manual dragging or resizing
- ✓Works without disabling System Integrity Protection (unlike Yabai's full mode)
- ✓Keyboard-driven: all window operations via customizable shortcuts
- ✓Multiple built-in layouts: Tall, Wide, BSP, Fullscreen, Column, and more
- ✓Per-Space and per-monitor layout configuration
- ✓Custom layouts in JavaScript for advanced users
- ✓YAML configuration file for dotfile-based setup replication
- ✓Completely free and open-source (MIT license)
- ✓Active development with macOS compatibility updates
Cons
- ✗Steep learning curve for people who've never used tiling window managers
- ✗Less customizable than Yabai (no title bar removal, no opacity control)
- ✗Default keyboard shortcuts conflict with some apps (Vim, special character input)
- ✗Requires disabling macOS Space auto-rearranging for reliable behavior
- ✗Not all apps tile well — some have minimum window sizes that fight the layout
- ✗No GUI for custom layout creation — requires writing JavaScript
Community & Ecosystem
Amethyst's development happens on GitHub (github.com/ianyh/Amethyst) with active issue tracking and community contributions. The project receives regular updates for macOS compatibility — version 0.24.1 (December 2025) fixed issues with macOS 15. Reddit's r/macapps has frequent discussions about Amethyst setup and configuration. YouTube has several good setup guides. The community is small compared to mainstream apps but dedicated — if you post an issue on GitHub, you'll typically get a response. Dotfile sharing is common: search GitHub for '.amethyst.yml' to find real-world configurations from other users.
Video Tutorials
Getting Started with Amethyst
More Tutorials
Amethyst Tiling Window Manager | Demo, Review, & Key Bindings!
How Noah Sees It • 24.2K views
Mouseless MacOS Window Management - Yabai vs Amethyst
Brandon Boswell • 51.3K views
pros don’t need to use a mouse - tiling window managers #developer #coding #programming #cs
Leon Si • 293.1K views
Frequently Asked Questions about Amethyst
Our Verdict
Amethyst is the best tiling window manager for macOS users who want automatic window management without disabling SIP. It has enough built-in layouts to cover most workflows, keyboard shortcuts for everything, and the flexibility of custom JavaScript layouts for edge cases. The learning curve is real — if you've never used a tiling WM, expect a few days of adjustment. But once tiling becomes second nature, you'll wonder how you ever worked with overlapping windows. It's free, open-source, and actively maintained. For developers, writers, and anyone who routinely works with 3+ windows, Amethyst turns window management from a constant chore into a non-issue.
About the Author
Productivity & Workflow Analyst
Related Technologies & Concepts
Related Topics
Sources & References
Fact-CheckedLast verified: May 6, 2026
Key Verified Facts
- Amethyst is an open-source tiling window manager inspired by xmonad.[cite-4]
- Version 0.24.1 was released in December 2025 with macOS 15 compatibility fixes.[cite-18]
- 1ianyh/Amethyst: Automatic tiling window manager for macOS à la xmonad - GitHub
Accessed May 6, 2026
- 2Amethyst | ianyh
Accessed May 6, 2026
- 3Releases · ianyh/Amethyst - GitHub
Accessed May 6, 2026
Research queries: Amethyst tiling window manager macOS 2026