Skip to content
Merged
Show file tree
Hide file tree
Changes from 4 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 4 additions & 2 deletions .agents/references/terminology.md
Original file line number Diff line number Diff line change
Expand Up @@ -231,9 +231,11 @@ For the summary of the most critical terms (core features, Oz terms, terms to av
## Billing and credits

- **Add-on Credits** — capitalized as a product feature name
- **Cloud Agent Credits** — capitalized as a billing feature name
- **compute credits** — lowercase common noun; capitalize the first letter only at the start of a sentence or bullet. The compute bucket, consumed when an agent run uses Warp-hosted compute. Use alongside AI credits and platform credits when describing credit types.
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ [IMPORTANT] This introduces AI credits as a billing term, but the same glossary and AGENTS.md still say to use credits and not AI credits; update those guidance entries so docs authors and lint workflows do not contradict the new three-bucket model.

- **cloud agent credits** — lowercase common noun; capitalize the first letter only at the start of a sentence or bullet. Credits consumed by cloud agents, in contrast with local agent credits. Refers to the same compute bucket as compute credits; choose the term that fits the framing.
- **platform credits** — lowercase common noun; capitalize the first letter only at the start of a sentence or bullet. The platform-infrastructure bucket, consumed for every cloud agent run plus local runs with customer-supplied inference.
- **credits** — the unit of usage for AI features in Warp (lowercase, not "AI credits")
- **plan credits** — credits included with a subscription plan
- **Warp credits** — credits included with a subscription plan. Use in user-facing copy rather than "plan credits."

## External product names

Expand Down
9 changes: 6 additions & 3 deletions .agents/skills/style_lint/style_lint.py
Original file line number Diff line number Diff line change
Expand Up @@ -35,15 +35,18 @@
# Feature names that are correctly Title Case (exceptions to sentence-case rule)
PROPER_FEATURE_NAMES = {
"Admin Panel", "Agent Management Panel", "Agent Mode", "Agent Profiles",
"Ambient Agents", "Auto-detection Mode", "Cloud Agent Credits",
"Ambient Agents", "Auto-detection Mode",
"Codebase Context", "Code Review", "Command Palette", "Global Rules",
"Oz CLI", "Oz Platform", "Project Rules", "Slash Commands",
"Terminal Mode", "Universal Input", "Warp Drive", "Warp Platform",
"Oz CLI", "Oz Platform", "Project Rules",
"Slash Commands", "Terminal Mode", "Universal Input", "Warp Drive",
"Warp Platform",
}

# Terminology: wrong → right (case-sensitive checks)
PRODUCT_CASING = {
"Warp Terminal": ("Warp", "Use 'Warp' unless specifically distinguishing from Oz"),
"Cloud Agent Credits": ("cloud agent credits", "Use lowercase 'cloud agent credits' (host-context) or 'compute credits' (bucket-context); capitalize first letter only at start of a sentence/bullet"),
"Platform Credits": ("platform credits", "Use lowercase 'platform credits'; capitalize first letter only at start of a sentence/bullet/heading"),
"agent mode": ("Agent Mode", "Capitalize as a feature name"),
"agent management panel": ("Agent Management Panel", "Capitalize as a UI surface name"),
"warp drive": ("Warp Drive", "Capitalize as a feature name"),
Expand Down
6 changes: 4 additions & 2 deletions AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -610,8 +610,10 @@ Product feature names retain their standard capitalization. Match the exact casi
### Billing and credits
- **credits** (lowercase, not "AI credits") - the unit of usage for AI features in Warp
- **Add-on Credits** (capitalized as a product feature name)
- **Cloud Agent Credits** (capitalized as a billing feature name)
- **plan credits** - credits included with a subscription plan
- **compute credits** (lowercase common noun; capitalize the first letter only at the start of a sentence or bullet) - the compute bucket; consumed when an agent run uses Warp-hosted compute. Used alongside AI credits and platform credits when describing credit types.
- **cloud agent credits** (lowercase common noun; capitalize the first letter only at the start of a sentence or bullet) - credits consumed by cloud agents (in contrast with local agent credits). Refers to the same compute bucket as compute credits; pick the term that fits the framing.
- **platform credits** (lowercase common noun; capitalize the first letter only at the start of a sentence or bullet) - the platform-infrastructure bucket
- **Warp credits** - credits included with a subscription plan. Use in user-facing copy rather than "plan credits."
- Use "credit" or "credits" without the "AI" prefix throughout documentation

### UI elements
Expand Down
5 changes: 5 additions & 0 deletions src/content/docs/agent-platform/cli-agents/claude-code.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,10 @@ Warp auto-detects Claude Code when you run it, giving you access to rich input c

For installation, authentication, project configuration, and productivity tips, see the [How to set up Claude Code](/guides/external-tools/how-to-set-up-claude-code/) guide.

:::note
Claude Code is also available as a harness in Oz for cloud orchestration. See [Claude Code with Oz](/agent-platform/cloud-agents/harnesses/claude-code/).
:::

## Setting up notifications

Warp supports agent notifications for Claude Code through a plugin. Once installed, Warp surfaces in-app and desktop alerts when Claude Code needs your input — such as command approval, code review, or error intervention.
Expand Down Expand Up @@ -70,5 +74,6 @@ Claude Code supports the full set of Warp's agent integration features:
* [How to set up Claude Code](/guides/external-tools/how-to-set-up-claude-code/) — step-by-step setup guide
* [Claude Code in Warp](https://warp.dev/agents/claude-code) — product overview
* [Third-Party CLI Agents Overview](/agent-platform/cli-agents/overview/)
* [Claude Code with Oz](/agent-platform/cloud-agents/harnesses/claude-code/) — Claude Code as a cloud harness
* [OpenCode](/agent-platform/cli-agents/opencode/)
* [Codex](/agent-platform/cli-agents/codex/)
5 changes: 5 additions & 0 deletions src/content/docs/agent-platform/cli-agents/codex.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,10 @@ Warp auto-detects Codex when you run it, giving you access to rich input control

For installation, authentication, project configuration, and productivity tips, see the [How to set up Codex CLI](/guides/external-tools/how-to-set-up-codex-cli/) guide.

:::note
Codex is also available as a harness in Oz for cloud orchestration. See [Codex with Oz](/agent-platform/cloud-agents/harnesses/codex/).
:::

## Setting up notifications

Codex supports native notifications that Warp surfaces as in-app and desktop alerts — such as when Codex completes a task, encounters an error, or needs your input.
Expand Down Expand Up @@ -45,5 +49,6 @@ Codex supports the full set of Warp's agent integration features:
* [How to set up Codex CLI](/guides/external-tools/how-to-set-up-codex-cli/) — step-by-step setup guide
* [Codex in Warp](https://warp.dev/agents/codex) — product overview
* [Third-Party CLI Agents Overview](/agent-platform/cli-agents/overview/)
* [Codex with Oz](/agent-platform/cloud-agents/harnesses/codex/) — Codex as a cloud harness
* [Claude Code](/agent-platform/cli-agents/claude-code/)
* [OpenCode](/agent-platform/cli-agents/opencode/)
4 changes: 4 additions & 0 deletions src/content/docs/agent-platform/cli-agents/overview.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,10 @@ Warp auto-detects supported CLI agents and enhances them with IDE-level features

This feature set is also known as **universal agent support**.

:::note
Claude Code and Codex are also supported as harnesses in Oz for cloud orchestration. See [Harnesses in Oz](/agent-platform/cloud-agents/harnesses/).
:::

## Supported agents

Warp currently supports the following CLI coding agents:
Expand Down
104 changes: 104 additions & 0 deletions src/content/docs/agent-platform/cloud-agents/agents.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,104 @@
---
title: Agent identities
description: >-
Agent identities are team-scoped bot accounts that own and execute cloud
agent runs. Use them to separate workflows, scope credentials, and attribute
automated work.
sidebar:
label: "Agent identities"
---

An **agent identity** is a team-scoped identity that can own and execute Oz cloud agent runs. Every Warp team starts with a single default agent identity. Creating additional agent identities lets you separate workflows, scope credentials, and attribute automated runs to a specific bot account instead of a person.

Agent identities are useful when you want to:

* **Separate workflows** - Give the deploy bot, the dependency-update bot, and the code-review bot distinct identities so runs are easier to filter and audit.
* **Scope credentials** - Attach a specific set of managed secrets and skills to one identity so its runs receive only the configuration that workflow needs.
* **Attribute automated work** - Bind an API key to an agent identity so CI pipelines and webhooks show up as that bot in run history rather than as a teammate.

## How agent identities work

Each team has one default agent identity that runs receive automatically when no specific identity is chosen. You can create additional agent identities on top of that default and run as any of them. Identities are team-scoped, so every member of a team can see and use the same set of agent identities.

You can attach the following configuration to an agent identity:

* **Description** - A short, human-readable summary teammates see when picking the identity.
* **Managed secrets** - References (by name) to [team-managed secrets](/agent-platform/cloud-agents/secrets/) the identity should have access to.
* **Skills** - Skill specs (for example, `org/repo:path/to/SKILL.md`) the identity comes preloaded with. Shorthand specs like `repo:skill_name` are accepted when they resolve unambiguously against the team's cloud environments.

Skill specs are stored in their normalized fully-qualified form, and managed secret references are validated against the team's secret scope at attach time. If a secret is missing or a skill repo is not accessible to the team's GitHub App installation, the request is rejected before anything is saved.

## Service accounts and agent identities

"Agent identity" is the user-facing name for what Warp's CLI and REST API internally model as a **service account**. The two terms refer to the same underlying record:

* When `oz whoami` reports a principal of `service_account:<uid>`, that principal is an agent identity on your team.
* When [`oz federate issue-token`](/reference/cli/federate/) emits a subject component like `service_account:my-sa-id`, the value identifies the agent identity the run is executing as.

You don't need to distinguish the two terms in day-to-day use — pick the agent identity in the UI or pass its UID to the API, and the CLI surfaces the corresponding `service_account:` principal.

## Supporting multiple agent identities

Most teams start with the default agent identity and add more as their automation matures. Creating additional agent identities is worth it when distinct workflows have meaningfully different scopes — for example, a `ci-runner` identity that only needs read-only repo access, an `on-call` identity that holds production deploy credentials and is restricted to incident playbooks, and a `nightly-jobs` identity used by scheduled cleanups. Scoping each identity to a single workflow gives every run the minimum credentials it needs, keeps audit trails attributable to the right bot, and lets you revoke or rotate one workflow's access without touching the rest.

## Plan limits

Every team starts with a default agent identity. Additional identities are subject to plan-based limits — see [warp.dev/pricing](https://warp.dev/pricing) for current limits per plan.

When a team is over its plan limit (for example, after downgrading), the extra identities remain visible in the list but are marked as unavailable. Unavailable identities cannot be used to start runs, cannot have new API keys generated for them, and cannot be edited.

## Managing agent identities

You can create, list, update, and delete agent identities through the public API. The full request and response shapes — including error codes — live on the [API Reference](/api) page; the operations to look for are `createAgent`, `listAgents`, `getAgent`, `updateAgent`, and `deleteAgent` under the **agent** tag.

The endpoints behave as follows:

* **Create** - `POST /agent/identities` with a `name` and optional `description`, `secrets`, and `skills`. Returns `201` with the new identity's `uid`, `name`, and `available` flag.
* **List** - `GET /agent/identities` returns every agent identity on the team, including the default. Each entry includes an `available` flag indicating whether it is within the plan limit.
* **Retrieve** - `GET /agent/identities/{uid}` returns a single identity by its UID.
* **Update** - `PUT /agent/identities/{uid}` replaces individual fields. Omitting a field preserves the current value; passing an empty string or empty array clears it.
* **Delete** - `DELETE /agent/identities/{uid}` soft-deletes the identity and atomically deletes every API key bound to it. The default agent identity cannot be deleted.

### Caller requirements

A few constraints apply across every endpoint:

* **Team-scoped** - Agent identities belong to a team. The caller must be a member of exactly one team. If the caller is on zero teams or multiple teams, the request is rejected.
* **Human callers only** - Only human users can create, update, or delete an agent identity. A request authenticated as an agent identity itself is rejected.
* **Availability is enforced on use** - Over-plan-limit identities are returned by the list endpoint but cannot be used to update fields, generate new keys, or start new runs.

## API keys bound to an agent identity

A team API key can be bound to a specific agent identity at creation time. Calls authenticated with that key run as the chosen identity. The team is resolved automatically from the identity — you don't need to specify a team when generating the key.

To create a key bound to an agent identity, pass the identity's UID to the `generateApiKey` mutation. See [API Keys](/reference/cli/api-keys/) for the full key creation flow and for the difference between user-scoped and team-scoped keys.

Once the key exists, the CLI and SDK authenticate as that agent identity for every call. There is no extra flag to set; the binding is on the key itself.

## Running as an agent identity

There are two ways to run a cloud agent as a specific agent identity:

* **Authenticate with a key bound to the identity** - Every run started with that key executes as the bound agent identity. This is the typical path for CI pipelines and scheduled work.
* **Pass `agent_identity_uid` on `POST /agent/runs`** - For one-off runs, send the agent identity's `uid` in the request body. The field is only valid for team-owned runs.

When neither path is used, runs execute under the default identity ("Quick run" in the web app).
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ [IMPORTANT] This says omitting an identity runs as the default agent identity, but oz-web-app.mdx says Quick run runs as the user; make the default execution principal consistent so API-key binding and audit behavior are unambiguous.


## Where agent identities appear in the product

Agent identities surface across several Oz surfaces:

* **Agents page** - The Agents page in the [Oz web app](/agent-platform/cloud-agents/oz-web-app/) is where teams view, create, edit, and delete agent identities. The same page lists the skills available to your team.
* **Agent picker** - Forms that start a new run or schedule include an **Agent** dropdown. **Quick run** is the default option (runs execute as the calling user); selecting an agent identity runs as that identity instead.
* **Run filters and detail** - The Runs view lets you filter by agent identity, and individual run detail pages show which identity executed the run.
* **Admin Panel** - Billing usage in the [Admin Panel](/knowledge-and-collaboration/admin-panel/) attributes credits consumed by agent identity runs to the team rather than to a person.

## Related pages

* [Cloud agent secrets](/agent-platform/cloud-agents/secrets/) - Manage the team-managed secrets you can attach to an agent identity.
* [Deployment patterns](/agent-platform/cloud-agents/deployment-patterns/) - When to use an agent identity for automation versus a personal identity.
* [Oz API & SDK](/reference/api-and-sdk/) - Programmatic access to the agent identity endpoints.
* [API Keys](/reference/cli/api-keys/) - Create keys bound to a specific agent identity.
* [Federated identity tokens](/reference/cli/federate/) - Issue OIDC tokens from inside a run, including ones executing as an agent identity.
* [Oz web app](/agent-platform/cloud-agents/oz-web-app/) - The web surface where you manage agent identities and inspect their runs.
* [Admin Panel](/knowledge-and-collaboration/admin-panel/) - Team-level billing and access controls.
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,7 @@ Use this when you already have a system that schedules work (CI, dev boxes, inte
#### Minimal setup checklist

* A Warp team
* A service account (recommended for automation)
* An [agent identity](/agent-platform/cloud-agents/agents/) (recommended for automation)
* The Oz CLI installed on the runner / box
* Any needed credentials (often via secrets + environment variables)

Expand Down
Loading