# Depot GitHub Actions runners (https://depot.dev/docs/github-actions/overview)

Depot GitHub Actions runners are a drop-in replacement for your existing runners in any GitHub Actions job. Our [runners](/docs/github-actions/runner-types) are up to 3x faster than a GitHub-hosted runner. Depot runners are integrated into our cache orchestration system, so you also get 10x faster caching without having to change anything in your jobs.

To use Depot runners, your repository must be owned by a GitHub organization (not a personal account).

## Switching to Depot

After you connect your Depot organization to your GitHub repository, switching to Depot is a one-line change to your runner label in your GitHub actions workflow file. For example:

```diff
jobs:
  build:
    name: Build
-    runs-on: ubuntu-24.04
+    runs-on: depot-ubuntu-24.04
    steps:
      ...
```

For a step-by-step guide, see the [quickstart](/docs/github-actions/quickstart).

## Feature summary

<table>
  <thead>
    <tr>
      <th scope="col" />

      <th scope="col" />
    </tr>
  </thead>

  {/* prettier-ignore */}

  <tbody>
    <tr>
      <td>
        <strong>
          Single tenant infrastructure
        </strong>
      </td>

      <td>
        <ul>
          <li>
            Builds run on ephemeral EC2 instances that are never reused.
          </li>

          <li>
            GitHub Actions runners launch on-demand in response to webhook events from your organization.
          </li>
        </ul>
      </td>
    </tr>

    <tr>
      <td>
        <strong>
          Accelerated caching
        </strong>
      </td>

      <td>
        <ul>
          <li>
            Runners are automatically integrated into our distributed cache architecture for upload and download speeds up to 1000 MiB/s on 12.5 Gbps of network throughput.
          </li>

          <li>
            Uses the same cache orchestration system as our Docker image builds for 10x faster caching in GitHub Actions jobs.
          </li>

          <li>
            Zero configuration required to benefit from faster caching.
          </li>
        </ul>
      </td>
    </tr>

    <tr>
      <td>
        <strong>
          High-performance compute
        </strong>
      </td>

      <td>
        <ul>
          <li>
            Portion of memory reserved for disk to maximize performance.
          </li>

          <li>
            Intel runners (x86 architecture) use 4th Gen AMD EPYC Genoa CPUs.
          </li>

          <li>
            Arm runners use AWS Graviton4 CPUs.
          </li>
        </ul>
      </td>
    </tr>

    <tr>
      <td>
        <strong>
          No limits
        </strong>
      </td>

      <td>
        <ul>
          <li>
            No concurrency limits, cache size limits, or network limits.
          </li>

          <li>
            Run as many jobs as you want in parallel.
          </li>
        </ul>
      </td>
    </tr>

    <tr>
      <td>
        <strong>
          Flexible cache isolation
        </strong>
      </td>

      <td>
        <ul>
          <li>
            Cache isn't isolated by branch. Cache entries from 

            <code>main</code>

             and other branches contribute to the same namespace, making them accessible to all jobs.
          </li>

          <li>
            Control your cache isolation based on how you format your cache keys.
          </li>
        </ul>
      </td>
    </tr>

    <tr>
      <td>
        <strong>
          Cache scoped by repository
        </strong>
      </td>

      <td>
        <ul>
          <li>
            We scope cache entries stored in the Depot GitHub Actions cache by repository. Cache entries are accessible only by the same repository that saved them.
          </li>

          <li>
            Repositories don't have key collisions when using the same cache key.
          </li>

          <li>
            One repository can't unexpectedly read cache entries from another repository of a different trust level (for example, a public repository reading from or writing to a private repository).
          </li>
        </ul>
      </td>
    </tr>

    <tr>
      <td>
        <strong>
          Per second usage tracking
        </strong>
      </td>

      <td>
        <ul>
          <li>
            We track builds by the second and bill for whole minutes used at the end of the month.
          </li>

          <li>
            No one minute minimum enforced.
          </li>
        </ul>
      </td>
    </tr>

    <tr>
      <td>
        <strong>
          Self-hostable
        </strong>
      </td>

      <td>
        <ul>
          <li>
            Run optimized runners in our cloud or your AWS account for additional security and compliance.
          </li>

          <li>
            Support for dedicated infrastructure and VPC peering options for custom configurations.
          </li>
        </ul>
      </td>
    </tr>

    <tr>
      <td>
        <strong>
          Custom runner images
        </strong>
      </td>

      <td>
        <ul>
          <li>
            For Business plan customers, we can create custom runner AMIs with pre-installed software tailored to your specific requirements.
          </li>

          <li>
            Useful for specific tools, dependencies, or configurations not included in our standard runner images.
          </li>

          <li>
            Contact us at 

            <a href="mailto:contact@depot.dev">[contact@depot.dev](mailto:contact@depot.dev)</a>

             to discuss your needs.
          </li>
        </ul>
      </td>
    </tr>

    <tr>
      <td>
        <strong>
          Egress filtering
        </strong>
      </td>

      <td>
        <ul>
          <li>
            Control which external services your GitHub Actions runners can connect to with configurable allow and deny rules for IPs, CIDRs, or hostnames. For details, see 

            [Apply egress filters to GitHub Actions runners](/docs/github-actions/how-to-guides/egress-filtering)

            .
          </li>
        </ul>
      </td>
    </tr>

    <tr>
      <td>
        <strong>
          Docker image builds integration
        </strong>
      </td>

      <td>
        <ul>
          <li>
            If you use Depot for faster Docker image builds via our 

            <a href="/docs/container-builds/overview">remote container builds</a>

            , your BuildKit builder runs right next to your managed GitHub Action runner.
          </li>

          <li>
            Minimizes network latency and data transfer for faster CI builds.
          </li>
        </ul>
      </td>
    </tr>

    <tr>
      <td>
        <strong>
          Analytics and metrics
        </strong>
      </td>

      <td>
        <ul>
          <li>
            Job performance analytics with CPU/memory utilization tracking and automated runner sizing recommendations.
          </li>

          <li>
            Step-level timing breakdowns, failure rate tracking, and live runner status.
          </li>

          <li>
            Learn more about 

            <a href="/docs/github-actions/observability/github-actions-metrics">GitHub Actions metrics and analytics</a>

            .
          </li>
        </ul>
      </td>
    </tr>
  </tbody>
