Skip to content

docs(cloud-agents): add multi-harness pages (Warp Agent, Claude Code, Codex)#87

Open
hongyi-chen wants to merge 4 commits into
hyc/orchestration-launchfrom
hyc/orch/multi-harness
Open

docs(cloud-agents): add multi-harness pages (Warp Agent, Claude Code, Codex)#87
hongyi-chen wants to merge 4 commits into
hyc/orchestration-launchfrom
hyc/orch/multi-harness

Conversation

@hongyi-chen
Copy link
Copy Markdown
Collaborator

Summary

Adds the documentation for the multi-harness story in the Oz Orchestration Launch (Codename Maestro): customers can now launch and steer Warp Agent, Claude Code, and Codex as first-class harnesses inside Oz from the Warp terminal, the Oz web app, the Oz CLI, the REST API, or the SDK. One access-control, environment, secret, observability, governance, and billing model spans every harness.

This PR ships five new pages under agent-platform/cloud-agents/harnesses/ (conceptual overview, per-harness feature docs for Warp Agent / Claude Code / Codex, and a procedural authentication page for connecting Anthropic and OpenAI credentials), and adds short "two contexts" callouts to the existing CLI-agent pages so readers can tell the local Warp-terminal experience apart from the cloud harness experience. OpenCode and Gemini are flagged as fast-follow harnesses where it's natural to do so.

New pages

  • src/content/docs/agent-platform/cloud-agents/harnesses/index.mdx — Harnesses overview. What a harness is, harness vs. model, what stays the same across harnesses, how to choose, how to switch.
  • src/content/docs/agent-platform/cloud-agents/harnesses/warp-agent.mdx — Warp Agent harness. Default; multi-model auto-routing; full terminal/tool access; Skills/Rules/Memory/Codebase Context native support; cross-harness orchestration parent.
  • src/content/docs/agent-platform/cloud-agents/harnesses/claude-code.mdx — Claude Code harness. Cloud orchestration, Claude model picker (opus/sonnet/haiku, 1M-context variants), credential types, choosing-Claude heuristics, how to launch from every surface.
  • src/content/docs/agent-platform/cloud-agents/harnesses/codex.mdx — Codex harness. Cloud orchestration, Codex model picker (GPT-5.5 / GPT-5.4 / Codex-tuned variants), credential type, choosing-Codex heuristics, how to launch.
  • src/content/docs/agent-platform/cloud-agents/harnesses/authentication.mdx — One-time auth setup for Claude Code and Codex via Warp-managed secrets (Oz web app and Oz CLI), with rotation/deletion guidance and troubleshooting.

Edited pages

  • src/content/docs/agent-platform/cli-agents/overview.mdx — Added a "Two contexts for these agents" callout up top distinguishing the Warp-terminal experience from the Oz cloud harness experience, with a link to the new harnesses overview.
  • src/content/docs/agent-platform/cli-agents/claude-code.mdx — Added a top-of-page callout linking to the Claude Code harness page; added the harness page to "Related pages".
  • src/content/docs/agent-platform/cli-agents/codex.mdx — Same treatment as Claude Code.
  • src/content/docs/agent-platform/cli-agents/opencode.mdx — Noted that OpenCode as an Oz cloud harness is a fast-follow with a link to the harnesses overview.

Research grounding

Confirmed against warp-server and warp-internal:

  • model/types/enums/agent_harness.go defines OZ, CLAUDE_CODE, GEMINI, CODEX. Per-harness feature flags + admin-disable via workspace settings, plus the OzMultiHarnessExperiment arm gate in production (logic/harness_availability.go).
  • config/harness_models.go confirms the Claude model picker (opus/sonnet/haiku aliases, pinned claude-opus-4-7 etc., opus[1m], sonnet[1m], opusplan) and the Codex picker (default, gpt-5.5, gpt-5.4, gpt-5.4-mini, gpt-5.3-codex-spark, gpt-5.3-codex, gpt-5.2).
  • model/types/enums/managed_secret_type.go confirms the auth-secret types per harness: anthropic_api_key / anthropic_bedrock_api_key / anthropic_bedrock_access_key for Claude Code, openai_api_key for Codex.
  • Web app HarnessSelector and HarnessAuthSecretSelector (client/packages/agents/src/components/) confirm the new-run and new-schedule UI flows.
  • crates/warp_cli/src/agent.rs confirms oz agent run --harness and oz agent run-cloud --harness with --claude-auth-secret. crates/warp_cli/src/secret.rs confirms oz secret create anthropic api-key|bedrock-api-key|bedrock-access-key.

