Skip to main content
Glama
home-screen-mcp

home-screen-mcp

Drag real app icons, arrange folders and widgets, sort by color or usage, and compare your draft before applying it over USB. Use the Mac app, local browser editor, CLI or an MCP assistant. Free and open source; no account or jailbreak required.

What you can do

Organize

Review

Work your way

Drag apps, folders, widgets and Dock items

Compare device layout and draft

Native Mac app or local browser

Sort by color, A–Z, category or usage

Undo and redo draft edits

CLI and standard stdio MCP

Move apps to the App Library or App Bank

Back up before writes; verify by readback

Separate drafts and backups per device

Multi-select, search, page editing and multi-page folders help with larger layouts. Category lookup and usage sorting have their own data sources and permissions.

Related MCP server: homescreen-mcp

Download

Open Releases and choose the archive matching Apple menu → About This Mac → Chip / Processor.

Your Mac

Download

Apple silicon (M-series)

home-screen-organizer-<version>-macos-arm64.dmg

Intel

home-screen-organizer-<version>-macos-x86_64.dmg

MCPB-compatible client

home-screen-organizer-<version>-macos.mcpb — both architectures; install guide

Open the DMG and drag Home Screen Organizer into Applications. ZIP archives are also available. The app includes its Python engine and dependencies and requires macOS 14 or later.

The app is ad-hoc signed. If macOS requests approval, use System Settings → Privacy & Security → Open Anyway, then launch it again.

To verify a download, save SHA256SUMS.txt beside the chosen archive and run:

shasum -a 256 --check --ignore-missing SHA256SUMS.txt

For source installation, native builds and Actions artifacts, see Building Home Screen Organizer.

Quick start

  1. Open Home Screen Organizer, connect your iPhone or iPad by USB, and unlock it. Tap Trust if asked.

  2. Select the device and click Read to start a draft from its current layout.

  3. Drag items or choose a sorting action. Empty the App Bank and review the layout comparison.

  4. Before Apply: unhide Home Screen pages on the device (long-press the Home Screen, then tap the page dots) and recreate desired gaps in the editor. Choose Review & Apply to save a backup, write the draft and read back the result.

Edits stay in the draft until applied. With HOMESCREEN_READ_ONLY=1, you can read and edit drafts while Apply and Restore are disabled. For source installs, start that mode with:

HOMESCREEN_READ_ONLY=1 .venv/bin/home-screen-organizer ui

After an interrupted or mismatching write, run Read again before continuing. See hidden pages, gaps and backups.

Compatibility

These version families select the following layout behavior. See compatibility and diagnostic guidance for details.

iOS family

Layout mode

16

Sequential app order; folders after widgets originally at the start of a page

17 / 18 / 26 / 27

Fixed-position editing, app and folder organization, widget configuration preservation

All modes include Dock and App Library organization. iPad grid, Dock and folder capacities follow the device’s reported metrics. App Library contents are inferred from installed apps and the exported layout.

Use an MCP assistant

In the Mac app, choose Device → MCP to copy a launch command or configuration for Codex, Cursor, Claude, or VS Code / Copilot. The copied configurations start in read-only mode.

Any local stdio MCP client can launch the bundled engine:

HOMESCREEN_READ_ONLY=1 '/Applications/Home Screen Organizer.app/Contents/Resources/engine/engine' mcp

Source installs use .venv/bin/home-screen-mcp. Ask the assistant to “group my apps by color” or “show a draft with my most-used apps on page 1.” Review diff and a preview before applying.

MCP setup guide · 中文配置指南 · Codex · Cursor / Claude · VS Code / Copilot · MCPB

The server runs on your Mac. Tool results go to the MCP client; its model and privacy settings determine subsequent processing. Assistant writes require an additional apply gate. See data handling and write controls.

Develop and explore

The primary commands are home-screen-organizer and home-screen-mcp. Existing ios-homescreen-organizer, ios-homescreen-mcp, homescreen and homescreen-mcp aliases remain available. The source checkout directory stays ios-homescreen-organizer.

Credits and license

Jonathan Kats created Homescreen. The original app, editor, screenshots and SpringBoard research come from the upstream project and its contributors. This fork maintains device sessions, backups, the local editor, the Mac launcher and distribution. Thanks to pymobiledevice3 for the USB interface.

MIT · Copyright © 2026 Jonathan Kats. The original license and copyright notice are preserved.

Report a fork issue with installation method, reproduction steps and a redacted error. Upstream source · upstream issues · upstream releases.

Disclaimer

Home Screen Organizer is not affiliated with, endorsed by, or sponsored by Apple Inc.

