> ## Documentation Index
> Fetch the complete documentation index at: https://docs.autogrowth.farm/llms.txt
> Use this file to discover all available pages before exploring further.

> ## Agent Instructions
> AutoGrowth runs social accounts on real phones. Everything a page describes happens on a physical device in the customer's own fleet, never through a social platform's API.
> The Companion is a macOS desktop app that runs on the customer's own Mac and manages the phones over USB — iPhones through WebDriverAgent, GrapheneOS phones through ADB and scrcpy. Nothing runs while the Companion is closed.
> The Companion builds, signs and installs WebDriverAgent on each iPhone itself. Never tell a customer to sign WebDriverAgent by hand in Xcode; Xcode is a prerequisite the Companion drives, not a step the customer performs.
> Autogrowth MAX is a one-time, invite-only lifetime license bought from the organization's credit balance, not a subscription tier. It is required to run any automation, workflow or Incubator program. Without a price set for that organization, the purchase is refused.
> An automation is one of AutoGrowth's built-in definitions; a script is a graph the customer builds in the Script Builder. The Script Builder is locked platform-wide, so never present building a script as something a customer can do today.
> An API key is a bare 64-character hex string with no prefix. It is shown once, at creation, is sent as `Authorization: Bearer <key>`, and can never be read back.
> An API key sees only the key owner's own accounts, content, collections, prompts, scripts and executions. Devices and tags are organization-scoped, and a non-owner sees only the devices assigned to them or carrying one of their tags. The automation catalog is global.
> There is no pagination. List endpoints return the whole set; the only limiting parameter anywhere is `limit` on `GET /v1/executions`, which defaults to 50 and has no offset to page with.
> Remote control and the live screen are dashboard-only, over WebSocket and MJPEG. Neither is part of the public API.
> The MCP server is hosted at https://mcp.autogrowth.farm and authenticates with OAuth. It is not an npm package and there is nothing to install locally. Its tools inherit exactly the scope of the API key behind them.
> Android support is partial and GrapheneOS-only: those phones appear in the fleet and can be watched and remote-controlled, but they cannot run scripts or automations.
> Never document Hi Katie or any persona feature. When a page and the code disagree, the code wins — check a claim against the source before repeating it.

# Connect your phones

> Plug an iPhone into the Mac, trust the computer, turn on Developer Mode, and watch it appear in your fleet.

A phone joins your fleet by being plugged into a Mac that is running the
Companion. There is no pairing code and no app to install on the phone. This page
covers iPhones; GrapheneOS phones are on [Android phones](/guides/android-phones).

## What you need

* A **good Apple cable**, plugged into a port on the Mac itself. Hubs and cheap
  cables are the single most common cause of a phone that never appears.
* The phone **unlocked**, with the screen on.
* The Companion open and signed in.

## Plug it in

<Steps>
  <Step title="Connect the phone to the Mac by USB">
    The Companion scans for phones every few seconds, so a new one shows up
    within about three seconds rather than instantly.
  </Step>

  <Step title="Unlock the phone and tap Trust">
    The iPhone asks **"Trust This Computer?"**. Tap **Trust** and enter the
    passcode. Until you do, the row reads **Tap Trust on iPhone** and no buttons
    work.
  </Step>

  <Step title="Turn on Developer Mode">
    On the phone: **Settings → Privacy & Security → Developer Mode**, switch it
    on. The phone restarts and asks you to confirm with **Turn On** after it
    comes back. This is needed once per iPhone.
  </Step>

  <Step title="Press Build, then Start">
    **Build** installs the automation agent onto the phone and takes a few
    minutes. **Start** brings it online. See
    [WebDriverAgent](/guides/wda-signing) for what these do and what can go
    wrong.
  </Step>
</Steps>

<Frame caption="The Companion's Devices list with two iPhones connected.">
  <img src="https://mintcdn.com/autogrowth/XpowNsqf1wRaYnfV/images/companion-devices.png?fit=max&auto=format&n=XpowNsqf1wRaYnfV&q=85&s=cdb8b3d489dd6721273fbaf09f96af5d" alt="The Companion Devices screen showing a table with Device, Status, OS, UDID, Port and Actions columns, one row with a Ready status pill and one with a Running status pill, and Build, Start and Stop buttons in the Actions column" width="1600" height="1000" data-path="images/companion-devices.png" />
</Frame>

The dashboard has a **Pair a new phone** wizard on the [Fleet](/guides/your-fleet)
page that walks the same ground and shows a green **Detected** card the moment the
phone registers.

## The two Trust steps are different

Almost everyone hits this once. There are two separate approvals on the phone and
they happen at different moments.

