Ferrite is a window layout manager for macOS. It remembers where every app's windows live, restores whole workspaces with one hotkey, and lets windows snap together into magnet groups that move, resize and reflow as one.
Not an auto-tiler. Windows stay free floating and may overlap. Structure is something you opt into, one edge at a time.
Every app's windows are remembered as you work. When an app relaunches, when you log in, or when you plug a display in, its windows go back where they belong. Nothing to configure.
Records are keyed by the set of displays attached, so your desk arrangement and your laptop-only arrangement are separate memories. Multi window apps get one remembered frame per window, matched by pin rules and window identity rather than guesswork.
Snapshot an arrangement as a named workspace, per display. Restoring it adopts the apps already running and launches the ones that are not.
Arrange your windows the way you want them.
Save the arrangement as a named layout.
Record a global hotkey for it in Preferences.
Press it. Running apps snap into place, missing apps launch and land, stacking order included.
Drag one window's edge close to another until the guide appears, then release. The two are mated. A group behaves like one combined window: hold Command and drag any member to carry the cluster, drag an outer edge to scale the whole thing proportionally, and reflow it as a unit.
Only the window you grabbed changes. Its mates stay exactly where they are.
The mate resizes so the shared edge stays shared, its far edge anchored.
The mate keeps its size and slides, pushing its own mates along in turn.
Groups persist per display arrangement and survive a restart. Excluding an app takes it out of grouping entirely, so Finder never mates with anything unless you want it to.
One click arranges every window on the active display, or only the magnet group you are working in. Each diagram below is drawn by the same solver that moves your windows, so it shows exactly what you get. The accented tile is the frontmost window.
Sizes each window by rank, so the one you are working in gets the most room. The bias picks which side the largest window occupies.
A fixed column count, an exact grid of zones, or a main-centre split with your own proportions. Custom presets sit in the menu beside the built in ones.
Grid zones are fixed on purpose. Ask for seven by three and you get twenty one cells: open five windows and five cells fill while the rest stay empty, rather than five windows stretching to cover the screen.
Ferrite's data files are built to be synced with git or Nextcloud, so a stored window title would mean syncing your browsing history. Titles are hashed with a per install salt instead. Matching still works, because it only ever needed equality, never the text.
Requires macOS 13 or later and a Swift 5.9 toolchain.
git clone https://github.com/vhark/Ferrite.git cd Ferrite ./scripts/install.sh
Installs to /Applications and registers Launch at Login. On first run, grant Accessibility under System Settings, Privacy and Security. Ferrite cannot see or move windows without it.
Available once the first notarized release ships.
# coming with 1.0
brew tap vhark/ferrite \
https://github.com/vhark/Ferrite.git
brew install --cask ferrite
The repository doubles as the Homebrew tap, so the cask ships from the same place as the source.