> ## 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.

# WebDriverAgent

> What WebDriverAgent is, what Build and Start do, and the two ways it gets signed before it goes onto an iPhone.

**WebDriverAgent** — WDA — is a small app the Companion installs onto each iPhone.
It is what actually taps the screen. Without it a phone is visible but inert: no
streaming, no remote control, no automations.

Every iPhone needs its own copy, and iOS will not run an app that has not been
signed by an Apple developer account. The Companion handles the signing and the
install for you. You never open Xcode.

## Build, Start and Stop

Three buttons, and the difference matters. This is how the Companion itself puts
it:

* **Build** — install WebDriverAgent onto the phone. You do this once per phone,
  or after an iOS update.
* **Start** — launch WDA so the phone goes online and streamable. You do this each
  session.
* **Stop** — take the phone offline without removing WDA.
* If a phone misbehaves, **Stop → Build → Start** gives it a fresh WDA.

The buttons read **Build WDA**, **Start WDA** and **Stop WDA** in the device
panel, and a slow start can be abandoned with **Cancel Start**. The **Bulk
actions** menu on the Devices screen has **Build All**, **Start All** and **Stop
All**; **Build All** deliberately skips phones that already have WDA, so it will
not re-sign your whole fleet by accident.

## How long each step takes

**Build** walks through five stages, and the Companion names each one as it goes:

| Stage                                  | What is happening                                               |
| -------------------------------------- | --------------------------------------------------------------- |
| "Checking Developer Mode status..."    | Making sure the phone will accept a developer app               |
| "Requesting signed WDA from server..." | Asking for a signed copy, if you use server signing             |
| "Downloading signed WDA..."            | Fetching it                                                     |
| "Installing WDA on device..."          | Putting it on the phone. This step gives up after three minutes |
| "WDA ready!"                           | Done                                                            |

