The project's README from github.com/saragordic/rooms. As one markdown file: README.md.
A little Mac app I made for switching between projects.
Every project is a room: a set of windows and a layout. Press ⌥Space, type the room's name, and your windows come back, laid out neatly. Everything else hides, and nothing is ever closed.

You can just send this repo to your coding agent and ask it to install Rooms for you:
Install Rooms on my Mac: https://github.com/saragordic/rooms
Or install it yourself with Homebrew:
brew trust saragordic/tap
brew install --cask saragordic/tap/rooms
Then open Rooms from your Applications folder. It lives in the menu bar.
You can also grab the latest ZIP from Releases, unzip it, and drag Rooms.app into Applications. The app isn't notarized by Apple yet, so macOS blocks the first launch of the ZIP version: open System Settings → Privacy & Security → Open Anyway after trying to launch it. Apple's instructions explain this step. (The Homebrew version opens straight away.)
Rooms needs Accessibility access to move windows. Turn it on in System Settings → Privacy & Security → Accessibility when it asks. After an update, macOS may ask again: remove Rooms from that list and add it back.
The windows come to the screen you're on and lay themselves out. From then on, ⌥Space and the room's name (or ⌃⌥1–9) brings it back. Getting Started in the menu shows these steps again.
Windows that aren't in the room are hidden, or parked just off-screen when they belong to one of the room's apps. Before a window moves, Rooms writes down where it belongs, and only forgets once the window is back. Show Everything in the menu, quitting Rooms, or opening it again after a crash brings parked windows back; one whose app isn't responding stays recorded and comes back on the next try.
Rooms works entirely on your Mac. It makes no network connections of any kind: no accounts, no analytics, no updates checked, nothing sent anywhere.
Your rooms live in ~/Library/Application Support/Rooms/rooms.json, which you can read and edit (Edit Rooms… in the menu). Parked windows are recorded next to it in resting.json, and a log of what Rooms moved stays in ~/Library/Logs/Rooms/rooms.log. These include window titles, so please don't post them unedited in an issue.
I built this on my Mac and use it all day, but there are still rough edges:
It's built for macOS 14 or later, on Apple Silicon and Intel. I've tested it on Apple Silicon with macOS 26; older macOS versions and Intel Macs haven't had the same hands-on testing.
If something looks wrong, open an issue and tell me your macOS version, Mac model, and whether you're using another screen. Reproduction steps help a lot.
You'll need Xcode 16 or later (or its Command Line Tools: xcode-select --install).
git clone https://github.com/saragordic/rooms.git
cd rooms
make run
This builds build/Rooms.app and opens it. To keep the Accessibility permission across rebuilds, create a certificate named Rooms Dev in Keychain Access (Certificate Assistant → Create a Certificate → type "Code Signing"); the Makefile uses it when it exists.
Choose Quit Rooms from the menu first: parked windows come back as it quits. Then, if you installed it with Homebrew:
brew uninstall --zap --cask rooms
--zap also removes your rooms and settings. Leave it off to keep them for later.
If you installed it by hand, drag Rooms.app to the Trash, then delete these if you want everything gone:
~/Library/Application Support/Rooms
~/Library/Logs/Rooms
~/Library/Preferences/com.saragordic.rooms.plist
macOS remembers the Accessibility permission separately, so remove Rooms from System Settings → Privacy & Security → Accessibility too.
make test # run the tests for the layout engine
make release # build the universal Rooms.app and its ZIP
See CONTRIBUTING.md for more details.
MIT. See LICENSE.