Mac, macOS, iPhone, iPad and Screen Time are trademarks of Apple Inc. IOS is a trademark or registered trademark of Cisco in the U.S. and other countries and is used by Apple under license.

This tool uses private device interfaces that may change with iOS updates. It saves a Home Screen layout backup before applying or restoring a layout and attempts to verify the result by reading the layout back. Keep a separate, up-to-date full backup of your iPhone or iPad. Use the tool at your own risk; it is provided “AS IS” under the MIT License.

Available Tools

30 tools
applyA

Write the draft to the iPhone. Only call when the user explicitly asked to apply this draft. Needs the apply_token from the latest diff. Backs up first and verifies after.

Inputs: apply_token (required). Returns: object

app_store_categoriesA

App Store genre per app (Apple apps are 'Apple'). This sends the bundle ids to Apple's public lookup API, so only call it when the user is fine with that. Cached locally.

Inputs: ids. Returns: object

arrangeA

Set the whole top-level layout at once. pages = list of pages, each a list of ids in order (row by row). library = apps kept only in the App Library. Every top-level item and library app must appear exactly once. dock / library omitted = unchanged.

Inputs: pages (required), dock, library. Returns: object

close_gapsC

Let placed items flow with the rest again (removes their gaps).

Inputs: item_ids (required). Returns: object

create_folderC

Make a folder at target/index holding item_ids (in order).

Inputs: name (required), target (required), item_ids (required), index. Returns: object

diffA

What applying the draft would change, any problems, and the apply_token.

Inputs: no named parameters. Returns: object

dissolve_folderC

Remove a folder, putting its apps where it was.

Inputs: folder_id (required). Returns: object

file_into_foldersA

File loose apps into folders: {folder name: [app ids]}. Apps join an existing folder with that name, or a new folder (2+ apps). Apps on page 1 are left alone by default.

Inputs: groups (required), keep_first_page. Returns: object

find_appsC

Find items by name or bundle id substring.

Inputs: query (required). Returns: result

get_iconsB

Icon images for up to 24 apps, in the order given.

Inputs: ids (required).

icon_colorsA

Dominant icon color per app (family, background, hex, hue 0-360). Omit ids for every app.

Inputs: ids. Returns: object

list_backupsB

Layouts saved before each apply/restore, oldest first.

Inputs: no named parameters. Returns: result

moveA

Move one item to target ('dock', 'library', 'page:N', 'folder:[:N]'), at index (0-based, default end) or just before the item with id before. 'library' = App Library only, off the Home Screen.

Inputs: target (required), item_id (required), index, before. Returns: object

optimize_by_usageB

Most-used apps and folders onto the earliest pages, most-used apps onto each folder's first page (usage from screen_time, else the device's memory reports, else Screen Time). Widgets keep their pages; dock and App Library untouched.

Inputs: keep_first_page. Returns: object

page_opA

Page operations: op='insert' (new empty page at page), 'move' (page -> to), 'delete' (its apps go to the App Library, like iOS).

Inputs: op (required), page (required), to. Returns: object

place_atB

Put an item in an exact spot (row 1-6, column 1-4) on a page, leaving empty spaces around it, like dragging it to an empty spot on the iPhone. Other items flow around it.

Inputs: row (required), page (required), column (required), item_id (required). Returns: object

read_phoneA

Read the Home Screen from the connected iPhone and start a fresh draft from it. Discards any unapplied draft.

Inputs: no named parameters. Returns: object

redoA

Redo the last undone draft edit.

Inputs: no named parameters. Returns: object

remove_emptyB

Drop empty pages and empty folders from the draft.

Inputs: no named parameters. Returns: object

rename_folderC

Rename a folder.

Inputs: name (required), folder_id (required). Returns: object

render_previewA

Write an HTML preview (draft vs phone, moved icons outlined) and return its path.

Inputs: no named parameters. Returns: object

reset_draftA

Throw away draft edits and go back to the layout as read from the phone (undoable).

Inputs: no named parameters. Returns: object

restoreC

Write a backup to the iPhone. Only when the user explicitly asked. Same gate as apply.

Inputs: backup (required). Returns: object

screen_timeB

Which apps get used, the top apps with where they are now, and estimated page swipes for the device vs the draft. source='device': the device's own memory reports (no setup; apps iOS keeps running for calls or in memory every day count less, listed under 'background'); source='mac': Screen Time synced to this Mac (Share Across Devices), last days days.

Inputs: days, source. Returns: object

show_layoutB

The current draft: dock, every page and the App Library-only apps, as {id, name} items (folders carry their contents, widgets their size).