| When                              | What the phone shows               | What to do                                                                                |
| --------------------------------- | ---------------------------------- | ----------------------------------------------------------------------------------------- |
| Right after you plug the cable in | A **"Trust This Computer?"** popup | Tap **Trust** and enter the passcode                                                      |
| After a fresh **Build**           | Nothing — you have to go looking   | **Settings → General → VPN & Device Management**, tap the developer app, choose **Trust** |

Miss the second one and **Start** fails after 90 seconds with "WDA did not become
ready within 90s. This usually means the developer app isn't trusted yet…". Trust
it, then press **Start** again.

<Info>
  You never have to press anything to retry the first Trust. The Companion keeps
  asking the phone every few seconds and lights the row up on its own the moment
  you tap Trust.
</Info>

## What you see in the Companion

The **Devices** screen lists every phone the Mac can see, with columns for
**Device**, **Status**, **OS**, **UDID**, **Port** and **Actions**. With nothing
plugged in it reads **"No Devices Connected"** — "Connect an iOS device via USB to
get started. Make sure the device is unlocked and you've trusted this computer."

The status pill is the thing to read:

| Status                   | What it means                                                                     |
| ------------------------ | --------------------------------------------------------------------------------- |
| **Tap Trust on iPhone**  | Waiting for you to tap Trust on the phone. Nothing else can happen first          |
| **Reading device info…** | The Companion is still identifying the phone. Wait; reseat the cable if it sticks |
| **Needs Setup**          | Seen and identified, but the agent is not installed. Press **Build**              |
| **Ready**                | The agent is installed and the phone is startable. Press **Start**                |
| **Starting**             | Coming up                                                                         |
| **Running**              | Live. It can be watched and controlled from the dashboard                         |
| **Needs Action**         | Something is blocking it — the row shows what                                     |
| **Pending Approval**     | Waiting on approval before it can be used                                         |
| **Offline**              | The Mac cannot see it. Check the cable                                            |
| **Error**                | The row and the **Sprout** panel carry the message                                |

A phone that briefly drops off is not shown as offline straight away — it has to
be missed three scans in a row, so a jiggled cable does not make the list flicker.

An iPhone that has been connected to this Mac before comes back as **Ready** and
does not need rebuilding. A phone the Mac has never seen comes back as
**Detected**.

## Which iPhones work

There is no minimum iOS version. The Companion builds a different variant of the
agent depending on the version, covering iOS 15 and 16, iOS 17 through 25, and
iOS 26 and newer.

The practical differences:

* **iOS 17 and newer** need a secure tunnel, which is why macOS asks for your
  login password once per session. Approve it.
* **iOS 15 and 16** never trigger that prompt.
* **iOS 16 and newer** need Developer Mode turned on, as above.

Phone models from the iPhone 13 through the iPhone 16 Plus are shown by name.
Anything outside that range shows its raw Apple product code, something like
`iPhone17,1`. That is cosmetic — the phone works the same.

## If the phone does not appear

| What you see                                                                                            | What to do                                                                                                               |
| ------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------ |
| Nothing at all in the list                                                                              | Unplug, wait ten seconds, plug back in. Use a known-good Apple cable, straight into the Mac, not a hub. Unlock the phone |
| "Device not visible to Xcode. Please unplug and replug your iPhone, or try a different USB cable/port." | The same fixes. On iOS 17 and newer, also check you approved the macOS password prompt                                   |
| **Tap Trust on iPhone**                                                                                 | Unlock the phone and tap **Trust**                                                                                       |
| **Reading device info…** that never clears                                                              | Reseat the cable. If it persists on one cable and not another, the cable is the problem                                  |
| "Developer Mode is disabled…"                                                                           | Turn it on in **Settings → Privacy & Security → Developer Mode**. The phone restarts                                     |
| "iPhone is locked. Please unlock your iPhone and try again."                                            | Unlock it and press **Start** again. Nothing needs rebuilding                                                            |
| A badge reading **No Slots**, **Slot Expired** or **Slot Removed**                                      | The phone is fine; it has no paid slot. Press the button on the row and sort it out in [Billing](/guides/billing)        |
| "This device is already registered to another account…"                                                 | The phone belongs to a different organization. It has to be released there first                                         |

<Warning>
  Keep the phone awake while it works. A locked screen stops a run and produces
  "iPhone is locked. Please unlock your iPhone and try again." Phones in a fleet
  are normally left plugged in with auto-lock turned off.
</Warning>

## What to read next

<CardGroup cols={2}>
  <Card title="WebDriverAgent" icon="wrench" href="/guides/wda-signing">
    What Build and Start actually do, and every error they can throw.
  </Card>

  <Card title="Your fleet" icon="table-cells-large" href="/guides/your-fleet">
    The phone on the dashboard side, and what its statuses mean there.
  </Card>
</CardGroup>
