What Agents Can Do

Ask your agent to use your iPhone

Once iphone-use is installed, you say what you want done on the phone and the agent does it: it opens the app by name, reads the screen as text, taps, types and scrolls, and checks each step. It works in apps that have no API, with the sign-ins already on the phone.

Example requests

❀️ Health

Open Health and tell me how many steps I walked each day this week.

πŸ’¬ Chat apps

Find the newest message from Mom in WeChat and read it to me.

🏦 Bank statements

Collect every transaction on this bank statement page, all the way to the end.

πŸ“ Notes

Write this 2,000-word draft into a new note in Notes.

πŸ§ͺ Your own app

Run my app's login test on the real phone and tell me which step fails.

πŸ”‹ Settings

Open Settings and check the battery level.

🐞 Exploratory QA

Explore the settings screens of my app and write up every bug you find, with screenshots.

🏠 Home Screen

Which apps are in my Dock and in the folders on my first home page?

What the agent can do

Sign-ins, passcodes and codes

For logins, passcodes and Face ID the agent stops and asks you to finish on the phone. It never asks for the password or the code. If you keep the account in your own bitwarden-use vault, phone_login fills and submits the app's login form inside the daemon: the values go from the vault to the phone, the password never reaches the model, and the answer names only the entry and a masked account. A verification code the app asks for can come from an SMS (message-use), an email (mail-use) or the entry's authenticator, at most two per login.

For app developers and testers

πŸ“œ Logs and crash reports

Capture and filter the phone's system log; list crash reports and read one.

πŸŽ₯ Screen recording

Record the screen to an MP4 on the Mac.

πŸ“¦ Install a build

An .ipa or .app from the Mac, or an https link; optionally uninstall first.

πŸ“ Simulated location

Set a GPS location until you clear it.

πŸ—’οΈ Per-app notes

Notes the daemon keeps per app across sessions; agents read them when they enter the app.

βœ… Test suites

Rerunnable YAML suites with an exit code for CI and scheduled runs. See Flows & replay.

The iphone-use-qa skill turns the agent into an exploratory tester for one app: it plans the areas to cover, explores them in batches, captures evidence for every issue (screenshot, element tree, exact steps) and writes a Markdown report. It never pays, sends, posts or deletes.

Hand the daemon one goal

Instead of driving step by step, a caller can hand the daemon a goal in plain words (POST /agent/task) and poll for the result. The daemon carries it out on its phone:

  1. Saved flow first. If a saved flow matches the goal, it runs in one call; running the flow uses no model tokens.
  2. Jev picks each step from the element table; a stronger assist model takes over a step when Jev is stuck.
  3. Confirm gate. Before a step that would pay, send a message, delete, share or submit an order, the task stops and asks.
  4. Summary. A few sentences for the person with what was done and the values read; a goal that was not verified ends as blocked.

Screen text is treated as untrusted data at every step, never as instructions. From an MCP client the same idea is phone_jev_run, which needs the model credentials configured.

Limits you set, and limits of iOS

ℹ️ Limits the agent cannot talk its way past
The daemon refuses apps you block (IPHONE_USE_BLOCKED_APPS, for example Wallet, Passwords) and caps the actions per task (IPHONE_USE_MAX_ACTIONS), whatever the agent's prompt says.

Connect your agent: MCP, HTTP API & skill. Privacy and the safety limits: Privacy & Security.