Caveats / open questions for product / PM

  • CLI is behind server on Codex. The Oz CLI's Harness clap enum lists oz, claude, gemini only — no codex value yet. There's also no --codex-auth-secret flag and no oz secret create openai provider subcommand. The Codex harness page reflects this and steers CLI-first users toward the Warp app / Oz web app. Please confirm timing of CLI catch-up so the page can be amended.
  • Terminal harness dropdown is missing Codex. app/src/terminal/view/ambient_agent/harness_selector.rs renders Oz / Claude / Gemini. If Codex is expected to be live in Cloud Mode's harness dropdown at launch, the menu needs updating; otherwise I should re-word the "Warp app" steps to say Codex starts from the Oz web app today.
  • Gemini vs. OpenCode messaging. Per the launch tracker brief, Gemini and OpenCode are fast-follow harnesses. Gemini is already wired through more surfaces than OpenCode (server enum, CLI --harness gemini, terminal selector), so saying both are "coming soon" is slightly conservative. I've labeled both as fast-follow on the harnesses overview and as a "coming soon" note on the OpenCode page. Please confirm this matches marketing copy.
  • Sidebar wiring is deferred. This PR intentionally does not edit src/sidebar.ts per the orchestration launch file-scope guidance — the cross-cutting sidebar PR will add the five new pages to the Agents topic. As a result, npm run build currently fails on this branch with AstroUserError: Failed to find the topic for the agent-platform/cloud-agents/harnesses page until the sidebar PR lands. If the cross-cutting PR is meant to land later, this PR can merge first; the build will resolve once both are on the gating branch. Flagging in case the sequencing needs adjusting.
  • HarnessAuthSecrets.codex_auth_secret_name field. APP-4374 introduces this on the agent-config snapshot; the Codex page and authentication page reference it. Confirm it's shipping in the launch window so the doc isn't ahead of the SDK.

Validation

  • Five new pages and four edited pages render with sentence-case headers, bold-term + dash list format, second-person voice, and Oz/Warp/Warp Agent terminology per AGENTS.md.
  • Internal links use the new harnesses/... paths consistently.
  • All managed-secret type names match the ManagedSecretType enum (anthropic_api_key, anthropic_bedrock_api_key, anthropic_bedrock_access_key, openai_api_key).
  • Per the Oz harness display module, the user-visible name for the Oz harness is "Warp Agent" — this PR uses that consistently.

Co-Authored-By: Oz oz-agent@warp.dev

Add a new harnesses section under agent-platform/cloud-agents documenting
the harnesses available inside Oz (Warp Agent, Claude Code, Codex), plus
a procedural authentication page for connecting Anthropic and OpenAI
credentials. Add 'two contexts' callouts to the existing CLI-agent pages
distinguishing the local terminal toolbelt from the cloud orchestration
surface, and cross-link to the new harness pages.

New pages:
- agent-platform/cloud-agents/harnesses/index.mdx (overview)
- agent-platform/cloud-agents/harnesses/warp-agent.mdx
- agent-platform/cloud-agents/harnesses/claude-code.mdx
- agent-platform/cloud-agents/harnesses/codex.mdx
- agent-platform/cloud-agents/harnesses/authentication.mdx

Edited pages:
- agent-platform/cli-agents/overview.mdx (two-contexts callout)
- agent-platform/cli-agents/claude-code.mdx (cross-link)
- agent-platform/cli-agents/codex.mdx (cross-link)
- agent-platform/cli-agents/opencode.mdx (fast-follow note)

Sidebar wiring is intentionally deferred to the cross-cutting
sidebar PR per the orchestration launch tracker.

Co-Authored-By: Oz <oz-agent@warp.dev>
@cla-bot cla-bot Bot added the cla-signed label May 16, 2026
@vercel
Copy link
Copy Markdown

vercel Bot commented May 16, 2026

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
docs Error Error May 16, 2026 11:33pm

Request Review

@oz-for-oss
Copy link
Copy Markdown
Contributor

