macOS 14 and later. Layouts stay on this Mac

Coffer

Stop throwing windows.
Own the workspace.

Named multi-app layouts on a gapless canvas. The file is JSON, and apply reads the real Accessibility frame before it moves anything.

Layout editor tria
Gapless · 100%
Screens
DELL P2419H (2) 1920×1080 · X −3840
DELL P2419H (1) 1920×1080 · X −1920
Built-in Retina 3024×1964 · X 0
Living Room Apple TV AirPlay · adaptive
DELL P2419H (2) · Regular 1920×1050 usable
Left OrbStack 25% · 480px
Zone 3 Obsidian 40% · 768px
Zone 4 Finder 40% · 768px
Right Safari 35% · 672px
layouts/tria.json write + backup

            
Sorted keys · schema v1

A clamped window pushes its neighbor aside.

OrbStack will not shrink below 600px. The planned zone was 480. The next zones shift, so nothing overlaps.

One layout, two desks.

Regular follows the MacBook. Work follows the Dell, matched by display UUID after macOS renames the panel.

Regular MacBook · on the road
Work DELL P2419H · hardware UUID

A shield is not a quit.

The right zone can go dark for a screen share. Esc clears it. The app behind the shield stays open.

The workspace is a JSON file.

Sorted keys, a last-known-good backup, and no account. Hand-edits that fail to parse fall back instead of wiping the layout.

{
  "name": "tria",
  "schemaVersion": 1,
  "zones": [
    { "id": "zone-left", "app": "OrbStack", "rect": { "x": 0, "width": 0.25 } },
    { "id": "zone-right", "app": "Safari", "rect": { "x": 0.65, "width": 0.35 } }
  ]
}

An agent can stage the monitors.

A local MCP server speaks intent, not pixel guesses. It can inspect the desk, dock a companion window, and put the previous frames back.

  1. 1. Inspect the desktop — see the Mac and the AirPlay TV
  2. 2. Tether a companion — dock Simulator beside Cursor
  3. 3. Project to the TV — beam Safari onto the room TV
  4. 4. Restore the checkpoint — put the windows back

Field notes from the window server.

Finding 1

Minimum-width cascade across abutting zones.

Read the frame back after the move. Shift the neighbor by the overflow.

Finding 5

Dock unminimize lands after the animation.

A resize during the Genie effect is dropped. Settle passes finish the placement.

Finding 10

AirPlay UUIDs change between Wi-Fi sessions.

Match the wireless display, then wait 180ms for the stream size to settle.

Fifteen more are in community-notes/01-technical-field-notes.md.

Pay once, or build it yourself.

No subscription and no account. The source build is the whole app.

$0Build from source. Full native app, on this Mac.
$5Student and educator pass. An .edu address or the GitHub Student pack. Three Macs, signed builds, and the local MCP server.
$15Indie license. Developer ID build, Homebrew cask updates, and the local MCP server. Three Macs.
Build from source

Build it from the repo.

Generate the project, run the macOS tests, and open Coffer.

xcodegen generate
xcodebuild -scheme Coffer -destination 'platform=macOS' test
open build/DerivedData/Build/Products/Debug/Coffer.app