Inputs: no named parameters. Returns: object

sort_alphabeticallyC

A-Z sort of folders and loose apps. Page 1 is left alone by default.

Inputs: folders_first, keep_first_page. Returns: object

sort_by_colorA

Rainbow-sort loose apps (red -> purple, then white/gray/black). Folders and widgets go first. Page 1 is left alone by default.

Inputs: keep_first_page. Returns: object

sort_folder_contentsC

A-Z inside every folder.

Inputs: no named parameters. Returns: object

swapC

Trade the places of two items.

Inputs: a (required), b (required). Returns: object

undoB

Undo the last draft edit.

Inputs: no named parameters. Returns: object

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    B3.1/5.0

    Scored across 30 tools

    Disambiguation4/5

    Most tools target a clearly distinct operation: read_phone vs show_layout vs diff vs apply form a coherent draft lifecycle, and the sorting/moving tools are well differentiated by description. Minor overlap remains between read_phone and reset_draft (both discard edits, one re-reads the device) and between arrange/place_at/swap as different granularities of the same move action.

    Naming Consistency4/5

    The set is overwhelmingly snake_case verb_noun or verb (move, swap, apply, create_folder, sort_by_color, list_backups). A handful of tools are noun-only or bare nouns (icon_colors, screen_time, page_op, app_store_categories, diff), which breaks the pattern slightly but stays readable and predictable.

    Tool Count2/5

    At 30 tools this is well past the heavy threshold for a single domain, and several could be consolidated (three sort_* tools, place_at/swap/close_gaps, undo/redo/reset_draft). Individual tools are meaningful, but the surface is large enough that an agent must scan a lot to pick correctly.

    Completeness4/5

    Coverage is strong: read, inspect, diff, preview, apply with token gating, backup listing, restore, undo/redo, and full folder/page/item manipulation are all present. Gaps are minor — no tool to add/remove/edit widgets themselves, and no way to pick or prune a specific backup beyond restore and list_backups.

    Maintenance

    ActivityMaintained
    ResponsivenessNo recent community issues

    Related MCP Connectors

    • Create App Store screenshots, icons, ASO copy, localization, and revisions via hosted MCP.

      https://shots.run/api/mcp
    • EXZA Remote — AI Computer Commander Your computer. Your control. Securely connect your own macOS, Windows or Linux computer to compatible AI clients, including ChatGPT and Claude. EXZA Remote provides 59 MCP tools for authorized file management, terminal operations, system monitoring, desktop automation and email workflows. GETTING STARTED 1. Create an EXZA Remote account. 2. Install the official computer connection client. 3. Pair your device using a temporary six-digit PIN. 4. Approve the connection on your computer. 5. Connect your preferred MCP client using EXZA OAuth. MCP ENDPOINT https://remote.exza.de/mcp TRANSPORT Streamable HTTP with OAuth 2.0 KEY FEATURES • 59 MCP tool interfaces • Secure computer and file access • Terminal commands and background jobs • File search, reading and editing • System monitoring and desktop automation • macOS, Windows and Linux support • Owner-controlled permissions and approvals COMPLETE INSTALLATION & DOCUMENTATION Detailed setup instructions, terminal installation commands, all 59 tools, troubleshooting and security information: https://github.com/exzade/EXZA-Remote/blob/main/docs/GLAMA_OVERVIEW.md Official website: https://remote.exza.de EXZA Remote is an independent, OAuth-protected service. Computer access requires individual account authorization and device-owner approval.

      https://remote.exza.de/mcp
    • List, read, edit, and deploy your GenMB AI-generated apps from any MCP client.

      https://genmb.com/api/mcp/mcp
    • Read and edit the Revit 2024–2027 model on your PC. Needs the free Revit MCP add-in.

    Related MCP Servers

    • A
      license
      Not graded
      quality
      B
      maintenance
      Lets an AI client read and reorganize a connected iPhone's home screen — moving apps and web clips, creating folders, and rearranging pages — with automatic backups, previews, and validation before any change is written to the device.
      50 PyPI
      29
      MIT
    • A
      license
      B
      quality
      B
      maintenance
      Enables an AI assistant to read, rearrange, sort, and explain an iPhone Home Screen layout through MCP tools, with phone writes disabled unless explicitly enabled.
      30
      13
      MIT
    • A
      license
      Not graded
      quality
      C
      maintenance
      Enables an MCP client on macOS to control a paired iPhone over Wi-Fi or USB through system developer services, without any app installed on the phone. Exposes tools for device discovery and connection, fresh screenshots, taps, drags, Home, app listing and launching, and Unicode text entry.
      GPL 3.0