Budget about five minutes for a first build. **Start** is quicker: the Companion
launches WDA and waits up to 90 seconds for it to answer. If it does not answer in
that time, the developer app almost certainly has not been trusted on the phone
yet — see [Connect your phones](/guides/connect-your-phones#the-two-trust-steps-are-different).

Once a phone is running, the Companion checks its health every 30 seconds. Two
failures in a row and it restarts WDA on its own, up to three times, and then
rebuilds. You do not have to watch for this; it is why a phone sometimes goes
**Starting** again without you touching anything.

## The two ways WDA gets signed

Pick one. Server signing is the recommended default and is set up once for the
whole organization; Apple ID signing is set up on each Mac by whoever runs it.

|                     | Server signing                                                   | Apple ID signing                                                    |
| ------------------- | ---------------------------------------------------------------- | ------------------------------------------------------------------- |
| Where you set it up | Dashboard, once for the organization                             | Companion, on each Mac                                              |
| What it needs       | An App Store Connect API key from a paid Apple Developer account | Any Apple ID, free or paid                                          |
| Capacity            | 100 devices per year per Apple account                           | Whatever Apple allows that Apple ID. AutoGrowth does not count them |
| Renewal             | Certificate lasts about a year                                   | The profile lasts 7 days and renews itself                          |
| Recommended         | Yes                                                              | When you have no paid Apple account                                 |

### Server signing

The dashboard signs WDA for you, so nothing about signing has to exist on the
Macs your operators use. Set it up in **Settings → WDA Signing** — "Sign
WebDriverAgent on our servers or locally in the Companion". The section is only
visible to people whose role includes **Manage integrations**.

<Steps>
  <Step title="Create an App Store Connect API key">
    In App Store Connect: **Users and Access → Integrations → App Store Connect
    API**, with the **Admin** role. Download the `AuthKey_*.p8` file — Apple only
    lets you download it once.
  </Step>

  <Step title="Add the account in AutoGrowth">
    Press **Add account** and fill in **Label**, **Issuer ID** and **Key ID**,
    then upload the **AuthKey .p8** file. Everything comes straight off the App
    Store Connect page.
  </Step>

  <Step title="Press Bootstrap">
    The row shows **Needs bootstrap** until you do. Bootstrap creates the signing
    certificate and the app identifiers AutoGrowth needs. When it finishes the
    row reads **Ready**.
  </Step>
</Steps>

<Frame caption="Settings → WDA Signing, with two Apple Developer accounts connected.">
  <img src="https://mintcdn.com/autogrowth/XpowNsqf1wRaYnfV/images/dashboard-wda-signing.png?fit=max&auto=format&n=XpowNsqf1wRaYnfV&q=85&s=9e80ccb70b2ff233ccd252b3c463ca3e" alt="The WDA Signing settings section showing the Apple Developer accounts card with a Recommended badge, an Add account button, and two connected account rows — one with a Ready pill and its Devices registered this year counter, the other still showing its Bootstrap button" width="1600" height="806" data-path="images/dashboard-wda-signing.png" />
</Frame>

Each account row shows **Devices registered this year** as a count out of 100,
along with the key ID, the certificate expiry and the header **Total capacity**
across every account you have connected.

<Warning>
  **Apple's limit of 100 devices per account per year is real and enforced by
  Apple, not by AutoGrowth.** A phone sticks to whichever Apple account first
  signed for it and never moves. When every connected account is full, builds
  fail with "all Apple accounts at capacity, add another" — the fix is to connect
  another Apple Developer account.
</Warning>

A newly registered phone sometimes has to wait on Apple's side. That reads
"Apple is still verifying this device — this typically resolves overnight. Try
building again in a few hours." Nothing is broken; try again later.

### Apple ID signing

The Companion signs WDA on the Mac itself, using an Apple ID you sign in with.
Any Apple ID works, including a free one — no paid Developer Program membership
and no App Store Connect key.

<Steps>
  <Step title="Open Companion → Settings → Signing">
    The **WDA signing method** tile has two options: **Server** and **Apple ID**.
    Choose **Apple ID**.
  </Step>

  <Step title="Sign in with the Apple ID">
    Enter the email and password in the **Apple ID** tile and press **Sign in**.
    The password is stored in your macOS Keychain and is sent only to Apple.
  </Step>

  <Step title="Enter the two-factor code">
    A **Two-factor authentication** dialog asks for the six-digit code sent to
    your trusted Apple devices. Enter it promptly — it gives up after five
    minutes with "2FA timed out (no code entered)", and you have to press
    **Build** again.
  </Step>
</Steps>

<Frame caption="Companion → Settings → Signing, set to Apple ID.">
  <img src="https://mintcdn.com/autogrowth/XpowNsqf1wRaYnfV/images/companion-signing.png?fit=max&auto=format&n=XpowNsqf1wRaYnfV&q=85&s=1116020aa940ff1c2bdaa22998d114eb" alt="The Companion Settings Signing tab showing the WDA signing method tile with Server and Apple ID options, and the Apple ID tile with email and password fields and a Sign in button" width="1600" height="1000" data-path="images/companion-signing.png" />
</Frame>

You never type a team ID or a bundle identifier. Both are worked out from the
Apple ID.

<Info>
  **Free Apple IDs issue 7-day profiles.** The Companion re-signs and reinstalls
  WDA before they lapse — it checks every half hour and renews anything with less
  than two days left — so phones keep working without you doing anything. The
  certificate underneath lasts about a year and is shared across every phone that
  Mac manages.
</Info>

This setting is per Mac. A second Mac running the Companion has its own signing
method and its own Apple ID.

## The statuses you will see

While the agent is coming up or going down, the dashboard shows one pill and the
Companion shows another. They line up like this:

| What is happening                                     | Dashboard pill | Companion pill       |
| ----------------------------------------------------- | -------------- | -------------------- |
| Nothing known, or no heartbeat for 90 seconds         | **Offline**    | **Offline**          |
| Seen, but no agent installed yet                      | **Detected**   | **Needs Setup**      |
| Installed and startable                               | **Ready**      | **Ready**            |
| Preparing, building, installing, starting or stopping | **Starting**   | **Starting**         |
| Agent live                                            | **Running**    | **Running**          |
| Waiting on approval                                   | **Pending**    | **Pending Approval** |
| Something failed                                      | **Error**      | **Error**            |

The dashboard's device panel also shows a small agent chip carrying the current
phase — "build 40%", "starting", "ready", "error" — and a **Last message** row
with the Companion's own wording. That message is the useful one when a build
stalls.

If you do not have the **Remote control devices** permission, the chip reads
"permission required" and the buttons do nothing: "Remote control devices
permission is required to manage the agent."

## When Build or Start fails

| What it says                                                                                                                                            | What it means                                               | What to do                                                                                                       |
| ------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------- |
| "Developer Mode is disabled. On your iPhone, go to Settings → Privacy & Security → Developer Mode, enable it, and restart your device. Then try again." | Developer Mode is off                                       | Turn it on, let the phone restart, tap **Turn On**, press **Build**                                              |
| "Device not visible to Xcode. Please unplug and replug your iPhone, or try a different USB cable/port."                                                 | The Mac cannot see the phone                                | Replug with a good Apple cable into a port on the Mac. Unlock and Trust. On iOS 17+, approve the password prompt |
| "iPhone is locked. Please unlock your iPhone and try again."                                                                                            | The screen was locked                                       | Unlock, keep it awake, press **Start**. No rebuild needed                                                        |
| "WDA did not become ready within 90s…"                                                                                                                  | The developer app has not been trusted                      | Phone → **Settings → General → VPN & Device Management** → trust the developer → **Start**                       |
| "WDA could not launch (exit code N)…"                                                                                                                   | The agent quit immediately                                  | Trust the developer app. If it was already trusted, **Stop → Build → Start**                                     |
| "Admin permission is required to start the iOS 17+ device tunnel…"                                                                                      | The macOS password prompt was dismissed                     | Press **Start** again and approve it                                                                             |
| "Apple is still verifying this device — this typically resolves overnight."                                                                             | Apple has not finished registering the phone                | Try **Build** again in a few hours                                                                               |
| "all Apple accounts at capacity, add another"                                                                                                           | All 100-device pools are full                               | Connect another Apple Developer account in **Settings → WDA Signing**                                            |
| "No Apple accounts connected"                                                                                                                           | Server signing chosen, no account added                     | **Settings → WDA Signing → Add account**, then **Bootstrap**                                                     |
| "Apple account not bootstrapped"                                                                                                                        | The account was added but never bootstrapped                | Press **Bootstrap** on that account                                                                              |
| "Failed to download signed WDA (HTTP …)"                                                                                                                | A network hiccup or a bad build                             | Press **Build** again. If it repeats, contact support                                                            |
| "No available WDA ports" / "No available MJPEG ports"                                                                                                   | Too many phones started on one Mac                          | Stop phones you are not using, or split the fleet across a second Mac                                            |
| "WDA bundle id not resolved — run Build first…"                                                                                                         | **Start** pressed before **Build**                          | Press **Build**                                                                                                  |
| "2FA timed out (no code entered)"                                                                                                                       | The Apple two-factor window lapsed                          | Press **Build** again and enter the code straight away                                                           |
| "Apple ID credentials are not set."                                                                                                                     | Apple ID signing chosen with no Apple ID signed in          | **Companion → Settings → Signing → Apple ID**                                                                    |
| "Photos access is "denied" — grant it in Settings"                                                                                                      | The agent was refused access to the photo library           | Phone → **Settings → Privacy & Security → Photos** → the runner app → **Full Access**                            |
| "Start WDA on this phone first…"                                                                                                                        | Something tried to drive a phone whose agent is not running | Press **Start** on that phone                                                                                    |

Anything not in this list still lands in **Sprout**, the Companion's assistant
panel. When it has no specific fix it shows the raw message under "Something went
wrong" — copy that text and send it to support.

## What to read next

<CardGroup cols={2}>
  <Card title="Remote control" icon="hand-pointer" href="/guides/remote-control">
    Watching and driving a phone from the browser.
  </Card>

  <Card title="Troubleshooting" icon="life-ring" href="/guides/troubleshooting">
    Everything else, sorted by what you are looking at.
  </Card>
</CardGroup>
