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

# Your fleet

> The Fleet page: what each status word means, battery and health, tags, who can see which phone, and why a phone can be online and still locked.

**Fleet** is every phone in your organization, as a grid of cards. A phone appears
here on its own, the first time the Companion on your Mac registers it — there is no
"add device" button in the dashboard. If a phone is missing, the problem is on the Mac,
not here. See [Connect your phones](/guides/connect-your-phones).

Each card carries the phone's name, its status, its battery, its badges, and a
**Remote Control** button. The eye icon opens the full detail view, which has three
tabs: **Overview**, **Accounts** and **Containers**.

<Frame caption="The Fleet page.">
  <img src="https://mintcdn.com/autogrowth/XpowNsqf1wRaYnfV/images/dashboard-fleet.png?fit=max&auto=format&n=XpowNsqf1wRaYnfV&q=85&s=5a6c062555ca1c1ae236bc9c202b4f7e" alt="The Fleet page showing a grid of phone cards, each with a device name, a status pill reading Running or Offline, a battery percentage, a Vanilla or Jailbroken badge and a Remote Control button, above a row of stat pills reading Phones, Ready to run, Needs attention and Runtime slots" width="1600" height="1444" data-path="images/dashboard-fleet.png" />
</Frame>

## What the status words mean

There are seven. Learn these, because every other screen uses the same set.

| Status       | What it means                                                                                    |
| ------------ | ------------------------------------------------------------------------------------------------ |
| **Offline**  | No heartbeat for 90 seconds, or the Companion unregistered the phone. Nothing can run.           |
| **Error**    | The phone or its agent reported a failure. Fix it in the Companion.                              |
| **Pending**  | The phone is waiting for setup approval.                                                         |
| **Starting** | The agent is being prepared, built, installed, started or stopped.                               |
| **Running**  | The agent is live. The phone is controllable and streamable.                                     |
| **Ready**    | The agent is installed but not running. Press **Start** in the Companion.                        |
| **Detected** | The Mac can see the phone, but the agent is not installed yet. Press **Build** in the Companion. |

<Info>
  There is no **Online** status and no **Busy** status. A working phone reads
  **Running**. A phone that is plugged in and idle reads **Ready**. A phone that is
  mid-run also reads **Running** — the pill does not tell you whether a job is in
  progress. The [Schedule](/guides/scheduling) screen does.
</Info>

**Health** is not reported by the phone; it is worked out from the status. **Running**
and **Ready** count as *Healthy*, **Error** and **Offline** count as *Error*, and
everything in between counts as *Stale*. The **All statuses** filter uses those three
words, and the **Needs attention** tab collects the phones that are not healthy.

**Battery** is a percentage the Companion reports. It turns yellow under 50% and red
under 20%, and reads `—` while the phone is offline.

<Warning>
  The card's container count (`3/8 ctrs`) is container capacity, not free space on the
  phone. AutoGrowth does not track a phone's storage at all. The storage number in
  **Settings → Billing** is your [content library](/guides/content-library) quota, which
  is a separate thing again.
</Warning>

## Naming a phone

The name comes from the Companion, and it is rewritten every time the phone reconnects.
There is no rename field in the dashboard. Rename the phone on the Mac if you want it
called something else.

## Tags

Tags are how you group phones — by room, by client, by whatever you like. They are
created once for the whole organization in **Settings**, then attached to phones from
the card's **Manage Tags** menu item.

<Steps>
  <Step title="Create the tags">
    In **Settings**, add the tags you want. Names are unique — a repeat gives you
    "Tag name already exists".
  </Step>

  <Step title="Attach them to a phone">
    On the phone's card, open the overflow menu and choose **Manage Tags**. The
    modal is titled **Manage tags** and lists every tag in the organization. Tick
    the ones that apply and press **Save**.
  </Step>
</Steps>

