Depot CI

Depot CI is a programmable CI system for engineers and agents. Workflows in Depot CI run entirely on Depot compute with built-in job visibility, debuggability, and control. GitHub Actions is the first syntax Depot CI supports: migrate your existing GitHub Actions workflows, and get fast, reliable runs on optimized infrastructure.

## Switching to Depot CI

Switching to Depot CI starts with one command: `depot ci migrate`.

The interactive wizard helps you install our GitHub App, discovers your GitHub Actions workflows, analyzes them for compatibility, and copies selected workflows and any local actions to a `.depot/` directory. Secrets and variables can then be automatically imported from GitHub in a separate step with `depot ci migrate secrets-and-vars`.

Your original `.github/` workflows continue running on GitHub in parallel until you're ready to switch over to Depot CI completely. For a step-by-step walkthrough, see the [quickstart](/content/docs/ci/quickstart/index.html).

## Feature summary

|  |  |
| --- | --- |
| **GitHub Actions compatibility** | - Runs your existing GitHub Actions YAML workflows.<br>- Supports push, pull request, schedule, workflow dispatch, workflow call, workflow run, and merge group triggers. |
| **Fast runs** | - Commit to running job in 2-3 seconds.<br>- Performance-tuned compute with pre-warmed sandboxes.<br>- Depot Cache is built in with no configuration required. |
| **Custom images** | - Build a [custom image](/content/docs/ci/how-to-guides/custom-images/index.html) with your dependencies and tooling pre-installed and use it from any Depot CI workflow.<br>- Jobs start with everything they need in the sandbox environment instead of rebuilding from scratch on every run. |
| **Built-in debuggability** | - Connect to the sandbox running your job [using SSH](/content/docs/ci/how-to-guides/debug-with-ssh/index.html).<br>- CPU and memory metrics are captured for every job.<br>- Search logs across runs from the dashboard. Retrieve logs for runs via the CLI. |
| **Local workflow runs** | - [Run a workflow against your local working tree](/content/docs/ci/how-to-guides/manage-workflow-runs#run-against-uncommitted-changes/index.html) without pushing to GitHub first.<br>- Uncommitted changes are automatically patched into the job after checkout.<br>- Pass `--job` to run a subset of jobs. |
| **CLI for engineers and agents** | - Trigger runs, fetch logs, diagnose failures, retry or cancel work, and monitor job status from the [CLI](/content/docs/cli/reference/depot-ci/index.html).<br>- Works for engineers and agents: no GitHub event required to start a local run.<br>- Use the [run-diagnose-fix loop](/content/docs/ci/how-to-guides/coding-agents/index.html) to let a coding agent validate uncommitted changes before it opens or updates a pull request. |
| **Workflows, logs, and metrics in the dashboard** | - View and manage all workflows from the [Depot CI](/content/orgs/_/workflows/index.html) page in your Depot dashboard.<br>- Retry failed jobs without re-running the entire workflow.<br>- See job-level metrics, step-level timing, and CPU and memory usage for your workflows. |

## How Depot CI works

Depot CI jobs run on [Depot Metal](/content/blog/announcing-depot-metal/index.html), Depot's compute and storage infrastructure. No separate configuration is required.

Depot CI is built on top of Switchyard. Switchyard is a system that takes an arbitrary task and ensures it is executed across a fleet of compute.

Switchyard has two components:

- **Orchestrator**: Schedules tasks across the compute fleet. Handles dependencies between jobs and monitors progress.
- **Compute**: Executes workflow jobs. Receives a task from the orchestrator, provisions the compute resources needed (sandboxes), and executes the task.

Depot CI translates CI workflows and pipelines for the Switchyard orchestrator. The first syntax Depot CI supports is GitHub Actions YAML. Depot CI handles compatibility with how a standard GitHub Actions runner behaves, including environment variables, expressions, and action execution.

When you add a workflow file to `.depot/workflows/` in your repository and merge it to your default branch, Depot registers automatic triggers for that workflow. When a trigger fires, the orchestrator schedules jobs across the compute fleet and sends logs back to the Depot dashboard and CLI.

Depot CI triggers scheduled workflows independently of GitHub's `schedule` event. See [Scheduled workflows](/content/docs/ci/compatibility#scheduled-workflows/index.html) for configuration and timing details.

While Depot CI today runs GitHub Actions YAML, the system is programmable. Switchyard can give your own CI frontend direct API access to workflows, orchestration, and compute.

## Compatibility with GitHub Actions

Depot CI supports the most commonly used GitHub Actions syntax, including workflow-, job-, and step-level configuration, expressions, and all major action types.

For the full compatibility matrix, see [Depot CI compatibility with GitHub Actions](/content/docs/ci/compatibility/index.html).

## Pricing

Depot CI, [Depot Sandboxes](/content/docs/sandboxes/overview/index.html), and [Managed Agents](/content/docs/managed-agents/overview/index.html) share one pool of included sandbox minutes. There's no separate allowance for each product. Compute is tracked and billed by the second, with no one-minute minimum per run.

Included minutes are measured at 2 vCPUs. Larger sandboxes consume the pool proportionally faster. For example, a 4-vCPU sandbox uses 2 included minutes for every minute it runs.

|  | Developer plan | Startup plan | Business plan |
| --- | --- | --- | --- |
| **Plan cost** | $20/month | $200/month | Custom |
| **Shared sandbox minutes** | 2,000/month | 20,000/month | Custom |
| **Additional compute** | $0.00005/vCPU-second | $0.00005/vCPU-second | Custom |
| **Cache and registry storage** | 25 GB included<br>\+ $0.20/GB/month after | 250 GB included<br>\+ $0.20/GB/month after | Custom |

The included minutes aren't a hard cap. Additional usage is billed automatically at $0.00005 per vCPU-second on Developer and Startup. A 2-vCPU sandbox costs $0.0001 per second after the shared allowance is used. For rates by size, see [Depot CI sandboxes](/content/docs/ci/overview#depot-ci-sandboxes/index.html).

## Depot CI sandboxes

Depot CI runs your workflows in x86_64 and Arm64 sandboxes. Sandboxes can use from 2 CPUs/8 GB of memory up to 64 CPUs/256 GB of memory. The default sandbox image is based on Ubuntu 24.04. The default `node` on `PATH` is Node.js 22, the same as GitHub's `ubuntu-24.04` image, and you can use `actions/setup-node` for another version. JavaScript actions run on their own Node.js runtime, described in [Action types](/content/docs/ci/compatibility#action-types/index.html).

Larger sandboxes consume the shared sandbox minutes included in your plan faster and cost more per second for extra usage. For example, a 4-CPU sandbox uses 2 minutes for every 1 minute of running time.

Use a _Label_ from the tables below in the `runs-on` key of your workflow. For [custom images](/content/docs/ci/how-to-guides/custom-images/index.html), use a _Sandbox size_ paired with a Depot Registry custom image URL in the `runs-on` key.

Depot CI doesn't provide sandboxes for macOS or Windows. Labels for those runner types (as listed in [Depot GitHub Actions runner types](/content/docs/github-actions/runner-types/index.html)) aren't compatible with Depot CI.

### x86_64 sandboxes

| Label | Sandbox size | CPUs | Memory | Per-second price | Plan minutes multiplier |
| --- | --- | --- | --- | --- | --- |
| `depot-ubuntu-24.04` | `2x8` | 2 | 8 GB | $0.0001 | 1x |
| `depot-ubuntu-24.04-4` | `4x16` | 4 | 16 GB | $0.0002 | 2x |
| `depot-ubuntu-24.04-8` | `8x32` | 8 | 32 GB | $0.0004 | 4x |
| `depot-ubuntu-24.04-16` | `16x64` | 16 | 64 GB | $0.0008 | 8x |
| `depot-ubuntu-24.04-32` | `32x128` | 32 | 128 GB | $0.0016 | 16x |
| `depot-ubuntu-24.04-64` | `64x256` | 64 | 256 GB | $0.0032 | 32x |

### Arm64 sandboxes

| Label | Sandbox size | CPUs | Memory | Per-second price | Plan minutes multiplier |
| --- | --- | --- | --- | --- | --- |
| `depot-ubuntu-24.04-arm` | `2x8` | 2 | 8 GB | $0.0001 | 1x |
| `depot-ubuntu-24.04-arm-4` | `4x16` | 4 | 16 GB | $0.0002 | 2x |
| `depot-ubuntu-24.04-arm-8` | `8x32` | 8 | 32 GB | $0.0004 | 4x |
| `depot-ubuntu-24.04-arm-16` | `16x64` | 16 | 64 GB | $0.0008 | 8x |
| `depot-ubuntu-24.04-arm-32` | `32x128` | 32 | 128 GB | $0.0016 | 16x |
| `depot-ubuntu-24.04-arm-64` | `64x256` | 64 | 256 GB | $0.0032 | 32x |

## FAQ

What is Depot CI?

Do I need to change my workflow YAML to use Depot CI?

Can I run Depot CI and GitHub Actions at the same time?

Can I run a workflow without pushing to GitHub?

## Next steps

- [Quickstart for Depot CI](/content/docs/ci/quickstart/index.html)
- [Compatibility with GitHub Actions](/content/docs/ci/compatibility/index.html)
- [Manage secrets and variables](/content/docs/ci/how-to-guides/manage-secrets-and-variables/index.html)
- [Test AI-generated pull requests in CI](/content/resources/guides/how-do-i-test-ai-generated-pull-requests-in-ci/index.html)
