macOS app + MCP server · iPhone & iPad · USB or Wi-Fi

Rearrange your iPhone from your Mac. By hand, or by agent.

Your real home screen (real icons, real grid, real widgets) in a window on your Mac, and the same editor handed to AI agents as sixteen MCP tools. Every write is snapshotted first, then read back and verified. In the app, nothing is written until you've seen the exact diff. An agent writes once its plan validates; to approve each agent write yourself, turn on Confirm agent writes (it's off by default).

Developer ID signed and notarized. Not on the Mac App Store; the reason is written down, not hidden.

One home screen. Two ways in.

The device's actual home screen, one page at a time: real icons, the real grid, widgets at true size, folders, undo, ⌘F, and a Review sheet before every write. The app in detail →
One core, two faces. The app and the MCP server link the same Swift library, HomeScreenKit. The server runs with the app closed; neither wraps the other.usbmux → lockdown → TLS → springboardservices

01 The problem

Why this exists

With a couple of hundred apps, rearranging by thumb is a ritual: hold, wiggle, drag to the edge, wait for the page flip, miss. And in our tests in August 2026, Apple Configurator, Apple's own desktop editor, failed in two ways on an iPhone 16 Pro running iOS 27.0.

Reproduced

Folder renames don't stick.

Type a name, press Return, and it reverts to the auto-generated App Store category (“Folder”, “Finance”) as soon as the view redraws.

Reproduced

It duplicates icons.

Merge two apps into a folder and one ends up inside the folder and still on the page. ScreenWright's validator refuses that state: an app can't be in two places.

Gap

Widgets were invisible to every tool we checked.

In our August 2026 survey: not Configurator, not 3uTools or AnyTrans, not sbmanager, not MDM layout payloads. ScreenWright reads Smart Stacks and widgets at their real footprint and moves, resizes, or removes them without touching what's inside.

Gap

We found no API.

Every route we found is drag-and-drop, a push-only MDM payload on a supervised device, or a robot driving simulated touches. ScreenWright exposes read → diff → write as structured calls.

An agent reorganizing 265 apps should be a structured call, not a robot dragging icons.the engineering brief, day one

02 The safety model

The safety model is the product.

The device's acknowledgement for a home-screen write carries no information, so every write, from either face, is a five-step transaction. There is no other way to write.

STEP 1

Snapshot

The current layout is saved to your Mac before anything is sent.

STEP 2

Validate

Compiled against the real installed-app list and real grid. Any error refuses the write.

STEP 3

Dry-run

The exact diff, with nothing written: the Review sheet, or preview_layout, which also says what SpringBoard will make of it. An agent's preview isn't shown to you unless you turn on Confirm agent writes.

STEP 4

Write, then settle

One push, then about three seconds for SpringBoard to settle.

STEP 5

Verify

Read back and diffed against the prediction. “Verified clean” is the only success signal.

How the safety model works

04 Limits

What it can't do. Stated up front.

Limits of what iOS exposes to a paired computer, not features we haven't gotten to. The server states the four hard ones to agents in its own instructions.

CapabilityStatusWhy
WallpaperCan't be setNo command exists. On iOS 27, even reading it breaks the service channel, so the app doesn't try.
Icon appearance (dark, tinted, large)Can't be setNot in the service.
Removing an app from the home screenNot possibleSpringBoard re-inserts anything omitted. ScreenWright warns rather than pretends.
Creating a widgetNot possibleExisting widgets can be moved, resized, or removed, by UUID. A synthesized widget renders as a dead blank tile, so the compiler refuses to invent one. A snapshot can't bring back a widget you removed; add it again on the device.
Blank slots, free placement, hidden apps, Today View, App Library orderNot expressibleNot in the wire format.

The full limits table and the “Not yet” list

05 Pricing

Free to look. US$19 to write.

The download is free, so you can see exactly what it would do to your phone before you pay. A license unlocks writing to the device. One payment, no subscription, no account. Downloads and purchases open with ScreenWright 1.0.

Free

Free features

$0 forever

  • Connect over USB or Wi-Fi, even with the phone locked
  • Your real home screen: real icons, the real grid, widgets and folders
  • Rearrange, search with ⌘F, undo and redo
  • Preview any change and read the exact diff
  • Snapshots and Write History
  • Save layouts to your library on your Mac
  • The MCP server's read and preview tools, so an agent can read, plan and show you a change
Free download: coming soon

License

What the license unlocks

US$19 once

  • Apply Changes: write your layout to the device, verified
  • Restore any snapshot (except a widget you removed: add that again on the device)
  • Apply a saved layout
  • The MCP write tools: apply_layout, restore_snapshot, apply_saved_layout
  • Every ScreenWright 1.x update
  • One person, on up to five Macs they use
Buying opens with 1.0

Purchasing opens with ScreenWright 1.0. Sold by Paddle, our reseller. Your local currency and any sales tax or VAT are shown at checkout. 14-day refunds.

Apple can break this

ScreenWright uses parts of iOS that Apple doesn't document or support. Any iOS update can stop it working, and we can't promise a fix or a date. We plan on updates after major iOS releases, and the free features let you check your device before you pay. If it doesn't work out, ask for a refund within 14 days. The details are in the terms.

Updates: your license covers every 1.x release. A future 2.0 may be a paid upgrade; if it is, your 1.x license stays yours. No free trial of writing: the free features are the trial, and the refund is the safety net.

ScreenWright app icon

Coming soon: ScreenWright 1.0

For macOS 15 or later · Free to download; a US$19 license unlocks writing

We've paused the download while we get 1.0 ready. If you'd like to hear when it's out, tell us on the support page: choose “Question” and ask to be told. We'll write to you once, when it ships.

Tell me when it's out

Developer ID signed and notarized · drag to Applications

1Open the DMG and drag ScreenWright to Applications.
2Plug in your iPhone or iPad and tap Trust This Computer.
3Pick the device. Edit. Apply, and read the report.

The MCP server

screenwright-mcp is inside the app, at ScreenWright.app/Contents/MacOS/screenwright-mcp, signed and notarized with it. Register it by absolute path; with the app in Applications:

Claude Code
claude mcp add screenwright -- /Applications/ScreenWright.app/Contents/MacOS/screenwright-mcp

or, in a project's .mcp.json:

.mcp.json
{
  "mcpServers": {
    "screenwright": { "command": "/Applications/ScreenWright.app/Contents/MacOS/screenwright-mcp", "args": [] }
  }
}

If the app lives somewhere else, don't guess the path: in ScreenWright, choose Help, then Set Up MCP Server, and copy either form. It reads the path of the copy that is running.

Smoke test it by hand:

shell
printf '%s\n' \
  '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2025-06-18"}}' \
  '{"jsonrpc":"2.0","id":2,"method":"tools/call","params":{"name":"list_devices","arguments":{}}}' \
  | /Applications/ScreenWright.app/Contents/MacOS/screenwright-mcp

MCP reference →

Made by Grizzly Mining Company LLC.