docs: document connecting a ChatGPT subscription - #815
hongyi-chen wants to merge 6 commits into
Conversation
Sign in with ChatGPT shipped in v0.2026.09.30.08.29.stable_01 and is GA in the public client repo (chatgpt_subscription is a default cargo feature). Adds a page for it alongside the SuperGrok equivalent and corrects the BYOK page, which asserted the feature did not exist. Co-Authored-By: Warp <agent@warp.dev>
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
|
This PR was generated with Warp. Comment |
Co-Authored-By: Oz <oz-agent@warp.dev>
|
@warp-agent-staging[bot] 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 Powered by Oz |
There was a problem hiding this comment.
Review summary
The independent agent completed its review for this commit.
Findings
src/content/docs/agents/inference/bring-your-own-api-key.mdx:40— [IMPORTANT] This PR makessrc/content/docs/agents/getting-started/faqs.mdxlines 36-44 wrong: it still answers "No" to using a ChatGPT subscription with Warp. Requested change: update that FAQ so ChatGPT subscriptions connect and Claude subscriptions don't, and link to/agents/inference/chatgpt-subscription/.src/content/docs/agents/inference/chatgpt-subscription.mdx:41— [SUGGESTION] Step 4 ends with "so this step is what actually routes requests through your plan," which restates the previous sentence. Requested change: delete it and use "Choose" for the model picker.src/content/docs/agents/inference/chatgpt-subscription.mdx:15— [SUGGESTION] Eligibility wording ("requires that your team allows members to bring their own keys", and the BYOK row "Plans that allow member-provided keys") differs from the SuperGrok page and the BYOK note. Requested change: reuse the established availability wording or confirm it is accurate for ChatGPT.src/content/docs/agents/inference/chatgpt-subscription.mdx:20— [SUGGESTION] Server-side claims are not supported by any cited public source: credential stored for the Warp account (line 20), labels sent to OpenAI (line 28), Auto models always consuming credits (line 64), and Billing and Usage linking to ChatGPT usage (line 54). Requested change: record engineering or Docs validation in the PR body before merge, or remove any claim that can't be confirmed.src/content/docs/agents/inference/chatgpt-subscription.mdx:47— [NIT] Two consecutive blank lines before## Usage and billing behavior. Requested change: remove one.src/content/docs/agents/inference/chatgpt-subscription.mdx:52— [SUGGESTION] "Warp does not consume any of your credits" repeats the opening paragraph, and line 64 bolds "always consume Warp credits" for emphasis. Requested change: state the credits behavior once and reserve bold for UI elements.src/content/docs/agents/inference/bring-your-own-api-key.mdx:17— [SUGGESTION] "The same section offers Continue with ChatGPT..." is appended to the SuperGrok paragraph and repeats line 11. Requested change: remove it or move the ChatGPT pointer out of the SuperGrok paragraph.
Verdict
Request changes
There was a problem hiding this comment.
Overview
This PR adds a ChatGPT subscription inference page, links it from BYOK, and adds sidebar navigation. The docs contract checks pass, but the disconnect section overstates the post-disconnect billing path when a pasted OpenAI API key is configured.
Concerns
- The disconnect instructions should preserve the earlier precedence rule: after disconnecting, OpenAI requests may use a pasted OpenAI API key before falling back to Warp credits.
- One extra blank line should be removed to avoid markdownlint noise.
Verdict
Found: 0 critical, 1 important, 1 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
Co-Authored-By: Oz <oz-agent@warp.dev>
There was a problem hiding this comment.
Review summary
The independent agent completed its review for this commit.
Findings
src/content/docs/agents/inference/chatgpt-subscription.mdx:10— [IMPORTANT] Says plan usage counts against ChatGPT "instead of spending your Warp credits" (frontmatter line 4 repeats it), butbring-your-own-api-key.mdxsays platform credits still apply to local runs on Business and Enterprise with BYOK, and the client treats a ChatGPT connection as a BYO credential. Requested change: verify cost resolution inwarp-server/logic/ai/llm/user_api_keys/util.go, then state the platform-credit behavior for Business and Enterprise or scope the sentence to the credits it covers and cross-reference the BYOK page.src/content/docs/agents/inference/chatgpt-subscription.mdx:52— [NIT] The app labels the settings page "Billing and usage", not "Billing and Usage". Requested change: use Billing and usage.src/content/docs/agents/inference/chatgpt-subscription.mdx:43— [SUGGESTION] "The first time an eligible request uses the connected plan, Warp shows 'You're using your ChatGPT plan.'" The modal exists inchatgpt_plan_modal/view.rs, but the first-request trigger isn't in the cited files. Requested change: cite where the trigger is defined, or soften the sentence if it is not a once-only behavior.src/content/docs/agents/inference/chatgpt-subscription.mdx:56— [SUGGESTION] Try again, Manage ChatGPT usage, and Continue with Warp credits are bolded as UI labels, but the client takes the labels from the server (ChatGPTSubscriptionErrorAction.label). Requested change: confirm the exact strings againstwarp-server/logic/chatgpt_subscription_errors.goor list them under Unverified claims in the PR body.src/content/docs/agents/inference/chatgpt-subscription.mdx:62— [SUGGESTION] "Auto models always use Warp's own inference and consume Warp credits, even with a ChatGPT plan connected" is an absolute billing claim that the cited client files don't establish. Requested change: confirm againstwarp-server/logic/ai/model_choices/model_choices.goand keep it if it holds, otherwise rewrite it to match.src/content/docs/agents/inference/chatgpt-subscription.mdx:70— [SUGGESTION] The headings at lines 70 and 74 are in quotation marks but paraphrase the toast text inon_chatgpt_connect_failed. Requested change: quote the toast text exactly, and for line 70 state in the body that the toast also covers a Warp account that already has a different ChatGPT account linked.src/content/docs/agents/inference/chatgpt-subscription.mdx:24— [SUGGESTION] Hedges stack across "Connecting can make additional eligible OpenAI models selectable" (line 24), "may appear in your ChatGPT usage settings" (line 28), and "Warp may offer" (line 56). Requested change: state the behavior verified in source and keep one qualifier only where behavior varies by plan tier.
Verdict
Request changes
Co-Authored-By: Oz <oz-agent@warp.dev>
There was a problem hiding this comment.
Review summary
The independent agent completed its review for this commit.
Findings
src/content/docs/agents/inference/chatgpt-subscription.mdx:43— [IMPORTANT] The page quotes the status text "You're using your ChatGPT plan.", but the client source (app/src/ai/llms.rs, ByoKeySource::inference_label) renders "Using ChatGPT plan". Requested change: quote the exact UI string "Using ChatGPT plan" (or describe the status without quoting) and confirm where in the UI it appears.src/content/docs/agents/inference/chatgpt-subscription.mdx:58— [SUGGESTION] The labels Try again, Manage ChatGPT usage, and Continue with Warp credits come from server-authored error actions (warp-server chatgpt_subscription_errors.go) that this review could not verify. Line 54 also repeats the platform-credits rule that platform-credits.mdx owns. Requested change: confirm the exact action labels against warp-server source, and replace the line 54 paragraph with a one-sentence link to the platform credits page.
Verdict
Request changes
Co-Authored-By: Oz <oz-agent@warp.dev>
There was a problem hiding this comment.
Review summary
The independent agent completed its review for this commit.
Findings
src/content/docs/agents/inference/chatgpt-subscription.mdx:38— [IMPORTANT] The quoted row label "Use your OpenAI ChatGPT plan" does not match the app, whererender_chatgpt_subscription_rowinwarp_agent_page.rsrenders "OpenAI ChatGPT plan". Requested change: replace the quoted label with "OpenAI ChatGPT plan" in this step.src/content/docs/agents/inference/chatgpt-subscription.mdx:68— [IMPORTANT] The Disconnecting section repeats the same wrong quoted label, "Use your OpenAI ChatGPT plan". Requested change: replace it with "OpenAI ChatGPT plan".src/content/docs/agents/inference/chatgpt-subscription.mdx:22— [SUGGESTION] "With a plan connected, eligible OpenAI requests from the Warp Agent count against your ChatGPT plan" repeats the intro sentence (line 10) and the first bullet in "Usage and billing behavior" (line 51). Requested change: state it once, keep the API-key precedence sentence, and delete the repeated clauses.src/content/docs/agents/inference/chatgpt-subscription.mdx:15— [SUGGESTION] The note covers plan eligibility but not why the row can be missing: the client shows it only when BYOK is enabled and team policy allows member keys. Requested change: add one sentence saying the row is hidden when an organization's admin disables member API keys, or link to the BYOK team-policy section.src/content/docs/agents/inference/chatgpt-subscription.mdx:58— [SUGGESTION] The labels "Try again", "Manage ChatGPT usage", and "Continue with Warp credits" are server-authored inwarp-server/logic/chatgpt_subscription_errors.go, which this review could not read. Requested change: confirm the three labels against that file before merge, and correct any that differ.
Verdict
Request changes
Co-Authored-By: Oz <oz-agent@warp.dev>
There was a problem hiding this comment.
Review summary
The independent agent completed its review for this commit.
Findings
src/content/docs/agents/inference/chatgpt-subscription.mdx:15— [SUGGESTION] The eligibility claim ("10 or fewer employees", Terms of Service, Business or Enterprise for larger organizations) is copied from BYOK. The cited client source only gates onis_byo_api_key_enabledand the admin member-key policy, and the PR's Unverified claims section doesn't list it. Requested change: have the engineering reviewer confirm it for ChatGPT plans, or link to the BYOK eligibility wording instead of restating it. The:::cautioninplatform-credits.mdxalso names only BYOK and custom endpoints.src/content/docs/agents/inference/chatgpt-subscription.mdx:38— [SUGGESTION] The sentence "In the Warp app, the full row label reads "Use your OpenAI ChatGPT plan," with an OpenAI logo…" describes label and logo placement, overlaps step 1, and uses a different label than step 1 ("OpenAI ChatGPT plan"). Requested change: delete the sentence and keep the label in step 1.src/content/docs/agents/inference/chatgpt-subscription.mdx:60— [SUGGESTION] The button labels Try again, Manage ChatGPT usage, and Continue with Warp credits are authored by warp-server, and the public client only renders the server-supplied label. The "Auto models always use Warp's own inference" claim on line 66 relies on the same private server files, so I could not verify either claim. Requested change: have the engineering reviewer confirm the labels and the Auto behavior, or describe the actions by function rather than quoting labels.
Verdict
Approve with nits
|
|
||
| ## How it works | ||
|
|
||
| When you connect your plan, Warp opens your browser to OpenAI's Sign in with ChatGPT consent screen. Approving the connection links your ChatGPT account to your Warp account and authorizes OpenAI to share a delegated credential with Warp. Unlike a BYOK API key or a [SuperGrok subscription](/agents/inference/grok-subscription/), Warp stores that credential for your Warp account rather than in your device's keychain. |
There was a problem hiding this comment.
I don't think it's worth mentioning how the credential for the account is stored, that feels like an implementation detail that isn't important.
| Data retention on OpenAI's side is governed by your own OpenAI account and its terms. Warp's Zero Data Retention agreements cover Warp-managed inference, so they do not apply to requests billed to your plan. See [Zero Data Retention and BYOK](/agents/inference/bring-your-own-api-key/#zero-data-retention-zdr-and-byok). | ||
| ::: | ||
|
|
||
| ## Connecting your ChatGPT plan |
There was a problem hiding this comment.
In this part, I think it's important to distinguish between the two ways to connect to your ChatGPT plan. In the sign in / sign up flow, you can click "Continue with ChatGPT". This will create a Warp account with the same email as your ChatGPT account and automatically link them.

The other way is the one you've described here, where you can link your existing Warp account to a ChatGPT plan.
Also, I think some screenshots here would be helpful for both cases.


What this feature does
Connecting a ChatGPT plan lets eligible OpenAI requests in Warp Agent conversations in the Warp app count against your ChatGPT usage limits instead of Warp credits. Connect from Settings > Agents > Warp Agent with Continue with ChatGPT. This does not connect Claude subscriptions, and the docs make no claim about cloud agent runs. Shipped in
v0.2026.09.30.08.29.stable_01(2026-09-30).Why now
The previous drift-watch run (#768) deferred this feature because it could not be verified. At
warpmaster7cef787eathe public repo held only inert plumbing — hardcodedfalseflags and an error arm — with no settings control, no OAuth flow, and no gating flag. Drafting then would have meant inventing the labels and the steps.At
38b2c55e4the whole surface is present, so the deferral has cleared and the page is written from source rather than from the changelog.Content design plan
Reader and job: A developer who already pays for ChatGPT and wants OpenAI models in Warp to bill to that plan instead of drawing down their Warp credits.
Gap today: Nothing documents the feature, and
bring-your-own-api-key.mdxactively said it was impossible ("Can I sign in with a ChatGPT or Claude subscription? No."). A reader who saw Continue with ChatGPT in Settings and then checked the docs was told the button could not exist.Goals: The reader can connect and disconnect a plan, knows which requests bill to it and which still cost Warp credits, can recover from the documented connection failures, and understands what OpenAI is told about their usage.
Purpose and value: New page rather than a section on the BYOK page. The information architecture already gives each BYO inference path its own page (
grok-subscription.mdx,custom-inference-endpoint.mdx,custom-routers.mdx), and this one carries a connect procedure, a billing model, an error-recovery flow, and four troubleshooting entries — more than a section on an already-long page can hold. The BYOK page gets a comparison-table row and a corrected note instead.Content type: Feature documentation (combined). The reader needs both the concept (what gets billed where) and the procedure (how to connect).
Scenarios covered: Connecting; what the plan does and does not cover; recovering when OpenAI refuses a request; disconnecting; account-link, email-verification, permission, and account-mismatch failures. Excluded: whether a connected plan applies to cloud agent runs — see Unverified claims.
Gate verdict
Gate 1 + Gate 2 + Gate 3. Full evidence is recorded in the ledger row on the bookkeeping PR. In brief:
chatgpt_subscriptionis in thedefault = [...]feature list (app/Cargo.toml:694), bridged atapp/src/features.rs:512-513, and in none ofRELEASE_FLAGS/PREVIEW_FLAGS/DOGFOOD_FLAGS. GA.warp_agent_page.rs:5676-5791, buttons at5199-5221).on_chatgpt_connect_failed,warp_agent_page.rs).Changes
agents/inference/chatgpt-subscription.mdxagents/inference/bring-your-own-api-key.mdx— corrected the now-false "No" note, added a comparison-table row and two cross-referencesagents/getting-started/faqs.mdx— distinguished supported ChatGPT subscriptions from unsupported Claude subscriptionssupport-and-community/plans-and-billing/platform-credits.mdx— added connected ChatGPT plans to local customer-supplied inferencesrc/sidebar.ts— one entry under Inference & providersReviewer
suggest_reviewers.pyresolved only@warpdotdev/oss-maintainers(the root rule) for every source file behind this finding. Teams are never requested, so this PR opens with no requested reviewer.Deferred findings from this run
POST /factory-setup/azure-devops-creation-requests— removed from warp-server; dead map entry pruned on the bookkeeping PR.potentially_stale_docs— unchanged andstyle_lint-owned.no, recorded on the bookkeeping PR.changelog_reviewreturned zero for the third consecutive release becausechangelog/2026.mdxlags behind the weekly-release PRs. Worth a skill fix.Unverified claims
No
{/* VERIFY */}markers are present in the changed content.Documentation risk
Risk: engineering-review-required
Rationale: New feature page making billing, credential-handling, data-sharing, and plan-eligibility claims.
Source files consulted: warp/app/Cargo.toml@c157d411d988, warp/app/src/features.rs@c157d411d988, warp/app/src/settings_view/warp_agent_page.rs@c157d411d988, warp/app/src/ai/llms.rs@c157d411d988, warp/app/src/ai/agent/mod.rs@c157d411d988, warp/app/src/ai/blocklist/view_util.rs@c157d411d988, warp/app/src/workspace/one_time_modal_model.rs@c157d411d988, warp/app/src/workspace/view/chatgpt_plan_modal/view.rs@c157d411d988, warp/crates/ai/src/api_keys.rs@c157d411d988, warp-server/logic/chatgpt_sign_in.go@0e74ab46c1c3, warp-server/logic/chatgpt_subscription_errors.go@0e74ab46c1c3, warp-server/logic/ai/llm/user_api_keys/util.go@0e74ab46c1c3, warp-server/logic/ai/llm/llm_output/subscription_sharing.go@0e74ab46c1c3, warp-server/logic/ai/model_choices/model_choices.go@0e74ab46c1c3, warp-server/logic/ai/multi_agent/request/model_config.go@0e74ab46c1c3, warp-server/model/types/ai/internal_llm_types.go@0e74ab46c1c3, warp-server/router/handlers/generate_multi_agent_output.go@0e74ab46c1c3, warp-server/logic/ai/ambient_agents/billing/platform.go@0e74ab46c1c3, warp-server/model/types/billing.go@0e74ab46c1c3
Requested engineering reviewers: none (only a team resolved)
Engineering review status: pending
Docs override: none
Co-Authored-By: Oz oz-agent@warp.dev