Skip to content

Claude 5h limit drains about 1.7x faster in T3 Code than in the Claude Code CLI (Anthropic Agent SDK metering) #24649

Closed

Description

@t3dotgg

Note

🤖 Claude Opus 5.5 writing on behalf of Theo

This is the single tracking issue for reports that Claude's 5-hour limit drains faster in T3 Code than in Claude Code directly. It replaces #7338 and #7565.

Summary

Tweet: https://x.com/theo/status/2114166439813017873

Numbers

5h meter A/B: interactive TUI vs T3 Code vs claude -p

One Max account. Nothing else used it during the test, and it started at 0% (5h) and 0% (weekly). The workload was the same for each run. "5h cost" is % of the 5h window per million cache-write tokens.

Run (in order) 5h meter 5h cost Weekly
Interactive TUI #1 +7% 1.14 +2%
T3 Code #1 +13% 1.94 +2%
claude -p +9% 1.83 +2%
T3 Code #2 +16% 1.97 +2%
Interactive TUI #2 +7% 1.11 +2%

The two T3 Code runs also include 23M to 28M cache reads. After we remove those, T3 Code still costs about 1.6x the TUI. The order was reversed for the second set of runs, and the result did not change.

Because the weekly meter is not affected, users fill the 5h window with about 14% of their weekly limit used in T3 Code, versus about 29% in the CLI.

What we ruled out

  • Cache TTL. T3 Code gets the 1h prompt cache for signed-in users. We checked this in the transcripts.
  • Cache breaks. Neither arm rewrote the cache. This includes 8-minute gaps, and a 35-minute gap where T3 Code closed the Claude process and resumed it.
  • Token volume. The first request from T3 Code is smaller than the TUI's (34.6k prefix tokens vs 47.0k).
  • Permission mode. The TUI in bypass mode costs the normal TUI rate.

Upstream

I will update this issue when Anthropic responds. The T3 Code cache issue after Stop is separate and is tracked in #10955.

Activity

  1. added
    bugSomething is broken or behaving incorrectly.
    triage:keep-openKeeps this PR open despite not necessarily passing the contribution guide fully
    on Oct 25, 2026
  2. self-assigned this
    on Oct 25, 2026
  3. 0oAstro commented on Oct 29, 2026

    @0oAstro

    all good ;)

  4. t3dotgg commented on Nov 2, 2026

    @t3dotgg
    MemberAuthor

    🤐

  5. A5harib commented on Nov 2, 2026

    @A5harib

    Note

    Claude Opus 5.5 writing on behalf of A5harib.

    Post-merge check of #28410 on a Pro plan: with the t3-code entrypoint, the 5h meter now drains at the same rate as the interactive TUI.

    Setup. Windows 10, Claude Code 2.1.316, Opus, T3 Code nightly 0.1.7-nightly.20261102.4080. The account started the window at 0%. Each arm ran 8 turns of the same prompt shape, "Write an original 2500-word short story about ", with no tools. The SDK arms used claude -p with CLAUDE_CODE_ENTRYPOINT set. The TUI arm drove a real interactive claude in a pty. A local capture server confirmed the labels on the wire: the TUI sends (external, cli) and the other arms send sdk-ts or t3-code. The T3 Code session I ran this from also sent t3-code, so the nightly applies the fix.

    The meter is five_hour.utilization from /api/oauth/usage, read after each arm. Cost is weighted tokens from the session transcripts (input 1, cache write 1.25, cache read 0.1, output 5), in millions.

    Arm Meter Cost % per unit vs TUI
    TUI (cli) 30 → 36 (+6) 0.427 14.1 1.00x
    t3-code (run 2) 36 → 41 (+5) 0.386 13.0 0.92x
    t3-code (run 1) 1 → 7 (+6) 0.443 13.5 0.96x
    sdk-ts, the old default (derived) about +17 0.392 about 43 about 3x

    The sdk-ts row is derived. A meter read between the TUI and sdk-ts arms of run 1 failed with a 429, so I subtracted the TUI share using run 2's TUI rate. Run 1 moved 7 → 30 across both arms.

    Caveats.

    • The meter only reports whole percents, so each ratio is good to about ±20%.
    • No other session on the account made requests during the test windows. The T3 thread driving the test made 0.04 units of requests during the first t3-code arm. I left that in.

    The sdk-ts penalty looks larger now than the 1.6x to 1.7x measured in October. Anyone still on stable v0.1.6, which predates #28410, should see that larger gap until they update or set the entrypoint themselves.

  6. arandomhooman commented on Nov 2, 2026

    @arandomhooman

    This is a great example of why you should read what your clanker writes before you let it send it.

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

Metadata

Metadata

Assignees

Labels

bugSomething is broken or behaving incorrectly.triage:keep-openKeeps this PR open despite not necessarily passing the contribution guide fullyupstream

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions