The app
Your home screen, in a window. One page at a time.
A native SwiftUI editor that shows the device's actual home screen. Everything it does is a call into HomeScreenKit, the same library the MCP server links, so a drag-and-Apply and an agent's apply_layout go through the same planner and the same verified writer.
01 The editor
2400×1500 (16:10) @2x
Real icons, real grid.
Icons are fetched from the device and cached. The grid is whatever the device reports (columns, rows, dock size, page ceiling), never an assumed 4×6. iPhones and iPads both.
Drag and drop that means what it looks like.
Drop on a tile's edge to reorder, with a caret at the exact slot. Drop on the center to merge: app onto app makes a folder, app onto folder moves it inside. Page tabs light up under a hovering drag; the dock and the tabs are drop targets. Undo and redo.
What you won't see: your wallpaper.
On iOS 27, reading it kills the service channel, and it can never be set, so the editor draws a neutral gradient behind your icons.
02 Widgets and folders
Widgets at their true footprint.
Small, medium, and large blocks, with Smart Stacks labeled by their member apps. Move them, resize them, or remove them; their contents are never touched. Icons flow around them the way SpringBoard packs them.
Folders.
Rename, reorder inside, see every interior page at once, or send an app back out with “Move Out to Page N” from an app's context menu inside the folder.
Not yet: dragging an app out of a folder across sheets. Use “Move Out to Page N” for now.
2400×1500 (16:10) @2x
03 Search
⌘F finds anything.
An app name, a bundle ID, a folder, or “page 2”. Case and accents don't matter. Every match is ringed in place; ↑ ↓ Return jumps there and opens the folder if that's where it lives.
2400×1500 (16:10) @2x
04 Review, then Report
Nothing is written until you've read the receipt.
Apply Changes opens the Review sheet (“Review changes: nothing has been written yet”) with a plain-language list of what will move, be added, be removed, become a folder, be renamed, or be resized, with real icons; the exact diff under a disclosure; and the transport you're about to write over, flagged “wireless write” when it's Wi-Fi. A plan with errors can't be applied.
1600×1200 (4:3) @2x
1200×900 (4:3) @2x
When an agent moved a Smart Stack onto a full page, the raw diff ran 147 lines. The Review sheet's summary of that session's two patches is seven entries: a dock swap, one widget moved, four apps shifted to make room.
05 Snapshots
Restore isn't a special path.
Every pre-write snapshot, listed newest first. Stage loads one into the editor, where it goes through the same review gate as any other edit. Restore is a normal apply.
Snapshots live on your Mac under Application Support, per device; at least the last 20 are kept. The app's Snapshots sheet and the server's list_snapshots read the same folder: an agent's snapshots show up in the app, and vice versa.
The same folder, read as a list of writes rather than files, is Write History.
1400×1000 (7:5) @2x
06 Write History
An agent rearranged your phone. Here is what it did.
You handed an agent the same editor you use, and it wrote to your phone while you were not watching. Write History (⌘Y, the History button in the toolbar, or the link on the device picker) lists every write to the device, newest first: who made it, when, and what changed.
1600×1200 (4:3) @2x
Who.
A badge you cannot miss: AGENT for a write through apply_layout or restore_snapshot, APP for Apply Changes in the editor, CLI for the command-line test ladder. A snapshot the app cannot attribute says UNKNOWN rather than guessing.
What.
The same plain-language sentences the Review sheet and an agent's summary use, from one engine, with real icons. Each row is measured from its snapshot to the next one; the newest is measured against the phone as it is now, read fresh when the list opens.
With the phone unplugged.
It reads the snapshot folder on your Mac, and every write leaves one, from the app or from an agent. So it works with no device attached and covers writes made while the app was closed. Roll back the usual way: stage the snapshot, review, apply.
What it cannot tell you.
Whether a write verified clean: that result is not kept beside the snapshot, so the view does not show it. Anything you rearranged by hand between two writes is counted with the earlier write. A pre-restore snapshot is read as an agent's restore by inference, because the app restores through Apply Changes and only restore_snapshot takes that path. And the store keeps the newest 20 snapshots per device, so this is recent history, not all of it.
07 Connection
Connections that survive the phone sleeping.
A locked, unplugged iPhone naps its Wi-Fi. The badge turns orange (“Reconnecting…”) and the link comes back in place with your unsaved edits intact. If it gives up, the badge says “Lost” and offers Reconnect. Icons that didn't load get a Retry Icons button.
The three states
Green is a live link, USB or Wi-Fi. Orange means the app is retrying in place; your edits are kept. Red means it gave up and is waiting for you.