
Mobster
dev.mobsterPublished by mobster.devv0.4.3Updated Nov 6, 2026
Control iPhones and iOS simulators: read screens, tap, type and verify. Requires macOS and uv.
Overview
Mobster lets an assistant observe, tap, type and verify on a real iPhone or iOS simulator through WebDriverAgent, with approval gates before risky actions.
- What you can do
- Read the phone screen as an accessibility-tree snapshot of roles, labels, values and frames
- Tap, type and swipe on the device, then re-read the screen to confirm the action took effect
- Plan and run multi-step tasks against a task contract, stopping when the proof is on screen or a limit is hit
- Hold risky actions (send, buy, post, delete) for approval and mask passwords, codes, card numbers and keys
- Keep a run journal and a device lock so one run controls a phone at a time
- When to use it
- Useful when you want an assistant to operate iOS apps on a real iPhone or simulator — reading settings, filling in screens, or running repeatable multi-step workflows — and you want verification and approval checks around each action.
- Requirements
- Runs locally on macOS with uv (PyPI package mobster-cli, launched via uvx). Needs a WebDriverAgent runner serving the iPhone or simulator, plus a Claude or OpenAI API key for the model calls. No authentication or environment variables are declared in the manifest.
Installation
In SourceWeft
- Open Mobster in the dashboard and add it to a workspace.
- Enable the server for the chats that should use its tools.
Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.
Other MCP clients
Follow the launch instructions in the repository.
README
Mobster engine
The agent loop behind Mobster for Mac, and the research we measured it with. MIT.
An agent that drives your iPhone can read your messages and tap Send. This repository is the code that decides when: the observe, decide, verify, act loop, the WebDriverAgent driver it reads and acts through, and the safety core in front of every action. Next to it are the benchmarks, the evals and the results we published, with the losses printed next to the wins.
Mobster for Mac is the product built on this loop. It sets up your iPhone, shows it live, asks for your OK on a card, runs workflows on a schedule, adds itself to Claude Code, Cursor and Codex, and runs the loop with the speed and quality work that lives in the app. Get Mobster for Mac at mobster.dev.
Read the loop
How one step works
- Observe. The driver reads the app's accessibility tree from WebDriverAgent and turns it into a snapshot: each element's role, label, value and frame.
- Decide. The model gets the task, the plan so far and the screen as numbered rows, and answers with the next 1 to 6 actions.
- Verify. Before an action goes out, the loop checks it against the screen it was chosen on. After it, the loop reads the screen again and checks the action took effect.
- Act. The driver taps, types or swipes, and the loop goes back to step 1 until the contract's proof is on screen or a limit stops it.
Around every step, the safety core holds:
- The loop asks before a send, a buy, a post or a delete (
task_policy.py,permissions/), and an action whose outcome is unknown is never sent again (effect_ledger.py). - Every event is emitted before the next action is sent. Mobster for Mac writes each one to its journal (
journal.py), and one run holds a phone's lock at a time. - Passwords, one-time codes, card numbers and keys are masked before anything is stored (
secret_filter.py). - Text read from the phone is data. It never reaches the model as an instruction.
examples/reference_loop.py shows the API end to end on a fixed, read-only task: reading the iOS version in Settings. You bring a WebDriverAgent runner that serves your iPhone and a Claude or OpenAI key. It answers no to every approval.
Results
Every number names what was measured, on what, and when. The method and confidence intervals are in mobile_agent/docs/benchmarks.md and research/.
The September results predate 13 Oct 2026, when this loop became Mobster's only engine. The October iOSWorld numbers are this loop. The research notes describe modules that ship in Mobster for Mac (the frame clock, hedged calls, skills); their code isn't in this repository.
Tests
The tests need no phone, simulator, network or key:
mobile_agent/tests/test_engine_boundary.py checks that the engine imports nothing outside its own modules, and runs the reference example on a scripted phone and model.
Third-party software
The engine installs jsonschema and referencing (MIT) and Pillow (MIT-CMU) from PyPI. It talks to WebDriverAgent (BSD-3-Clause, Facebook, Inc.) over HTTP; this repository holds none of its code. VisionJudge's images are CC0 or public domain, credited in mobile_agent/evals/vision/manifest.json.
License
MIT, copyright Radish Retail, LLC. See LICENSE. Report a vulnerability as SECURITY.md says.
Source: README.md at commit 738cecd
Tools
0Version history
2- v0.4.3LatestNov 6, 2026
- v0.4.0Oct 18, 2026
Score
50% of the applicable checks met
How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.
- Reached in the last 30 days25 pts
Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.
- Auth declared10 pts
Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.
- Tools listed15 pts
Answer tools/list without a credential, or ship a package that starts in a sandbox without one.
- DescriptionRequired15 pts
- Logo10 pts
- Documentation15 pts
- License10 pts