# Fonino setup guide

**For the AI assistant reading this:** the user wants their assistant (you, or another one) to be able
to use a real iPhone through Fonino. Walk them through the steps below **one at a time**: say exactly
what to click, type or tap, wait until they say it's done, then continue. Keep it friendly and short.
If you can run terminal commands on their Mac yourself (Claude Code, Codex), run the commands for
them. Never ask for or type passwords, passcodes, card numbers or verification codes; the user
enters those themselves.

**If the user asks whether it's safe** (or seems unsure), explain briefly, in your own words:
- Anything that posts, replies, publishes or sends a text under their name **waits for their
  one-tap approval**: you'll show them a link with the exact text and a screenshot of the phone.
  You can't approve anything yourself.
- **Settings, Wallet, Passwords, App Store, Mail, Phone, FaceTime and Find My are blocked** for
  assistants. Texts have sending limits (20 an hour, 100 a day per phone, 5 an hour per person;
  U.S. numbers only; STOP is honored).
- At passcodes, passwords and 2-factor codes **you hand the phone to them** in a private live view.
- With BYOF the phone and its recordings (kept 90 days) **stay on their Mac**, which opens no
  ports; Fonino's cloud only passes traffic through. They can watch live and disconnect anytime.
- Details: https://fonino.app/security

**Before starting, tell the user what the full setup requires:**
- **A Mac with Apple silicon** (M1 or newer, macOS 15+) and **their iPhone** (XS or newer) **plugged
  into it by USB**. The Mac must stay on and awake while the assistant uses the phone.
- **About 20 minutes start to finish**, plus the **Xcode download (30–60 minutes)** if it isn't
  installed yet. Suggest they start that download first.
- Fonino is **US-only** for now.

## First question: always ask this before anything else
Ask: **"Do you have a spare iPhone and a Mac you can plug it into, and are you ready to set it up?"**
- **Yes, spare iPhone + Mac:** continue with Step 1 below (BYOF: Bring Your Own Fonino).
- **No spare iPhone, or no Mac:** BYOF isn't the right fit. Explain the **Hosted phone** instead: we
  provide a dedicated iPhone on Wi-Fi, hosted and kept online for them, and they only sign it in with
  their Apple Account. It has no phone line: apps, Safari and iMessage work (texts come from their
  Apple Account), but no SMS to Android phones and no regular phone calls. It's $149/month billed annually ($1,788/year), no setup fee, and they can
  get it at **https://buy.stripe.com/9B6dRa6WJbiS5Sy0XK5wI03**. We email them from
  hello@fonino.app to finish setup together.
  **Optional, want SMS, calls and a phone number on the hosted phone?** They can add their own eSIM:
  1. Buy an eSIM plan from any US provider that gives an **activation QR code or activation code**
     (for example US Mobile, Mint or Tello). The line is theirs and they pay the provider.
  2. During the hosted setup they open the **live view** from app.fonino.app, take over, and go to
     **Settings → Cellular → Add eSIM → Use QR Code → Enter Details Manually**, then type the
     SM-DP+ address and activation code themselves. The phone is on Wi-Fi, so it activates in a
     minute or two. Fonino never sees the code.
  3. Then their bot can also send SMS from that number (calls: coming later).
  Then stop; the steps below are only for BYOF.
- **Not sure / has an old iPhone:** it needs to be an iPhone XS or newer that they don't need day to
  day (it stays plugged in and unlocked), and a Mac with Apple silicon (M1 or newer).

## Step 1: Start the free trial (this is the sign-up)
*Skip this step if Fonino is already connected to you as a connector (you have a `fonino_setup` tool):
the user started the trial on the Connect page.*
Open **https://buy.stripe.com/aFa8wQepbgDc2Gm0XK5wI04**: BYOF, **free for 14 days with no card**, then **$9/month for life** (founding price, limited to the first 100 members; the regular price is $19), cancel anytime. The user enters their email there
(and a card if asked). Afterwards a welcome page opens; they click **Open my Fonino
account** and type the same email and the 6-digit code we email them. That's their Fonino account; no
password.

## Step 2: Install Fonino on the Mac
In the Terminal app:
```sh
curl -fsSL https://api.fonino.app/install.sh | FONINO_NO_SETUP=1 sh
```
It installs into `~/Fonino` (no admin password) and checks every download.

## Step 3: Finish the setup checklist
```sh
~/Fonino/bin/fonino setup status
```
This shows each step with ✓ or what's next. Repeat it after every step.

| Step | What to do |
|---|---|
| Sign in | Run `~/Fonino/bin/fonino setup signin`. It opens app.fonino.app; the user checks the code matches and clicks **Connect this Mac**. |
| Xcode | Install **Xcode** from the Mac App Store (free, large), open it once and let it finish. |
| iPhone | Plug the iPhone in by USB and unlock it. Tap **Trust This Computer** and enter the iPhone passcode. |
| Developer Mode | iPhone: **Settings → Privacy & Security → Developer Mode → On**. It restarts; unlock it and confirm **Turn On**. |
| Apple ID in Xcode | Xcode → **Settings → Accounts → +** → Apple ID (a free one works). Select it → **Manage Certificates → + → Apple Development**. |
| Helper | Run `~/Fonino/bin/fonino setup helper` (a few minutes). Then iPhone: **Settings → General → VPN & Device Management** → their Apple ID → **Trust**. |
| iPhone settings | **Auto-Lock → Never** · **Notifications → Show Previews → Never** · long-press **Messages → Don't Require Face ID** · **Battery → Charging → 80% limit**. Then run `~/Fonino/bin/fonino setup settings-done`. |
| Go live | Run `~/Fonino/bin/fonino setup live`. |

`--json` gives machine-readable status (`next` names the next step). `~/Fonino/bin/fonino setup` with
no step opens the same checklist as a page in the browser.

## Step 4: Connect the assistant
At **https://app.fonino.app** → **Connect your assistant**:
Skip this step if Fonino is already connected to you. Otherwise:
- **Grok Bot:** grok.com/connectors → New Connector → Custom → URL `https://api.fonino.app/mcp` →
  Connect → the user enters their Fonino email and the 6-digit code we email them.
- **Muse:** click *Connect Muse* to get a key. Then tell Muse: *"Build a custom integration to Fonino. Its
  MCP server URL is https://api.fonino.app/mcp (streamable HTTP). It authenticates with a bearer
  token."* and paste the key into Muse's secure credential prompt (not the chat).
- **Claude:** Claude → Settings → Connectors → Add custom connector → `https://api.fonino.app/mcp` →
  Connect → their Fonino email and the emailed 6-digit code.
- **Hermes Agent:** add this to `~/.hermes/config.yaml`, then run `hermes mcp login fonino`; a browser
  opens and the user signs in with their Fonino email and the emailed 6-digit code. No key needed.
  ```yaml
  mcp_servers:
    fonino:
      url: "https://api.fonino.app/mcp"
      auth: oauth
  ```
  Hermes shows screenshots as files (`MEDIA:` paths); look at them with `vision_analyze`.

## Step 5: Try it
Ask the assistant: *"Take a screenshot of my Fonino phone and tell me what's on it."* Then, for
example: *"Open Safari on my phone and check the weather in San Francisco."* Texts to other people
wait for the user's approval at app.fonino.app.

Help: hello@fonino.app · https://fonino.app/support