</table>

## How Depot GitHub Actions runners work

Depot GitHub Actions runners use a webhook-driven architecture that launches ephemeral, single-tenant EC2 instances in response to your GitHub workflow jobs. When you run a GitHub Actions job with a Depot label (like `runs-on: depot-ubuntu-latest`), the job runs on a Depot runner.

When you start a workflow run in GitHub, the platform sends `workflow_job` webhook events to Depot's control plane. For each new job, Depot:

1. Receives the webhook event from GitHub indicating a new job needs to run.
2. Assigns a fresh EC2 instance from a pre-provisioned standby pool matching your requested runner type (for example, `depot-ubuntu-24.04`).
3. Registers the runner in your GitHub organization's default runner group.
4. Runs the entire job using GitHub's standard runner image on the instance.
5. Terminates the instance when the job completes.

### Integration with Docker image builds

Depot GitHub Actions runners and [Depot's remote container builds](/docs/container-builds/overview) run in the same private network. If you use Depot for Docker image builds (via `depot build`), your BuildKit builders run right next to your GitHub Actions runners, minimizing network latency and accelerating workflows that build images and load them back into the job for testing.

### Cache storage

When you use Depot GitHub Actions runners, we store the cache entries in a distributed storage system optimized for high throughput and low latency. The cache storage is encrypted at rest and in transit. To learn more and to configure the cache retention policy, see the [Depot Cache overview](/docs/cache/overview).

## Pricing

Runners usage is tracked by the second, with no one-minute minimum per run. We calculate total minutes used at the end of the billing period.

|                            | Developer plan                                  | Startup plan                                     | Business plan         |
| -------------------------- | ----------------------------------------------- | ------------------------------------------------ | --------------------- |
| **Plan cost**              | $20/month                                       | $200/month                                       | Custom                |
| **GitHub Actions minutes** | 2,000 included/month<br />+ $0.004/minute after | 20,000 included/month<br />+ $0.004/minute after | Custom                |
| **Cache**                  | 25 GB included<br />+ $0.20/GB/month after      | 250 GB included<br />+ $0.20/GB/month after      | Custom                |
| **Runner types**           | Linux, Windows, macOS                           | Linux, Windows, macOS                            | Linux, Windows, macOS |

<DocsCTA buttonId="github-actions-docs-cta">
  <a href="/sign-up" className="text-radix-grass12">
    Try out Depot on any plan free for 7 days, no credit card required →
  </a>
</DocsCTA>

Plans also include [Depot CI](/docs/ci/overview) minutes and [container build](/docs/container-builds/overview) minutes. See [Pricing](/pricing) for more about plan features and costs.

### Runner pricing by type and size

Larger runners consume your included GitHub Actions minutes faster (via multipliers) and cost more per minute. For per-minute pricing, see [GitHub Actions runner types](/docs/github-actions/runner-types).

### Additional GitHub Actions minutes

Included monthly minutes are not a hard cap. You can pay for additional GitHub Actions minutes on a per-minute basis.
For per-minute pricing, see [GitHub Actions runner types](/docs/github-actions/runner-types).

### Estimate your cost savings

To estimate the potential cost savings by switching to Depot GitHub Action runners, enter your current usage by runner type on our [GitHub Actions Price calculator](/github-actions-price-calculator).

## FAQ

<FAQSection>
  <FAQItem question="What are the benefits of using Depot's GitHub Actions runners?">
    Depot's GitHub Actions runners offer several advantages:

    * Faster compute: Up to 3x faster than standard GitHub-hosted runners.
    * Up to 10x faster caching: Integrated with Depot's cache orchestration system.
    * Cost-effective: Half the cost of GitHub-hosted runners, billed by the second.
    * Variety of runner types: Support for Intel (x86), ARM, macOS, Windows, and GPU-enabled runners (Business plan only).
    * No concurrency limits: Run as many jobs as you want in parallel.
  </FAQItem>

  <FAQItem question="How do I start using Depot's GitHub Actions runners?">
    To use Depot's GitHub Actions runners, you need to:

    1. Connect your GitHub organization to Depot.
    2. Use the Depot label in your workflow file.

    For example, change:

    ```yaml
    runs-on: ubuntu-24.04
    ```

    to:

    ```yaml
    runs-on: depot-ubuntu-24.04
    ```

    See [Quickstart for GitHub Actions runners](/docs/github-actions/quickstart).
  </FAQItem>

  <FAQItem question="What runner types does Depot offer?">
    We offer a variety of runner types, including:

    * Ubuntu (from 2 vCPUs/2 GB RAM to 64 vCPUs/256 GB RAM)
    * macOS
    * ARM
    * Intel (x86)
    * Windows
    * GPU-enabled runners (available on the Business plan)

    See [GitHub Actions runner types](/docs/github-actions/runner-types).
  </FAQItem>

  <FAQItem question="How does Depot's pricing work for GitHub Actions?">
    Depot runners are half the cost of GitHub-hosted runners. Each plan comes with a set of included minutes as follows:

    * Developer plan: 2,000 minutes included, $0.004/minute after
    * Startup plan: 20,000 minutes included, $0.004/minute after
    * Business plan: Custom minute allocation

    Pricing is based on a per-minute basis, tracked per second, with no enforced one-minute minimum. See [Pricing](#pricing).
  </FAQItem>

  <FAQItem question="Can I use Depot's GitHub Actions runners with my existing workflows?">
    Yes, you can integrate our runners into your existing GitHub Actions workflows. You'll need to connect a GitHub
    organization-owned repository to Depot. Then change the `runs-on` label in your workflow file to use a Depot runner.
    See [Quickstart for GitHub Actions runners](/docs/github-actions/quickstart).
  </FAQItem>

  <FAQItem question="How does Depot's caching system work with GitHub Actions?">
    Our high-performance caching system is automatically integrated with our GitHub Actions runners. It provides up to 10x
    faster caching speeds compared to standard GitHub-hosted runners, with no need to change anything in your jobs. See
    [Use GitHub Actions cache with Depot Cache](/docs/cache/integrations/github-actions).
  </FAQItem>

  <FAQItem question="How can I track usage of Depot's GitHub Actions runners?">
    We provide detailed usage analytics for GitHub Actions on your organization's [usage page](/orgs/_/usage/) and on the
    [GitHub analytics page](/orgs/_/github-actions/analytics). You can track minutes used, job duration, and other
    metrics.
  </FAQItem>

  <FAQItem question="Can I use custom runner images with pre-installed software?">
    Yes, custom runner AMIs with pre-installed software are available on the Business plan. This is useful if you need specific tools, dependencies, or configurations that aren't included in our standard runner images.

    With a custom runner AMI, we maintain a separate image specifically for your organization with your required software pre-installed. This can significantly reduce workflow execution time for dependencies that take time to install.

    To request a custom runner AMI, [contact us](mailto:contact@depot.dev) with details about your requirements.
  </FAQItem>
</FAQSection>

## Next steps

* [Quickstart for GitHub Actions runners](/docs/github-actions/quickstart)
* [GitHub Actions runner types](/docs/github-actions/runner-types)

## For AI Agents

The full site index is at [llms.txt](https://depot.dev/llms.txt). Append `.md` to any documentation, blog, changelog, or customer URL to fetch its markdown source directly.