Skip to content

docs(billing): clarify agent hours per harness on the platform credits page - #677

Merged
hongyi-chen merged 4 commits into
docs/platform-credits-agent-hoursfrom
docs/platform-credits-agent-hours-harness
Sep 4, 2026
Merged

docs(billing): clarify agent hours per harness on the platform credits page#677
hongyi-chen merged 4 commits into
docs/platform-credits-agent-hoursfrom
docs/platform-credits-agent-hours-harness

Conversation

@hongyi-chen

@hongyi-chen hongyi-chen commented Sep 3, 2026

Copy link
Copy Markdown
Collaborator

Summary

Follow-up to #672, targeting its branch. Incorporates the Slack review of the agent-hours definition: keep it high level, but make it accurate across harnesses.

Two things in the current wording needed adjusting:

  • The Warp Agent and third-party harnesses meter differently. With the Warp Agent, the clock only runs while the agent is generating a response; time spent waiting on a command or tool it ran (a five-minute cargo check, a test suite) isn't billed. With Claude Code and Codex, the whole run is billed, including command execution and time waiting on the model provider. The page now says this in two bullets, without naming internals.
  • "Or pauses for your input" was carrying too much weight. It's true for the Warp Agent, but cloud runs on third-party harnesses auto-approve, so they aren't usually waiting on anyone. Dropped it from the stop conditions; idle time waiting for a follow-up stays excluded, which holds for every harness.

