Fonino

io.github.Fonino由 GitHub 帳號 Fonino 發布v0.1.0更新於 Nov 7, 2026

Let your AI agent use your real iPhone or Android phone, with your OK before anything is sent.

已驗證STDIO僅桌面瀏覽器自動化溝通與協作

概覽

AI 產生的概覽

讓 AI 代理操控你真實的 iPhone 或 Android 手機:查看螢幕、開啟應用程式、點擊、滑動與輸入,送出前需你核准。

可以做什麼
  • 列出並租用已連線的手機,每台裝置僅允許一個代理
  • 擷取螢幕截圖並讀取介面元素
  • 在手機上點擊、滑動、輸入並開啟應用程式
  • 讀取簡訊、傳送簡訊、等待回覆,並在登入時把手機交還給你
  • 對高風險動作暫停並等待你一鍵核准
適用情境
適合讓程式開發代理直接操作你的真實手機,例如傳簡訊給某人、在應用程式內操作或查看螢幕內容,同時對傳送、發佈、購買與刪除等動作保留人工核准關卡。
執行需求
在搭載 Apple 晶片、macOS 15 或更新版本的 Mac 上本機執行,需要 Node 22.18 或更新版本。iPhone 需要 USB 輔助程式(Xcode、用於簽署的 Apple ID、開發者模式、傳輸線)或 iPhone Mirroring(macOS 15+、iOS 18+、同一個 Apple 帳號,歐盟地區不適用);Android 需開啟 USB 偵錯並安裝 adb。HTTP 傳輸需使用命令列產生的 Bearer 權杖;手機須保持解鎖。
安裝前請注意
代理可操作你的真實手機與帳號。傳送、發佈、購買與刪除受核准機制管制,但使用 --for-task 或 --always 核准會擴大免提示執行的範圍,請留意待處理請求。密碼、Face ID 與驗證碼請自行輸入,不要交給代理。權杖、核准紀錄與截圖保存在本機 ~/.fonino 目錄。部分應用程式有額外檢查,且不支援多點觸控、相機與 Face ID 流程。

安裝

在 SourceWeft 中

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

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

其他 MCP 客戶端

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

README

Fonino

Let your AI agent use your real iPhone or Android phone, with your OK before anything is sent.

Fonino lets Claude Code, Codex, Hermes or any MCP client see your phone's screen, open apps, tap, swipe and type. Anything that sends, posts, buys or deletes waits for your one-tap approval first. It runs on your Mac, with your own phone: no jailbreak, no cloud phone, nothing to install on an Android phone and only a small helper on an iPhone.

[An agent asks Fonino to text Sam; the approval card waits for the owner; after Approve the phone sends the text in Google Messages]

A real run, in real time, on an Android emulator with a demo number. The same tools and approvals work on iPhone.

text
  ● agent: text Sam that I'm running late  │  ● phone_open_app("Messages") → phone_get_screen → Sam's conversation  │  ● phone_send_message(to: Sam, "Running 10 minutes late, sorry!")  │   ⏸ waiting for your OK: "Send a text to Sam?"   [Approve] [Deny]  │  ✓ sent after you approved (Delivered via iMessage)

Get started

Paste this into your coding agent (Claude Code, Codex…) on a Mac:

text
Clone https://github.com/fonino/fonino, run npm install, then read docs/setup.md and walk methrough connecting my phone. Stop and ask me whenever a step needs my hands, and never typemy passcode or passwords for me.

Or install it from npm:

bash
npm install -g foninofonino doctor        # checks the Mac, the phone and permissionsfonino devices

Or from source:

bash
git clone https://github.com/fonino/fonino && cd foninonpm install && npm run build:nativeapps/cli/bin/fonino doctor

Don't want to set it up yourself? Fonino for Mac is the signed app built on this code. It does the iPhone setup for you (no Xcode) and connects your phone to Grok Bot, Muse, Claude and ChatGPT from anywhere, with approvals on your phone.

Two ways to connect the iPhone

USB helper (recommended)iPhone Mirroring
HowFonino's helper (WebDriverAgent, Apple's UI test runner) on the phone, over USBFonino reads and clicks macOS's iPhone Mirroring window
TapsExact: reads the screen's structure, not just pixelsFrom screenshots and text recognition
Your MacFree to use: nothing moves your mouseTakes over the cursor while it works
PhonesSeveral per Mac, at the same timeOne
NeedsXcode, an Apple ID for signing, Developer Mode, a cablemacOS 15+, iOS 18+, same Apple Account on Mac and iPhone (not in the EU)