oz-for-oss Bot commented May 16, 2026

@hongyi-chen

I'm starting a first review of this pull request.

You can view the conversation on Warp.

I completed the review and no human review was requested for this pull request.

Comment /oz-review on this pull request to retrigger a review (up to 3 times on the same pull request).

Powered by Oz

Copy link
Copy Markdown
Contributor

@oz-for-oss oz-for-oss Bot left a comment

Choose a reason for hiding this comment

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

Overview

This PR adds a new multi-harness documentation section plus cross-links from the existing CLI-agent pages. The security pass did not find security-specific issues in the docs-only diff.

Concerns

  • The new harness pages are not added to the Starlight sidebar topic configuration, which leaves the branch unable to build as a standalone PR.
  • Several user-facing availability claims overstate which surfaces can launch each harness today.
  • The billing and Codex model guidance conflicts with the credential/authentication flows documented in the same PR.

Verdict

Found: 0 critical, 4 important, 0 suggestions

Request changes

Comment /oz-review on this pull request to retrigger a review (up to 3 times on the same pull request).

Powered by Oz

@@ -0,0 +1,71 @@
---
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] Adding these pages without adding their slugs to src/sidebar.ts leaves them outside any starlight-sidebar-topics topic, so npm run build fails; wire the new harnesses pages into the Agents sidebar in this PR or remove these pages/links until the sidebar PR lands.

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

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

Intentionally not addressed in this PR — src/sidebar.ts is owned by the gating-branch coordination PR (hyc/orchestration-launch), not by any single workstream PR. The sidebar wiring for all the new harness pages will land alongside the gating-branch merge so we're not racing other workstream PRs on the same file.


A harness is the agent runtime that executes a cloud agent run. Oz lets you pick the harness that fits the task — [Warp Agent](/agent-platform/cloud-agents/harnesses/warp-agent/), [Claude Code](/agent-platform/cloud-agents/harnesses/claude-code/), or [Codex](/agent-platform/cloud-agents/harnesses/codex/) — without changing how you launch, observe, or govern the run.

Every harness is a first-class citizen on the [Oz Platform](/agent-platform/cloud-agents/platform/). You can launch and steer any harness from the Warp terminal, the [Oz web app](/agent-platform/cloud-agents/oz-web-app/), the [Oz CLI](/reference/cli/), the [REST API or SDK](/reference/api-and-sdk/), and direct it to do work across multiple repos, integrations, and machines. The harness changes; the platform around it does not.
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 any harness can be launched from every surface, but the Codex page added in this diff says Codex CLI selection is still fast-follow; qualify the launch surfaces by harness so readers do not follow unavailable CLI or app steps.

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

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

Addressed in 51e6baa. The overview's "How to switch harnesses" section now lists per-surface availability instead of claiming all harnesses run on all surfaces: Warp app dropdown is Warp Agent / Claude Code / Gemini today; the Oz CLI accepts oz, claude, gemini (Codex CLI selection is a fast-follow); the Oz web app and API/SDK expose all four. The Codex page repeats the CLI-and-Warp-app fast-follow in a caution block so readers don't try to follow steps that aren't wired yet.

* **Cloud orchestration** - Launch Claude Code from any Oz trigger: the Warp app, the Oz web app, the Oz CLI, the REST API, schedules, Slack mentions, Linear issues, or GitHub Actions.
* **Claude model picker** - Choose the Claude model the harness uses, including the latest pinned Opus, Sonnet, and Haiku releases, the `best`/`opus`/`sonnet`/`haiku` aliases, and 1M-context variants.
* **Shared platform context** - Reads the same [environments](/agent-platform/cloud-agents/environments/), [agent secrets](/agent-platform/cloud-agents/secrets/), [MCP servers](/agent-platform/cloud-agents/mcp/), and [Skills](/agent-platform/capabilities/skills/) used by every other harness.
* **One credit pool** - Claude Code runs bill against your Warp credits like any other cloud agent run. There's no separate Anthropic contract or seat count.
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 billing claim conflicts with the credential setup that requires customers to provide Anthropic/OpenAI keys; clarify whether provider API usage is billed through Warp credits or through the selected provider credential, and make the Claude Code and Codex pages consistent.

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

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