Also, per the thread on agent hours being the unit Warp Factories are sold on: the section now leads with agent hours as the meter for platform usage, notes that Enterprise contracts set the rate, and says billing views show credits rather than hours (users don't see hours in-product today).

Changes

Mostly src/content/docs/support-and-community/plans-and-billing/platform-credits.mdx. A second pass (below) makes small consistency and register fixes on credits.mdx, pricing-faqs.mdx, and enterprise/support-and-resources/billing.mdx; the sibling pages keep their one-line definition and link here for the full breakdown.

How platform credits are measured now reads:

An agent hour is one hour an agent spends working on a task. Warp meters platform usage in agent hours and bills that usage as platform credits. Partial hours are billed proportionally, not rounded up: a 15-minute run is a quarter of an agent hour. See Warp pricing for current rates. Enterprise rates are set by contract.

A run accrues agent hours from the time the agent starts in its environment, including environment setup, until the run finishes, fails, or is cancelled. Time spent queued before the agent starts isn't billed, and neither is idle time between turns while the run waits for your next message.

Within that period, what's billable depends on the harness:

  • Warp Agent - Time the agent spends generating a response. Execution time for commands and tools the agent runs in its environment, such as a five-minute test suite, isn't billable.
  • Claude Code and Codex - The entire run, including command execution and time spent waiting on the model provider.

Plus "Usage is shown in credits, not agent hours" in Where platform credits appear.

Second pass over #672

  • One phrase for one fact. "billed by the agent hour" now appears everywhere; it replaces "calculated from agent hours" (credits.mdx, pricing-faqs.mdx, the platform credits meta description) and "metered in agent hours" (platform credits intro). The other five mentions already used it.
  • Enterprise billing (billing.mdx): the cloud-agent sentence no longer carries the agent-hour definition as a mid-sentence parenthetical; it's its own sentence and notes the rate is set by contract. Also removed the page's last "Warp's platform infrastructure" (line 46), which the revops-factory review flagged.
  • Third-party CLI exclusion (platform-credits.mdx): "outside Warp" read as if claude in a Warp terminal pane might be billed. It isn't: a CLI you run yourself never creates a billable run (CliAgentUserQuery in generate_multi_agent_output.go is a Warp Agent input, not the CLI harness being metered). Now reads "yourself, whether in a Warp terminal pane or elsewhere."
  • Credits (credits.mdx): "when the conversation is framed around cloud agents versus local agents" → "since only cloud agent runs consume them. Both names refer to the same bucket." Also fixed a pre-existing non-parallel list ("experimenting with different prompts, models, and tracking").

Not changed, worth a follow-up outside this PR: "for Warp's platform infrastructure" still appears on six pages that #672 didn't touch (bring-your-own-api-key.mdx, custom-inference-endpoint.mdx ×2, bring-your-own-llm.mdx, byollm-gemini-enterprise.mdx, team-managed-keys-and-endpoints.mdx), each with a slightly different gloss of what the platform layer includes. A one-line sweep would align them with "platform layer."

Verification against warp-server

  • Per-stream segments for the Warp Agent: router/handlers/generate_multi_agent_output.go calls OpenSegmentForStream before the agent loop starts and CloseSegmentForStream when the stream ends. Each stream handles one input (a user query or a single tool-call result); the client executes the tool between streams, so no segment is open while a command runs.
  • Whole-run segments for Claude Code and Codex: nothing touches in_progress_since between the driver's IN_PROGRESS report and the terminal transition, so maybeChargeForPlatformUsage in logic/ai/ambient_agents/task_lifecycle.go bills the entire window.
  • Environment setup is inside the window for both: the sandbox driver (warp/app/src/ai/agent_sdk/driver.rs) reports IN_PROGRESS before environment setup, and the first Warp Agent stream's EnsureInProgressSegmentStarted is a no-op on an already-open segment.
  • Idle between turns is unbilled for both: turn completion is a terminal transition that closes the segment; a follow-up re-enters IN_PROGRESS and opens a new one.
  • Enterprise rate is per contract: every enterprise tier YAML under billing/config/tiers/ carries platform_credits_per_minute_override, read via GetPlatformCreditsPerMinuteOverrideFromBillingMetadata in billing/platform.go.
  • Exact time, not rounded: ChargeForPlatformUsage multiplies fractional duration.Minutes() by the per-minute rate.

Validation

…se boundary

Follow-up to the agent-hours definition on the platform credits page,
incorporating engineering review of the metering behavior:

- Describe how much of a run counts per harness. The Warp Agent clock
  runs while the agent is generating a response and pauses while a
  command or tool it ran is executing, so a long build or test suite
  doesn't add to agent hours. Claude Code and Codex bill the whole run,
  including command execution and time waiting on the model provider.
- Drop "pauses for your input" from the stop conditions. It held for the
  Warp Agent but not for third-party harnesses, which auto-approve in
  cloud runs. Idle time waiting for a follow-up stays excluded.
- Frame agent hours as the meter for platform usage, note that Enterprise
  contracts set the rate, and say that billing views show credits rather
  than hours.

Verified against warp-server: OpenSegmentForStream/CloseSegmentForStream
bound each Warp Agent stream in generate_multi_agent_output.go, while
third-party harness runs only close their segment on the terminal
transition (task_lifecycle.go, platform.go).

Co-Authored-By: Warp <agent@warp.dev>
@cla-bot cla-bot Bot added the cla-signed label Sep 3, 2026
@vercel

vercel Bot commented Sep 3, 2026

Copy link
Copy Markdown

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

Project Deployment Actions Updated
docs Ready Ready Preview Sep 4, 2026 11:20pm UTC

Request Review

Copy link
Copy Markdown
Collaborator Author

This PR was generated with Warp.

Comment @warp-agent on this PR to send it follow-up work.

View run View conversation

@hongyi-chen
hongyi-chen marked this pull request as ready for review September 4, 2026 22:53
@warp-for-oss

warp-for-oss Bot commented Sep 4, 2026

Copy link
Copy Markdown
Contributor

@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 /warp-agent-review on this pull request to retrigger a review (up to 3 times on the same pull request).

Powered by Oz

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

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.

Overview

This PR updates the platform credits billing page to clarify that platform usage is metered in agent hours and that metering differs between the Warp Agent and third-party harnesses.

Concerns

  • The Warp Agent harness bullet conflicts with the preceding setup-window wording by omitting environment setup from the counted time, even though the PR description says setup is billed.

Verdict

Found: 0 critical, 1 important, 0 suggestions

Request changes

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

Powered by Oz


Within that window, how much time counts depends on the [harness](/platform/harnesses/):

* **Warp Agent** - The clock runs while the agent is generating a response and pauses while a command or tool the agent ran is executing, so a five-minute test suite doesn't add to the run's agent hours.

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 bullet says the Warp Agent clock runs while generating, but line 20 says environment setup also counts; include setup here so the harness-specific wording does not understate billable time.

Suggested change
* **Warp Agent** - The clock runs while the agent is generating a response and pauses while a command or tool the agent ran is executing, so a five-minute test suite doesn't add to the run's agent hours.
* **Warp Agent** - The clock counts environment setup and time spent generating a response, and pauses while a command or tool the agent ran is executing, so a five-minute test suite doesn't add to the run's agent hours.

Replace the "clock starts/stops/runs/pauses" metaphor and casual
phrasing ("don't count", "how much time counts") with standard billing
vocabulary: a run accrues agent hours, time is or isn't billable,
partial hours are billed proportionally. Same facts and boundaries as
before; only the register changes. Italicize the defined term on first
use, matching the existing convention on the pricing FAQ page.

Co-Authored-By: Warp <agent@warp.dev>
… and register

- Use one phrase for the same fact everywhere: "billed by the agent hour"
  replaces "calculated from agent hours" (credits, pricing FAQ, platform
  credits description) and "metered in agent hours" (platform credits intro).
- Enterprise billing: split the cloud-agent sentence so the agent-hour
  definition isn't a mid-sentence parenthetical, note the rate is set by
  contract, and drop the last "Warp's platform infrastructure" on the page.
- Platform credits: the third-party CLI exclusion no longer says "outside
  Warp", which read as if a CLI run in a Warp pane might be billed. It
  isn't; only cloud runs on those harnesses are.
- Credits: replace "when the conversation is framed around cloud agents
  versus local agents" with the reason for the alias, and fix a
  non-parallel list in the usage-prediction sentence.

Co-Authored-By: Warp <agent@warp.dev>
@hongyi-chen
hongyi-chen merged commit 2f16d0f into docs/platform-credits-agent-hours Sep 4, 2026
12 checks passed
@hongyi-chen
hongyi-chen deleted the docs/platform-credits-agent-hours-harness branch September 4, 2026 23:38
hongyi-chen added a commit that referenced this pull request Sep 4, 2026
…ale language (#672)

* docs(billing): define agent hours for platform credits and refresh stale language

Platform credits are calculated from agent hours; add the definition to the
platform credits page (intro, description, and measurement section) and echo
it on the credits, pricing FAQs, and enterprise billing pages. De-dupe the
intro vs the three-bucket section, cut AI-isms, and update the pricing FAQs
preview-period language now that platform-credit billing is live.

Co-Authored-By: Warp <agent@warp.dev>

* docs(billing): restore run scopes in description and surface Warp Factories in intro

The platform credits meta description names both charged scopes again
(cloud agent runs and local runs with customer-supplied inference), and
the intro now mentions Warp Factories runs up front instead of only in
the eligibility bullet.

Co-Authored-By: Warp <agent@warp.dev>

* docs(billing): remove stale billing-start FAQ for platform credits

Platform-credit billing on self-serve plans started July 1, 2026, so the
"When do platform credits start being charged" question no longer needs
its own FAQ entry. No pages link to its anchor.

Co-Authored-By: Warp <agent@warp.dev>

* docs(billing): audit fixes across the credits and platform credits pages

- Correct the agent-hour boundary: the clock starts when the agent starts
  in its environment (including environment setup), not after setup.
  Verified against the sandbox driver, which reports IN_PROGRESS before
  environment setup and MCP startup.
- Add the self-hosted-workers case to the compute credits section: those
  cloud runs never consume compute credits but still consume platform
  credits (server rejects compute charges for self-hosted runs).
- Replace 'don't consume Warp credits' with 'don't consume AI credits' in
  the pricing FAQs where the same answer goes on to say platform credits
  apply; platform credits are Warp credits.
- Fix the add-on credits page's inverted claim that add-on credits 'draw
  from the same pool as platform credits' (add-on credits are a source,
  platform credits a usage type).
- Normalize the credits page heading hierarchy (H2/H3, no bold in
  headings), replace the versioned model list with a non-drifting
  statement, fix 'Warp's Agent' terminology, and broaden the integrations
  list.
- Standardize the agent-hour phrasing across all billing pages and trim
  restated cause-and-effect on the add-on credits page.

Co-Authored-By: Warp <agent@warp.dev>

* docs(billing): clarify agent hours per harness on the platform credits page (#677)

* docs(billing): clarify agent hours per harness and drop the input-pause boundary

Follow-up to the agent-hours definition on the platform credits page,
incorporating engineering review of the metering behavior:

- Describe how much of a run counts per harness. The Warp Agent clock
  runs while the agent is generating a response and pauses while a
  command or tool it ran is executing, so a long build or test suite
  doesn't add to agent hours. Claude Code and Codex bill the whole run,
  including command execution and time waiting on the model provider.
- Drop "pauses for your input" from the stop conditions. It held for the
  Warp Agent but not for third-party harnesses, which auto-approve in
  cloud runs. Idle time waiting for a follow-up stays excluded.
- Frame agent hours as the meter for platform usage, note that Enterprise
  contracts set the rate, and say that billing views show credits rather
  than hours.

Verified against warp-server: OpenSegmentForStream/CloseSegmentForStream
bound each Warp Agent stream in generate_multi_agent_output.go, while
third-party harness runs only close their segment on the terminal
transition (task_lifecycle.go, platform.go).

Co-Authored-By: Warp <agent@warp.dev>

* docs(billing): rewrite agent-hours section in plain billing terms

Replace the "clock starts/stops/runs/pauses" metaphor and casual
phrasing ("don't count", "how much time counts") with standard billing
vocabulary: a run accrues agent hours, time is or isn't billable,
partial hours are billed proportionally. Same facts and boundaries as
before; only the register changes. Italicize the defined term on first
use, matching the existing convention on the pricing FAQ page.

Co-Authored-By: Warp <agent@warp.dev>

* docs(billing): second pass over the agent-hours pages for consistency and register

- Use one phrase for the same fact everywhere: "billed by the agent hour"
  replaces "calculated from agent hours" (credits, pricing FAQ, platform
  credits description) and "metered in agent hours" (platform credits intro).
- Enterprise billing: split the cloud-agent sentence so the agent-hour
  definition isn't a mid-sentence parenthetical, note the rate is set by
  contract, and drop the last "Warp's platform infrastructure" on the page.
- Platform credits: the third-party CLI exclusion no longer says "outside
  Warp", which read as if a CLI run in a Warp pane might be billed. It
  isn't; only cloud runs on those harnesses are.
- Credits: replace "when the conversation is framed around cloud agents
  versus local agents" with the reason for the alias, and fix a
  non-parallel list in the usage-prediction sentence.

Co-Authored-By: Warp <agent@warp.dev>

---------

Co-authored-by: Warp <agent@warp.dev>

---------

Co-authored-by: Warp <agent@warp.dev>
Co-authored-by: Danny <16809145+dannyneira@users.noreply.github.com>
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