The Depot CLI supports token-based authentication and OIDC trust relationships for container builds. For local development, use depot login to authenticate with a user access token. For CI, we recommend using an OIDC trust relationship, but you can also use an organization token or a project token.
Depot supports Organization, Project, User, and Pull tokens. Each token type grants full access to different Depot services depending on its scope:
| Service | User token | Organization token | Project token | Pull token |
|---|---|---|---|---|
| Container Builds | ✅ | ✅ | ✅ (project-scoped) | — |
| Registry | ✅ | ✅ | ✅ (project-scoped) | ✅ (read-only) |
| Depot CI | ✅ | ✅ | — | — |
| Cache | ✅ | ✅ | — | — |
| Agents | ✅ | ✅ | — | — |
| API | ✅ | ✅ | — | — |
User access tokens are tied to your Depot account and grant access to every project in every organization you belong to. When you run depot login, Depot authenticates your account and stores a user access token on your machine that all subsequent builds use by default. Use user tokens only for local development, not in CI environments.
To generate a user access token:
Organization tokens are scoped to a single organization. They are not tied to a user account.
To generate an organization token:
Project tokens are scoped to a single project in your organization. They are not tied to a user account, making them ideal for CI environments where OIDC is not available.
To generate a project token:
Pull tokens are short-lived, read-only tokens scoped to the Depot Registry. They grant pull access only and cannot be used to push images or authenticate any other Depot service. Use them in environments that only need to pull images, like production deployments or CI jobs pulling base images.
Generate a pull token with the Depot CLI:
depot pull-token --project <project-id>Pull tokens expire automatically and are not listed or manageable from the dashboard.
Most Depot CLI commands accept the --token flag, which lets you pass an organization, user, or project token directly. The CLI resolves tokens in the following order:
--token flagDEPOT_TOKEN environment variabledepot loginIf your CI provider supports OIDC, you can authenticate with Depot through a token exchange instead of storing static secrets. Depot integrates with GitHub Actions OIDC, CircleCI OIDC, Buildkite OIDC, and RWX.
You configure a trust relationship in Depot that maps to your CI provider's identity. When a CI job runs, it requests an access token from Depot. Depot verifies the request against your configured trust relationships and, if everything matches, returns a temporary token valid only for the duration of that job.
Trust relationship tokens have the same permissions as project tokens.
permissions block to your job with id-token: write and contents: read.Note: CircleCI requires entering your organization and project UUID, not the friendly name of your organization or project.
buildkite.com/<org-slug>).buildkite.com/<org-slug>/<pipeline-slug>).To learn about configuring a trust relationship between Depot and RWX, see OIDC with Depot in the RWX docs.