Your windows. Working together.
A free, native macOS window manager.
Snap windows into place, resize neighbours together, and let Adaptive layouts make room as your work grows.
Download the latest beta · Website · Features · Install · Privacy · Documentation
Requires an Apple silicon Mac, macOS 26 or later, and Accessibility permission.
The public beta is self-signed and not notarized. Read the installation steps before first launch.

Watch the full tour · 38 seconds
Feature demonstrations. For videos with playback controls, visit the website.
Drag the shared boundary between adjacent windows. Both windows resize together.
Choose Live Resize or a Resize Preview that applies when you release.
Open a window. Adaptive makes room in the layout while keeping movement and resizing to a minimum.
Swap windows, adjust the layout, or float a window out when it needs its own space.
Group windows into resizable panes. Select a tab to bring its window forward.
Drag tabs between panes, or drag a floating window onto a tab bar to add it as a tab.
Layout Gallery shows a picture of each pane layout and applies it to the whole display.
The + button opens an app straight into a pane. Tab bars can hide until you point at them.
Turn off Stage Manager for Tabbed. Pane assignments last for the current app session.
Cross-display tab dragging is unavailable.
Save a desktop's arrangement and bring it back with one click. Undo Apply puts the windows back.
Each pane can prefer apps or an App Group. Bind a layout to a set of displays to apply it when they connect.
Apply never opens an app or takes a window from another desktop.
Hold Control + Option + Shift, choose a sector, and release. The center or Escape cancels.
The default wheel places windows and has Repair Layout at the bottom.
The Grouped style fans out groups such as Size, Thirds, Displays, Mode, and Choose Layout.
Configure the style, trigger, size, and actions on the Layout Wheel Settings page.
The optional Middle Click trigger reserves unmodified middle-click system-wide while enabled.
Other apps receive that button again when you turn the option off.
Drag snapping
Drag a title bar toward an edge or corner. Preview the placement before you release.
Repair Layout
Rebuild the current desktop's layout from its visible windows, with equal shares and no gaps.
Multiple displays
Next Display and Previous Display make room on the destination and close the gap on the source.
Keyboard shortcuts and undo
Place windows with global shortcuts, with duplicate checks for BetterTile actions.
Undo a placement to restore an earlier window frame.
Watch drag snapping · Watch Repair Layout and multiple displays · Watch shortcuts and undo
- An Apple silicon Mac with macOS 26 or later. Intel Macs are not supported by current releases.
- Accessibility permission. This is the only macOS permission BetterTile requests.
- To build from source: Xcode 26 / Swift 6.3 or later. See Development setup.
- Download the latest beta.
Open the
BetterTile-*-beta.dmgand drag BetterTile into Applications. - Launch BetterTile. The beta is signed with the stable, self-signed
BetterTile Beta certificate. It is not signed with an Apple Developer ID
and is not notarized. After the first launch attempt, open System Settings →
Privacy & Security and choose Open Anyway after confirming the download
came from this repository. You can check it against the
.sha256file beside the release download. - Follow BetterTile's explanation to grant Accessibility permission. BetterTile runs in the menu bar. Its Dock icon is optional and off by default.
BetterTile checks its GitHub-hosted update feed every four hours by default. It shows release notes and asks before downloading or installing. Turn automatic checks off in General Settings, or use Check for Updates… at any time.
Sparkle verifies each update's EdDSA signature against a public key built into the app. This is separate from the beta's macOS code signature. Public betas since 0.4.1 use the same self-signed certificate to preserve Accessibility permission across normal updates. If that identity changes, the release notes will explain the one-time permission steps.
Follow Development setup to configure your free Personal
Team, open BetterTile.xcodeproj, and run the shared BetterTile scheme.
The Debug app has its own configuration and Accessibility grant, separate from
the public beta. Package.swift exposes supporting libraries only; the runnable
app comes from the Xcode project.
Use your Personal Team in the gitignored Config/LocalSigning.xcconfig and keep
the bundle identifier unchanged. Ad-hoc signing changes the app's identity on
each rebuild. See the signing guide
for setup and the one-time permission reset.
Window geometry and configuration stay on your Mac. BetterTile has no advertising, behavioral tracking, or sale of user data. It explains Accessibility permission before requesting it.
Public Apple APIs move and resize windows. A small, documented set of reviewed, read-only private observations improves window identity, minimum-size handling, Spaces, and Stage Manager behavior. Each observation is validated and has a public fallback. BetterTile uses no code injection or SIP workaround.
BetterTile observes limited pointer and keyboard input for snapping, resizing, and the Layout Wheel. Update checks and downloads contact GitHub, which receives ordinary connection metadata. These requests send no window data, configuration, analytics, telemetry, crash reports, or system profile. Send Feedback opens a GitHub form with the app version and build in its suggested title; it submits no issue automatically.
Read Security and privacy for the input scope, network disclosure, private observations, fallback behavior, and vulnerability reporting.
- No cross-Space window movement. BetterTile does not move windows between macOS desktops.
- Stage Manager groups stay single-window. A thumbnail drag selects one validated frontmost member. BetterTile does not move or synchronize the other windows in that Stage group.
- Tabbed needs Stage Manager off. Pane assignments, followed Saved Layouts, and placement undo history last for the current app session. Cross-display tab dragging is unavailable.
- Some apps restrict window sizes. Broader real-app stacking, multi-display, and Space-switch behavior remains under validation. Read the beta notes.
Free forever. No paid tier, subscription, trial, or features held behind a purchase.
Open source under the GNU GPL v3 or later.
Use it, read it, fork it, and share modified versions under the same license.
Download BetterTile · Explore the website
- Development setup — build, sign, run, and test on your Mac.
- Contributing — branch, test, and pull-request workflow.
- Architecture — layers, coordinates, window mutations, and Adaptive.
- Domain glossary — shared BetterTile terms.
- Beta releases — version, validate, sign, and publish an update.
- Security and privacy — permissions, networking, and reporting policy.
- Third-party notices — upstream code, attribution, and terms.
- Agent instructions — build, test, and convention rules for coding agents.
- Vorssaint — BetterTile includes adapted settings and menu-panel presentation code from Vorssaint. Its demand-based service ownership shaped BetterTile's runtime lifecycle. See Third-party notices for attribution and terms.
- Rectangle — a reference for event-driven window management on macOS.
Made by @LMC-Karma