> ## Documentation Index
> Fetch the complete documentation index at: https://docs.mobster.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# CLI, API and MCP parity

> Every Mobster capability against the command line, the local API and MCP, with the gaps ranked.

Each capability is reachable three ways: the `mobster` command, the local API Mobster for Mac uses, and an MCP tool for coding agents. This page lists where each one is, and for every place it isn't, either why Mobster left it out on purpose (**No**) or that it is still to build (**Gap 1 to 3**, 1 first). A test fails when a command, tool or API group ships without a row here, and when a testing capability has no MCP tool and no reason.

## Testing

| Capability | CLI | API | MCP |
| - | - | - | - |
| Run saved checks, with `--locale`, `--a11y`, `--sim`, `--parallel` | `mobster test` | `/api/tests` | `run_tests` |
| Run one check once | `mobster verify` | No. The app starts checks as tasks (/api/runs) and shows results from /api/tests. | `verify_start`, `verify_finish` |
| Record a check from a task | `mobster test record` | `/api/tests` | `save_check` |
| Import Maestro flows as checks | `mobster test import maestro` | **Gap 2.** The app has no import screen yet. | `import_maestro` |
| Add a check from a recipe | `mobster test add` | No. The app writes checks from its editor. | No. An agent writes the check file itself, or saves a task as one with save\_check. |
| Test what a pull request changed | `mobster test pr` | No. It runs from the terminal, CI or an agent, where the diff is. | `run_tests` |
| Review and accept healed steps | `mobster test heal` | `/api/replay` | `review_heals` |
| Read each check's history | `mobster test --history` | `/api/projects` | `test_history` |
| Overnight run: list it, run it now | `mobster test nightly` | **Gap 3.** The app's schedules are for workflows; a nightly suite isn't listed there. | `test_schedule` |
| Scheduled health checks | `mobster test schedule` | `/api/tests/schedules` | No. The scheduler can bind real iPhones; agents run simulator checks with run\_tests instead. |
| Project fixtures | `mobster fixtures list`, `mobster fixtures apply` | No. Fixtures are project files applied from the terminal or check configuration. | No. An agent writes fixture files and runs checks that use them with run\_tests. |
| Project deep links | `mobster links list`, `mobster links check` | No. The registry lives in project files, outside the app’s local API. | No. An agent reads .mobster/links.yaml and tests links with run\_tests or verify\_start. |
| Manage simulators: list | `mobster sim list`, `mobster devices` | `/api/devices` | `list_devices` |
| Manage simulators: prepare and clean up | `mobster sim prepare`, `mobster sim shutdown`, `mobster sim erase`, `mobster sim delete`, `mobster sim prune`, `mobster sim doctor`, `mobster sim biometric` | No. Simulators belong to checks: the app never asks for one by hand. | No. verify\_start and run\_tests prepare and release simulators themselves; deleting stays with the person. |
| Run checks on every pull request (CI) | `mobster ci init`, `mobster ci run`, `mobster ci comment`, `mobster ci doctor` | No. It runs in CI on a Mac of yours, with no app. | No. CI starts it; an agent tests a branch with run\_tests pr. |
| Run checks after every Xcode build | `mobster xcode after-build`, `mobster xcode hook`, `mobster xcode unhook` | No. It is a scheme post-action. | No. Xcode starts it; an agent runs run\_tests itself. |
| Expo: preview and reload | `mobster expo preview`, `mobster expo reload` | No. The Mac app's tools reach Expo through MCP. | `expo_preview`, `expo_reload` |
| Expo: build, dev server, doctor | `mobster expo build`, `mobster expo dev`, `mobster expo stop`, `mobster expo doctor` | **Gap 3.** No screen starts a dev server. | No. Building and starting Metro are the developer's build step: an agent runs the same commands in its own shell, and expo\_preview opens the result. |
| Test credentials for a project (env) | `mobster env list` | `/api/project` | No. The names are in .mobster/env.example, which an agent reads as a file; the values stay in the Keychain. |
| Set and remove a project's test credentials | `mobster env set`, `mobster env unset` | `/api/project` | No. Secrets are typed by the person: an agent never sets or clears one. |

* **Run saved checks, with `--locale`, `--a11y`, `--sim`, `--parallel`.** The API serves results (recent suites, a task as a check); the Mac app starts a check as a task.
* **Read each check's history.** GET /api/projects/\{id}/tests includes each check’s last 20 results.

## Release