Addressed in 51e6baa. The "one credit pool" claim is gone. The overview, Claude Code, Codex, and authentication pages now align on the same story: customer-supplied Anthropic/OpenAI API keys mean the provider bills your account directly for inference; Warp credits cover the platform layer (environment compute, triggers, observability) only. The "Credentials and billing" section on each third-party harness page makes this explicit.


The Codex harness exposes OpenAI's Codex-tuned and general coding models. Common picks:

* `default` - Lets Codex pick its own recommended model (GPT-5.5 for ChatGPT-authenticated users, GPT-5.4 otherwise).
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] The cloud Codex auth flow only documents openai_api_key, so ChatGPT-authenticated defaults are not actionable here; either document ChatGPT auth for cloud Codex runs or remove the ChatGPT-only model guidance from this page.

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

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

Addressed in 51e6baa. Cloud Codex only supports openai_api_key today, so the ChatGPT-auth caveat was misleading. The models list now describes default as "Codex picks its own recommended model based on the API key's account access" with a follow-up sentence telling the reader to pick default if they're unsure which models their key is entitled to. No more ChatGPT-only model claim.

…ology

- Retitle harness pages to "Warp Agent with Oz", "Claude Code with Oz",
  "Codex with Oz"; index becomes "Harnesses in Oz". Update body copy and
  cross-references in cli-agents/* to match.
- Reconcile billing claim: customer-supplied Anthropic and OpenAI API
  keys mean the provider bills your account directly for inference; Warp
  credits cover the platform layer only. Apply across overview, Claude
  Code, Codex, and authentication pages.
- Remove ChatGPT-auth ambiguity from Codex model list; "default" now
  reads as "Codex picks its own recommended model" with no provider-
  account claim that does not match cloud auth options.
- Qualify launch surfaces accurately: Warp terminal harness dropdown
  lists Warp Agent, Claude Code, Gemini today (no Codex); Oz CLI accepts
  --harness oz|claude|gemini today (Codex is fast-follow); Oz web app
  and API/SDK expose all four harnesses. Mark Codex CLI selection as
  fast-follow in the Codex page and authentication page.
- Add conservative framing for Gemini and OpenCode harnesses on the
  overview.
- Strip internal field-name jargon from user-facing examples.

Co-Authored-By: Oz <oz-agent@warp.dev>
@hongyi-chen
Copy link
Copy Markdown
Collaborator Author

Revision pass on Slack-thread feedback + bot review (commit 51e6baa)

Addressed the four reviewer-flagged items plus the broader Slack-thread "Oz harness" reframe:

Terminology reframe (Petra / Olivia / Ryan feedback)

  • Page titles are now task-oriented and reframe the relationship: Warp Agent with Oz, Claude Code with Oz, Codex with Oz, with the index renamed Harnesses in Oz. Sidebar labels unchanged where they were already non-redundant.
  • Body copy and cross-references throughout the harnesses/* pages and the cli-agents/* disambiguation callouts now use "harness in Oz" / "running [harness] on Oz" instead of "Oz harness" / "as an Oz harness".

Reviewer comments

  • Launch-surface overstatements (#discussion_r3253432083): The overview now spells out per-surface availability for each harness instead of claiming "any harness, any surface": Warp app dropdown lists Warp Agent / Claude Code / Gemini today; the Oz CLI accepts oz, claude, gemini today (Codex CLI selection is a fast-follow); the Oz web app and API/SDK expose all four harnesses. The Codex page calls the CLI-and-app fast-follow out explicitly in a caution block.
  • Billing vs. credentials conflict (#discussion_r3253432084): The "one credit pool" claim is gone. The overview, Claude Code, Codex, and authentication pages all now say the same thing: customer-supplied Anthropic/OpenAI API keys mean the provider bills your account directly for inference; Warp credits cover the platform layer (environment compute, triggers, observability) only.
  • Codex auth flow vs. ChatGPT-auth models (#discussion_r3253432086): Cloud Codex only supports openai_api_key today, so the "GPT-5.5 for ChatGPT-authenticated users, GPT-5.4 otherwise" guidance was misleading. The Codex models list now describes default as "Codex picks its own recommended model based on the API key's account access" and tells the reader to pick default if they're unsure which models their key is entitled to.
  • Sidebar wiring (#discussion_r3253432081): Intentionally not addressed in this PR — src/sidebar.ts is owned by the gating-branch coordination PR, not by any single workstream PR. The sidebar wiring will land alongside the gating-branch merge.

Additional changes

  • Gemini and OpenCode framing: The overview now mentions Gemini and OpenCode conservatively, since Gemini is wired through the CLI and terminal selector today and OpenCode is a true fast-follow.
  • Internal scrub: Stripped internal flag names, ticket IDs, code-path references, and internal field-name jargon from user-facing copy. The auth-secret JSON field names are described generically (the OpenAPI reference is the source of truth for exact field names).
  • Senior-writer pass: Tightened intros, removed marketing-y phrases, switched to second-person active voice throughout, and converted the lists to consistent bold-term + dash + explanation form.

Validation: style_lint --changed clean; check_links.py --internal-only clean.

…it implementation detail

Address Slack-thread feedback on PR #87:

- Drop OpenCode from the harnesses overview roadmap note and remove the
  OpenCode-in-Oz callout from cli-agents/opencode.mdx. OpenCode is no
  longer mentioned anywhere in the harness docs.
- Replace the six-sentence 'two contexts' callout on cli-agents/overview
  with a two-sentence note: Claude Code and Codex are also supported as
  harnesses in Oz. The matching callouts on cli-agents/claude-code and
  cli-agents/codex shrink to the same shape.
- Audit pass for over-explanation: harness 'How it works' sections drop
  Docker / cli-invocation walk-throughs in favor of user-facing copy;
  Claude and Codex model lists trim in-product aliases (opus[1m],
  sonnet[1m], opusplan, gpt-5.3-codex-spark, etc.) and defer to the
  picker for the full list; 'What stays the same' bullets lead with the
  user benefit; the authentication intro and BYOK callouts drop
  'cloud container' / 'injected at runtime' phrasing.

Co-Authored-By: Oz <oz-agent@warp.dev>
- Replace "the default Oz harness" with "Oz's default harness" in Related-pages bullets to avoid the "Oz harness" noun-phrase.
- Sweep "on Oz" → "with Oz" across harness page descriptions and body copy.
- Drop preview/fast-follow hedges around Codex CLI launch and the Warp app's harness dropdown — treat as launching at GA.
- Rewrite "GPT-5.5 family" as "the GPT-5 lineup" and drop gpt-5.5 from the cloud Codex Common picks (gpt-5.5 is ChatGPT-auth only; cloud Codex authenticates with an OpenAI API key). gpt-5.4 is now framed as the recommended cloud Codex default.
- Add the \`best\` alias to the Claude Code Common picks list with a note that it resolves to the current top-of-line Claude model.

Co-Authored-By: Oz <oz-agent@warp.dev>
@hongyi-chen
Copy link
Copy Markdown
Collaborator Author

Applied the approved audit fixes in 58739b0:

  • "Oz harness" noun-phrase leftovers – Rewrote three Related-pages bullets in index.mdx, claude-code.mdx, and codex.mdx from "the default Oz harness" to "Oz's default harness".
  • "On Oz" → "with Oz" body sweep – Normalized descriptions and body copy across index.mdx, warp-agent.mdx, claude-code.mdx, and codex.mdx to match the page titles.
  • Preview/fast-follow hedges removed – Dropped the Codex CLI "fast-follow" parenthetical and the Warp-app-dropdown caution callout in codex.mdx; updated index.mdx and authentication.mdx to describe Codex CLI/dropdown launches as standard for the GA posture.
  • Codex model picks aligned to API-key authcodex.mdx:19 now reads "the GPT-5 lineup"; dropped gpt-5.5 from the Common picks list (it's ChatGPT-auth only per config/harness_models.go, and cloud Codex authenticates with an OpenAI API key). gpt-5.4 is now framed as the recommended cloud Codex default.
  • Claude Code aliases – Added best to the Common picks list in claude-code.mdx:33 with a note that it resolves to the current top-of-line Claude model.

One judgment call: kept the authentication.mdx note that Codex secret creation from the Oz CLI is a fast-follow, since the carve-out for callouts where "the feature doesn't exist at all" applies (verified oz secret create openai isn't yet a subcommand in warp_cli/src/secret.rs).

style_lint --changed and check_links --internal-only are both clean.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant