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

# Content library

> Upload the images and videos your phones post, and understand the storage that comes with your slots.

The **Library** holds every image and video your fleet can post. A posting automation
never takes a file from your computer — it takes one from here, through a
[collection](/guides/collections).

<Frame caption="The content library.">
  <img src="https://mintcdn.com/autogrowth/XpowNsqf1wRaYnfV/images/dashboard-content-library.png?fit=max&auto=format&n=XpowNsqf1wRaYnfV&q=85&s=74473dc4977814872c7c11d4c59da919" alt="The Content Library page with a Collections sidebar showing fresh-over-total counts, a grid of image and video thumbnails carrying Fresh, Queued and Posted badges, All Images Videos Starred filter tabs, and Upload and Import from Drive buttons" width="1600" height="1200" data-path="images/dashboard-content-library.png" />
</Frame>

## Upload

Press **Upload**. The modal is headed **Upload media** — "Drop files or browse — images &
videos up to 100MB each."

* **Anything that is an image or a video is accepted.** There is no fixed format list.
* **100 MB per file.** Files that fail either test are marked in the list, as
  **Unsupported file type** or **Over 100MB**, and are not sent.
* **Add to collection** puts everything in this batch straight into a collection. The
  helper line says why you want that: "Workflows draw fresh, single-use media from a
  collection."

Files go up one at a time, so a large batch takes a while. The summary counts images,
videos and total size before you commit.

<Warning>
  **A failed upload only ever says "Upload failed".** It does not tell you why, and the
  most common real reason is that your library is full. Before you go hunting for a
  problem with the file, open **Settings → Billing** and look at the **Storage** tile.
</Warning>

## How much space you have

Storage is not sold separately. Every active phone slot carries **20 GB**, and your quota
is 20 GB times the number of active slots. Buying storage on its own is not
possible: "Storage is now included with phone slots (20GB per phone). Contact support if
you need additional storage."

When you go over, the server refuses the upload with:

> Storage limit exceeded. Using 41.2GB of 40GB. Add more phone slots to increase storage.

That message never reaches the upload modal, which is why the paragraph above exists.

Usage lives in **Settings → Billing**, on the **Storage** tile: used against total, the
percentage, and the arithmetic behind it (`2 × 20 GB`). Banners appear there at 80% —
"Storage is running low" — and at 95% — "Storage is almost full". Both suggest the only
fix: more phone slots, or fewer files.

## Finding things

There are no folders. The sidebar is your list of collections, and everything else is
filtering:

* Tabs for **All**, **Images**, **Videos** and **Starred**.
* Sorting by **Newest first**, **Oldest first** or **Name (A–Z)**.
* A search box that matches names and tags.

Each item carries a badge saying where it stands: **Fresh**, **Queued**, **Posted** or
**Used** with a count. Those drive how collections hand media out.

The menu on an item offers **Preview**, **Download**, **Schedule Post**, **Star** and
**Delete**. Select several and the bulk bar adds **Star** and **Move to**, which lists
your collections plus **Remove from collection**.

Deleting asks first, and bulk deleting counts the items and warns that it cannot be
undone.

## Import from Google Drive

Connect Drive once in **Settings → Integrations** — the card is **Google Drive**,
"Import media directly from your Google Drive." A button then appears in the library:
**Import from Drive**.

<Steps>
  <Step title="Pick files in Drive">
    **Browse Google Drive** opens Google's own picker. Images and videos only, and
    **up to 20 files per import**.
  </Step>

  <Step title="Import them">
    Press **Import**. The result counts how many of your files landed. Originals
    stay where they are — "Originals stay in Drive — this copies them over."
  </Step>

  <Step title="Sort them">
    Imported files arrive with **no collection**. Select them and use **Move to**,
    or your workflows will never see them.
  </Step>
</Steps>

<Info>
  AutoGrowth only ever sees the files you pick in that window. It cannot browse or read
  the rest of your Drive.
</Info>

The same storage limit applies to imports, and Drive imports fail the same way when the
token has gone stale: "Failed to get Drive access token. Make sure Google Drive is
connected." Reconnect it in Settings.

## What to read next

<CardGroup cols={2}>
  <Card title="Collections" icon="layer-group" href="/guides/collections">
    Group media into the queues workflows post from.
  </Card>

  <Card title="Credits and billing" icon="credit-card" href="/guides/billing">
    Where the 20 GB per slot comes from.
  </Card>
</CardGroup>