| Capability | CLI | API | MCP |
| - | - | - | - |
| TestFlight: list builds | `mobster testflight list`, `mobster asc builds` | `/api/tests/testflight` | **Gap 1.** An agent can't see which build is installable. |
| TestFlight: install a build on an iPhone | `mobster testflight install` | `/api/tests/testflight` | **Gap 2.** Needs the same `--allow-device` rule run\_tests pr uses before an agent may install. |
| App Store Connect key | `mobster testflight key` | `/api/tests/testflight` | No. A key is a credential: an agent never reads or sets it. |
| App Store Connect: apps, feedback, key | `mobster asc apps`, `mobster asc feedback`, `mobster asc key` | **Gap 3.** No screen reads tester feedback. | **Gap 2.** An agent can't read TestFlight feedback or crashes. |
| App Store screenshots from checks | `mobster asc screenshots` | **Gap 3.** No screen makes store screenshots. | **Gap 3.** An agent can't make store screenshots. |

## Phone

| Capability | CLI | API | MCP |
| - | - | - | - |
| Map an app's screens (X-ray) | `mobster xray app`, `mobster xray diff` | `/api/xray` | **Gap 3.** An agent can't start an X-ray or read the map. |
| Record an app's network (X-ray) | `mobster xray network` | `/api/xray` | No. It records everything the phone sends, so the person starts it. |
| See the screen | `mobster screen` | `/api/device`, `/api/devices` | `screen`, `read_screen` |
| Tap, swipe, hold and drag | No. The CLI hands a task to the agent (mobster run); single taps are for coding agents. | No. The app drives the phone through tasks. | `tap`, `swipe`, `hold_point`, `flick_point`, `drag_point` |
| Type text and sign-in codes | `mobster phone password` | No. The app types through tasks. | `type_text`, `use_code` |
| Wait for the screen | No. Tasks wait for themselves. | No. Tasks wait for themselves. | `wait`, `wait_for` |
| System alerts, Home, buttons | `mobster phone button` | No. The app acts through tasks. | `alert`, `home`, `press_button` |
| Open a link or an app | `mobster phone open` | No. The app opens things through tasks. | `open_url`, `launch_app` |
| Install a local build | `mobster phone install` | `/api/phone` | `install_app` |
| Clipboard | `mobster phone clipboard` | `/api/phone` | `set_clipboard` |
| Files in an app's folder | `mobster phone file` | `/api/phone` | `put_file`, `get_file`, `list_files` |
| Photos both ways | `mobster phone photos` | `/api/phone` | `send_media` |
| Record the phone's network | `mobster phone network` | `/api/phone` | No. It records everything the phone sends, so the person starts it. |
| Record the phone's screen | `mobster phone record` | `/api/phone` | **Gap 3.** An agent can't record a clip of the phone. |
| Display settings | No. Set it in the Mac app. | No. Set it in the Mac app. | `set_display` |
| Notifications and what the phone plays | **Gap 3.** mobster run reads notifications only inside a task. | **Gap 3.** No screen reads Notification Center directly. | `read_notifications`, `listen` |
| Lock state and unlock | No. Mobster never unlocks a phone. | No. Mobster never unlocks a phone. | `unlock`, `unlock_status` |
| Device status | `mobster doctor` | `/api/status`, `/api/access` | `status`, `device_status` |
| Use an iPhone over Wi-Fi | `mobster wifi on`, `mobster wifi off`, `mobster wifi probe`, `mobster wifi status` | `/api/wireless` | No. Pairing a phone is the person's decision. |
| Set up an iPhone | `mobster setup` | `/api/setup` | No. Setup needs the person at the phone and the Mac. |

* **Type text and sign-in codes.** mobster phone password types a password privately; other text goes through tasks.
* **Clipboard.** Reading the clipboard is for the person only, because it may hold a password.

## Tasks and agents

