Skip to content

Add Local Claude / Local Codex subscription options to /agent (use my own CLI, not Warp credits) #9609

Description

@sydneyfunnelAIO

Pre-submit Checks

Describe the solution you'd like?

Add "Local Claude (subscription)" and "Local Codex (subscription)" options to the /agent model picker. When selected, the agent runs the user's prompt through the locally-installed claude (Claude Code) or codex (OpenAI Codex CLI) binary on disk, using whatever auth those CLIs already have set up — i.e. the user's existing Claude / OpenAI subscription. No Warp credits should be consumed for these turns.

The conversation surface in Warp should look identical to the cloud-agent path:

  • Tool calls (Bash, Read, Edit, Grep, Glob, Write) render as the same Warp ToolCall cards used by cloud agents
  • Multi-turn context is preserved (prior turns visible to the CLI)
  • The top-bar AI status pill shows the active local model + token usage (e.g. Local Claude · 23.4k / 200k)
  • A bare clear in the terminal also resets the local-agent conversation so the CLI's context window matches what the user sees

This is opt-in per-conversation via the model picker; the existing cloud-agent flow is untouched when those options aren't selected.

Is your feature request related to a problem? Please describe.

I already pay for a Claude (Claude Code) subscription and an OpenAI (Codex) subscription. When I use Warp's /agent mode, every turn also burns Warp request credits — even though my own subscriptions could already cover the call. Today there's no way to tell /agent "for this conversation, use my local CLI instead of Warp's backend."

The closest existing options don't solve this:

  • BYO API key (Enable BYO Provider (OpenAI API key) on my Warp account #7422) — uses raw API tokens metered by token, not the flat-rate subscription quota I'm already paying for. Doesn't help if I'm subscribed to Claude Pro / ChatGPT Plus.
  • Cloud agent with model selector — still routes through Warp and counts against Warp credits.
  • Just running claude / codex directly in the terminal — works, but loses Warp's UI affordances: tool-call cards, scrollable conversation history, terminal-block context auto-injection, attachments.

The user need is "give me Warp's /agent UX, but billed against my own existing subscription, not Warp's."

Additional context

I have a working prototype on a feature branch (ahmet/local-subscription-agent) gated behind a local_subscription_agent cargo feature. Implementation sketch:

  • New synthetic model ids local-claude / local-codex registered in app/src/ai/llms.rs
  • Dispatch in app/src/ai/agent/api/impl.rs short-circuits local-* ids to a synthetic ResponseStream backed by a tokio task
  • Task spawns the CLI as a subprocess (claude -p - / codex exec --json -), writes the prompt envelope to stdin, parses stream-json output line-by-line
  • Each tool_use / tool_result content block (Claude) and command_execution item (Codex) is translated into the matching RunShellCommand / ReadFiles / Grep / FileGlobV2 / ApplyFileDiffs proto so the UI is identical to cloud
  • Stderr is drained in a background task to avoid the 64 KB pipe deadlock with --verbose
  • Token usage per turn is recorded in a global OnceLock<RwLock<Option<LocalUsageSnapshot>>> slot read by the workspace top-bar

Happy to file a spec PR (specs/GH<this-issue>/product.md + tech.md) once the issue is triaged with ready-to-spec if maintainers want the full spec flow before reviewing the code.

Operating system (OS)

macOS

How important is this feature to you?

4

Metadata

Metadata

Assignees

No one assigned

    Labels

    area:agentAgent workflows, conversations, prompts, cloud mode, and AI-specific UI.area:billingPricing, plans, subscriptions, payment, and billing management.enhancementNew feature or request.repro:highThe report includes enough evidence that the issue appears highly reproducible.triagedIssue has received an initial automated triage pass.

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions