Mobster

dev.mobster由 mobster.dev 發布v0.4.3更新於 Nov 6, 2026

Control iPhones and iOS simulators: read screens, tap, type and verify. Requires macOS and uv.

已驗證STDIO僅桌面瀏覽器自動化開發者工具

概覽

AI 產生的概覽

Mobster 讓助理透過 WebDriverAgent 在實體 iPhone 或 iOS 模擬器上讀取畫面、點擊、輸入並驗證結果,敏感操作前會請求核准。

可以做什麼
  • 把手機畫面讀成無障礙樹快照,包含元素角色、標籤、數值和位置
  • 在裝置上點擊、輸入和滑動,然後重新讀取畫面確認操作已生效
  • 依任務契約規劃並執行多步驟任務,直到畫面上出現完成證據或觸及限制
  • 對傳送、購買、發佈、刪除等操作請求核准,並遮蔽密碼、驗證碼、卡號和金鑰
  • 記錄執行日誌並持有裝置鎖,同一時間只允許一個執行流程控制手機
適用情境
適合讓助理操作 iOS 應用:查看設定、填寫介面,或執行可重複的多步驟流程,並希望每個步驟都有驗證和核准把關時使用。
執行需求
在 macOS 上本機執行,需要 uv(PyPI 套件 mobster-cli,透過 uvx 啟動)。需要一個為 iPhone 或模擬器提供服務的 WebDriverAgent runner,以及用於模型呼叫的 Claude 或 OpenAI API 金鑰。清單未宣告任何驗證方式或環境變數。
安裝前請注意
此代理能讀取訊息並點擊傳送,因此可以代表你在實體手機上操作;傳送、購買、發佈和刪除會經過核准關卡,參考範例對所有核准都回答否。模型呼叫會產生費用(公開數據約為每項任務 0.18 美元或 0.0057 美元,視設定而定)。畫面文字被視為資料而非指令,機密在儲存前會被遮蔽,但據報導動作驗證器仍會放過部分錯誤操作。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 Mobster,將其新增到工作區。
  2. 為需要使用其工具的對話啟用該服務。

Desktop only,透過 STDIO。 STDIO 服務會啟動本機處理程序,因此需要 SourceWeft 桌面主機。

其他 MCP 客戶端

參照 儲存庫 中的啟動說明。

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

PathWhat it is
mobile_agent/frontier.pyThe loop: one model plans every step; the guards, the task contract and the DONE gate
mobile_agent/contract.pyWhat the task asked for, and the proof on screen that each part was done
mobile_agent/engines.pyThe configuration the app and the benchmarks share (model, reasoning, limits), and the result summary
mobile_agent/drivers.py, state.pyWebDriverAgent's HTTP API: the accessibility tree as a snapshot, then taps, typing and swipes
mobile_agent/transport.py, gemini.pyThe transport under the model calls. The Claude, OpenAI and Gemini clients and the price table are in model_clients.py
mobile_agent/journal.py, task_policy.py, effect_ledger.py, secret_filter.py, system_dialogs.py, permissions/The safety core: the device lock and run journal, what counts as a send, buy, post or delete, the duplicate-action guard, secret masking, iOS's own prompts, the approval gate
mobile_agent/harness_api.pyThe seam to Mobster for Mac: registries and hooks, empty in this repository
examples/reference_loop.pyThe loop's API in the order a run uses it
mobile_agent/bench/, mobile_agent/evals/MobsterBench-iOS, the iOSWorld harness, the baselines, the paired A/B tools, VisionJudge's labelled set
mobile_agent/docs/, research/Design notes and dated research write-ups

How one step works

  1. 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.
  2. 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.
  3. 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.
  4. 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/.

MeasuredResultLosses and gaps
iOSWorld dev_core split, this loop on Claude Sonnet 5.5 at low reasoning, simulators, 10 to 11 Oct 202653.8% official pass; agent time p50 103 s; about $0.18 a taskMulti-app tasks pass 31%. The best published result, 51.9%, is on all 133 tasks, so the two aren't directly comparable
iOSWorld, 16 unseen tasks, paired A/B, 28 Sep 2026Sonnet 5.5 50% (95% CI 28 to 72), $0.197 a task; Opus 5.5 56% (31 to 81); gpt-5.6-sol 50%No difference between the models is significant at this size
MobsterBench-iOS, 68 tasks, iPhone 15 Pro over USB, 24 Sep 202654 of 66 passed (82%, CI 71 to 89); p50 7.7 s a task; $0.0057 a taskMulti-app 2 of 6. One risky tap blocked and 2 unintended actions recorded. Not held out: fixes went in between passes (63%, 71%, 82%). No baseline ran
Where time goes, 346 runs, 22 Sep 2026The device side is about 61% of wall time, the model about 36%At least 17% is waiting for the screen to settle
FrameClock (the MJPEG stream as a settle clock), iPhone 15 Pro, 23 Sep 2026Mean navigation settle 1,122 to 996 ms with 0 premature settles in 480 of 32 premature still allows up to about 9%; Safari's pixel settle isn't measured
VisionJudge on 135 labelled public-domain images, 23 Sep 20261 error in 117 answers (99.1% precision)One rater; thresholds fitted on the same set; not phone screenshots
The action verifier, 34 attempts, 19 Sep 2026Correct actions allowed 14 of 14; wrong actions blocked 12 of 12It let through 6 actions it should have refused; repeating an Add is still unsolved

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:

sh
make venvmake test-backend

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.

來源:README.md,提交 738cecd

工具

0
SourceWeft 曾在隔離沙箱中以無憑證方式啟動該軟體包一次,以列出其工具,但未能完成:軟體包安裝失敗。

版本歷史

2
  1. v0.4.3最新Nov 6, 2026
  2. v0.4.0Oct 18, 2026

評分

已滿足適用檢查項的 50%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通25 分

    請保持端點能夠回應 MCP 握手;SourceWeft 每 30 天探測一次。

  • 已宣告認證方式10 分

    請在註冊中心條目中宣告憑證請求標頭,或保持端點能夠回應探測,以便判定其認證方式。

  • 已列出工具15 分

    請讓伺服器在無憑證時回應 tools/list,或發布可在沙箱中無憑證啟動的軟體包。

  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分