| Capability | CLI | API | MCP |
| - | - | - | - |
| Run a task | `mobster run`, `mobster chat`, `mobster demo`, `mobster tui` | `/api/runs`, `/api/threads`, `/api/harness`, `/api/prewarm`, `/api/events`, `/api/home`, `/api/inbox`, `/api/engine`, `/api/agents` | `phone_task`, `phone_task_status` |
| Stop a task | No. ctrl+c stops a task in the terminal. | `/api/runs` | `stop` |
| Past tasks and exports | `mobster history`, `mobster export` | `/api/runs`, `/api/export`, `/api/attachments`, `/api/transfers`, `/api/queue` | **Gap 3.** An agent can read one task's status but not list or export past tasks. |
| Memory | `mobster memory add`, `mobster memory clear`, `mobster memory export`, `mobster memory list`, `mobster memory pin`, `mobster memory rm`, `mobster memory unpin`, `mobster memory keep`, `mobster memory forget` | `/api/memory` | **Gap 3.** An agent can't read or edit what Mobster remembers. |
| Workflows | `mobster workflow show` | `/api/workflows`, `/api/triggers`, `/api/groups` | `list_workflows`, `run_workflow` |
| Approvals and permissions | No. Approvals are answered in the app or the terminal UI. | `/api/approvals`, `/api/permissions` | No. An agent never answers its own approval. |
| Profiles and accounts | **Gap 3.** No command lists profiles. | `/api/accounts`, `/api/agents` | `list_accounts`, `list_profiles` |
| Alerts to a webhook | `mobster alerts test` | `/api/triggers` | No. The webhook is the person's. |
| Longform and Fleet | **Gap 3.** Only the app runs these. | `/api/longform`, `/api/fleet` | **Gap 3.** An agent can't start these. |
| Teams, remote, plugins and destinations | `mobster audit verify` | `/api/teams`, `/api/remote`, `/api/plugins`, `/api/connectors`, `/api/outlets`, `/api/waiting`, `/api/feedback` | No. These are the person's accounts and destinations. |

## Apps

| Capability | CLI | API | MCP |
| - | - | - | - |
| App packs: read and act in an app | `mobster api serve`, `mobster api tokens` | `/api/packs`, `/api/apps` | `instagram_*`, `tiktok_*`, `x_*`, `youtube_*`, `threads_*`, `reddit_*`, `linkedin_*`, `notes_*`, `messages_*`, `maps_*`, `photos_*`, `safari_*`, `settings_*`, `calendar_*`, `ios_docs` |

## Setup and account

| Capability | CLI | API | MCP |
| - | - | - | - |
| Connect an agent (MCP clients) | `mobster mcp`, `mobster mcp clients`, `mobster mcp doctor`, `mobster mcp install` | `/api/integrations` | No. It is how MCP gets configured. |
| Serve the local API | `mobster serve` | No. It is the API. | No. It is the API. |
| Keys and sign-in | `mobster login`, `mobster logout` | `/api/keys`, `/api/ai-plans`, `/api/usage`, `/api/settings` | No. Sign-in and keys are the person's. |
| Install, update and help | `mobster update`, `mobster version`, `mobster completion`, `mobster help`, `mobster build-ocr` | No. The Mac app updates itself. | No. An agent has no use for them. |

## Open gaps, ranked

Rank 1 is the testing ICP's, 3 is nice to have.

| Rank | Capability | Missing from | What is missing |
| - | - | - | - |
| 1 | TestFlight: list builds | MCP | An agent can't see which build is installable. |
| 2 | Import Maestro flows as checks | API | The app has no import screen yet. |
| 2 | App Store Connect: apps, feedback, key | MCP | An agent can't read TestFlight feedback or crashes. |
| 2 | TestFlight: install a build on an iPhone | MCP | Needs the same `--allow-device` rule run\_tests pr uses before an agent may install. |
| 3 | Expo: build, dev server, doctor | API | No screen starts a dev server. |
| 3 | Overnight run: list it, run it now | API | The app's schedules are for workflows; a nightly suite isn't listed there. |
| 3 | App Store Connect: apps, feedback, key | API | No screen reads tester feedback. |
| 3 | App Store screenshots from checks | API | No screen makes store screenshots. |
| 3 | App Store screenshots from checks | MCP | An agent can't make store screenshots. |
| 3 | Map an app's screens (X-ray) | MCP | An agent can't start an X-ray or read the map. |
| 3 | Notifications and what the phone plays | API | No screen reads Notification Center directly. |
| 3 | Notifications and what the phone plays | CLI | mobster run reads notifications only inside a task. |
| 3 | Record the phone's screen | MCP | An agent can't record a clip of the phone. |
| 3 | Longform and Fleet | CLI | Only the app runs these. |
| 3 | Longform and Fleet | MCP | An agent can't start these. |
| 3 | Memory | MCP | An agent can't read or edit what Mobster remembers. |
| 3 | Past tasks and exports | MCP | An agent can read one task's status but not list or export past tasks. |
| 3 | Profiles and accounts | CLI | No command lists profiles. |


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.