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

# Start a scan

> Scan a connected repository, a public repository URL, or a .zip archive you upload.

Select **New scan** to open the scan panel. It offers three sources.

| Tab                | Use it for                                                                                                                  |
| ------------------ | --------------------------------------------------------------------------------------------------------------------------- |
| **Connected repo** | A repository you connected through the GitHub App, public or private. See [Connect GitHub](/platform/scans/connect-github). |
| **Public URL**     | Any public repository. Paste its address. Nothing to install.                                                               |
| **Upload archive** | Source that is not in a repository, or code you do not want to connect.                                                     |

Each tab takes the same options and the same limits.

## Scan a public repository

<Steps>
  <Step title="Start a new scan">
    Select **New scan**.
  </Step>

  <Step title="Pick Public URL">
    Select the **Public URL** tab.
  </Step>

  <Step title="Paste the address">
    Enter the repository address, for example `https://github.com/owner/repository`.
  </Step>

  <Step title="Run the scan">
    Pick your agents and options, then select **start scan**.
  </Step>
</Steps>

<Info>
  This tab works with public repositories only, and needs no setup. To scan a
  private repository, connect it first. See [Connect GitHub](/platform/scans/connect-github).
</Info>

## Upload an archive

<Steps>
  <Step title="Start a new scan">
    Select **New scan**.
  </Step>

  <Step title="Pick Upload archive">
    Select the **Upload archive** tab.
  </Step>

  <Step title="Select your file">
    Select or drop your `.zip` file. The upload area reads **click or drop a .zip**.
  </Step>

  <Step title="Pick your agents">
    Pick one or more agents, or leave the field empty to run the base library, the default set.
  </Step>

  <Step title="Set options">
    Select **advanced** to add exclude patterns or a scope file. See [Scan options](#scan-options).
  </Step>

  <Step title="Run the scan">
    Select **start scan**.
  </Step>
</Steps>

## Scan options

Every tab takes the same options.

### Agents

The picker groups agents by category and shows how many each one holds. You can
work at either level.

* **A whole category.** Select **+ all** on a category header to add every agent in it.
* **One agent at a time.** Expand a category, then select the agents you want.

Leave the field empty to run the base library, the default set.

### Advanced

Select **advanced** on the scan panel to open these.

| Option           | What it does                                                                                                                                            |
| ---------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Exclude patterns | One glob per line, for example `test/**`. The platform always excludes `node_modules`, `.git`, `dist`, `build`, lockfiles, source maps, and `*.min.js`. |
| Scope file       | Paste text, or upload a file. It tells the scan which findings to report and which to skip.                                                             |
| Presets          | Save your agents, exclude patterns, and scope file under a name, then apply that preset to a later scan.                                                |

A scope file can define:

* **Targets.** What to scan.
* **Reportable.** What counts as a finding.
* **Not reportable.** What does not count.
* **Trust model.** Who is trusted, and what an attacker controls.

#### Save a preset

<Steps>
  <Step title="Set your options">
    Pick agents, exclude patterns, or a scope file.
  </Step>

  <Step title="Save">
    Select **save current**, enter a name, then select **save**.
  </Step>
</Steps>

Select a saved preset to apply it to a new scan. Select the **X** next to a preset, then confirm with **Delete**. Once deleted, a preset does not come back.

## Limits

| Limit                    | Value                                                               |
| ------------------------ | ------------------------------------------------------------------- |
| Format                   | `.zip` only. Other formats fail with `only .zip uploads supported`. |
| Expanded size            | 1 GiB maximum, after decompression.                                 |
| Archive entries          | 100,000 maximum.                                                    |
| Exclude patterns         | 50 maximum, per scan.                                               |
| Scope file, one scan     | 1 MB maximum.                                                       |
| Scope file, saved preset | 32 KB maximum.                                                      |
| Scope file format        | `.md`, `.markdown`, or `.txt`.                                      |

A saved preset stores its scope file at a lower limit than one scan. A file under 1 MB can pass for a single scan and still fail to save as a preset.

### A very large repository

One scan runs a bounded amount of work. On a very large repository the platform
stops at that bound and finishes with the agents it completed. The rest are held
rather than lost, and the scan page offers **Continue N capped** to run them and
add their findings to the same scan. See [Manage a scan](/platform/scans/manage-a-scan).

## What happens to your code

We do not keep your source code. The platform deletes your uploaded source and
every scan artifact 7 days after the scan starts. Your findings stay in the
dashboard.