Attaching tags needs the *Manage tags* permission. Tags also drive the Fleet filters
and, more importantly, who sees what.

## Who sees which phone

* **Owners see everything.** An organization owner sees every phone, always.
* **Members see what you give them.** A member sees only the phones assigned directly
  to them, plus any phone carrying one of that member's tags. Every other phone is
  invisible to them — not greyed out, absent.

To assign phones to a person, open the card's **Assign Users** menu item. The modal is
called **Device operators** and lists everyone in the organization. This needs the
*Assign devices to users* permission. See [Team](/guides/team).

## Jailbroken or vanilla

Every iPhone carries one of two badges: **Jailbroken** (amber) or **Vanilla** (grey).
GrapheneOS phones show neither — jailbreak is an iPhone concept.

The badge is set automatically. In practice it means "this phone is linked to an active
Doritos device". You can override the badge by hand from the **Overview** tab, under
**Jailbreak & Doritos**, but the dashboard is blunt about what that achieves:

> Label only — doesn't change Doritos, the agent, billing or automation logic.

What a jailbreak actually unlocks is Doritos containers — several app identities on one
phone. Non-jailbroken iPhones get the same idea through DoritosLite. Both are covered in
[Containers](/guides/containers).

## Slots: being online is not the same as being paid for

This is the single most confusing thing about the Fleet page, so read it twice.

A **phone slot** is the monthly licence that lets one phone do work. You buy it in
[Billing](/guides/billing), and it binds itself to a phone when that phone connects. A
phone can be plugged in, powered, streaming a screen and reading **Running** while its
slot has lapsed. Presence and entitlement are two different things, and the dashboard
shows them as two badges side by side.

| Badge            | What it means                                                                                                                                    | What you do                         |
| ---------------- | ------------------------------------------------------------------------------------------------------------------------------------------------ | ----------------------------------- |
| **Slot expired** | A slot was bound to this phone and lapsed. "This device's slot has expired. Renew it to stream and run automations."                             | Renew it in **Settings → Billing**. |
| **No slot**      | No slot is bound at all — removed, reassigned, or never assigned. "This device has no slot assigned. Assign a slot in billing to reactivate it." | Assign a free slot, or buy one.     |

When any phone is in either state, a banner sits at the top of the Fleet page counting
them, with a **Renew Slots** or **Assign Slots** button that takes you to billing.

What a phone without a live slot cannot do:

* **Streaming and remote control are refused.** You get "Device slot has expired. Renew
  your slot to access streaming."
* **New runs are refused when you schedule them.** "Device slot has expired. Renew your
  slot to schedule executions."
* **Runs already on the calendar never fire.** The phone is filtered out of the work the
  Companion is allowed to pick up, so its pending runs sit there quietly and eventually
  expire. Nothing announces this at the moment it happens — check the slot badge first
  when a phone stops working for no visible reason.

<Warning>
  **Removing a phone does not free its slot.** The slot stays bound to that phone's
  hardware identifier until it expires on its own. Plan slot purchases around the
  phones you intend to keep, not around what is plugged in today.
</Warning>

## Removing a phone

The card's overflow menu ends with **Remove Device**, and asks you to confirm by name.
The phone stops appearing in the fleet. As above, its slot is
not released, and the phone comes back if the Companion registers it again.

## What to read next

<CardGroup cols={2}>
  <Card title="Remote control" icon="mobile-screen" href="/guides/remote-control">
    Open a live screen for any phone that is running.
  </Card>

  <Card title="Containers" icon="layer-group" href="/guides/containers">
    Several accounts on one phone, each with its own app install.
  </Card>

  <Card title="Credits and billing" icon="credit-card" href="/guides/billing">
    Phone slots, credits, and what a lapsed slot costs you.
  </Card>

  <Card title="Troubleshooting" icon="wrench" href="/guides/troubleshooting">
    When a phone will not leave Detected, Error or Offline.
  </Card>
</CardGroup>