Android

Turn on USB debugging (Settings → About phone → tap Build number 7 times, then Settings → System → Developer options → USB debugging), plug the phone in and tap Allow on the phone. Fonino finds it through adb (Android platform-tools); an Android emulator works too. Nothing is installed on the phone.

bash
fonino devices# android-001  Pixel 9  connected  android-adb  Pixel 9, Android 16, USB

Same tools and the same safety rules as on iPhone: screenshots in points, taps checked against the button under them, texts sent through Google Messages and verified before Send, Settings, Wallet, Play Store and calls off limits. Typing is plain ASCII (texts can hold any characters).

Step-by-step for both iPhone ways and Android: docs/setup.md.

Use it from your agent (MCP)

Full toolset, with approvals (recommended): run the local HTTP server and add it to your client.

bash
apps/cli/bin/fonino mcp-http --show-token     # http://localhost:3001/mcpclaude mcp add --transport http fonino http://localhost:3001/mcp \  --header "Authorization: Bearer <token>"

Tools include phone_list_devices, phone_acquire / phone_release (one agent per phone), phone_get_screen (screenshot + elements), phone_tap, phone_swipe, phone_type, phone_open_app, phone_read_messages, phone_send_message, phone_wait_for_reply, phone_await_approval, phone_request_help (hand the phone to you for logins) and more.

Basic control only: fonino mcp (stdio; tap, type, swipe, screen). This repo's .mcp.json registers it for Claude Code.

Safety

The rules are in the code, not in a prompt, so an agent can't talk its way past them:

  • Approvals. Sending, posting, buying and deleting pause until you approve the exact app, recipient and text. Fonino checks the button under every tap too: Send, Post, Reply, Buy Now and Place your order always need your OK, even if the agent didn't say what it was doing. fonino approvals lists pending requests; fonino approve <id> (--for-task covers the rest of the task, --always allows that kind of action in that app, with a daily cap).
  • Off limits. Settings, Wallet, Passwords, Mail, Phone, FaceTime, Find My and the App Store.
  • Your logins stay yours. The agent hands you the phone for passwords, Face ID and verification codes; one-time codes in messages are hidden from it.
  • Texting limits. Rate limits per phone and recipient; anyone who replies STOP is never texted again.
  • Local and private. Tokens, approvals and screenshots stay in ~/.fonino, readable only by your macOS user.

Other commands

bash
fonino screen <device> --open          # screenshotfonino tap <device> 200 500            # screenshot pixelsfonino agent <device> --goal "Open Settings and tell me the iOS version"   # built-in agent (Anthropic API key)fonino wda up                          # keep the USB helper running (health checks, restarts)fonino service install                 # run it all as login servicesfonino runs && fonino replay <run-id> --openfonino help                            # everything else

How it works

apps/cli                 fonino CLI: setup, doctor, watchdog, local services, replaypackages/iphone-adapter  iPhone USB helper (WebDriverAgent over usbmuxd), iPhone Mirroring, Android over adbpackages/mcp-server      MCP tools, approvals, policy (off-limits apps, risky buttons), rate limitspackages/agent-runtime   built-in agent loop and approval gatepackages/device-core     device protocol, leases, mock phone for testspackages/browser         optional agent browser on the Mac (pages as text, replayable recipes)packages/relay           client that connects this Mac to the Fonino cloud (optional)native/                  Swift helpers: screen capture and input for Mirroring, text recognitiondocs/                    setup, research notes on controlling a non-jailbroken iPhone

Background on why the USB helper and what we measured: docs/iphone-control-research.md.

Requirements: an Apple-silicon Mac on macOS 15 or later, Node 22.18 or later. Tests: npm test.

Limits

  • The phone has to stay unlocked (iPhone: Auto-Lock Never; Android: the longest screen timeout).
  • The first start of the helper may show a passcode prompt titled "XCTest": that's the helper asking to use the screen. Enter it on the phone; it asks again only after a restart.
  • No multi-touch, camera or Face ID flows. Some apps add their own checks.

License

MIT. See LICENSE.

來源:README.md,提交 92a4a25

工具

0
SourceWeft 尚未在沙箱中啟動過該軟體包,因此其工具未知。

版本歷史

1
  1. v0.1.0最新Nov 7, 2026

評分

已滿足適用檢查項的 50%

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

  • 近 30 天內可連通25 分

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

  • 已宣告認證方式10 分

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

  • 已列出工具15 分

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

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