Tools · · 2 min read

Claude Code is 3x faster to first token: what gzip and pre-started cloud sessions change, and when to set CLAUDE_CODE_GZIP_REQUEST_BODIES=0

Anthropic says the p90 wait before Claude Code's first token, excluding model time, fell from 4.07 s to 1.33 s locally and from 16.99 s to 6.00 s in cloud sessions between August and October 2026. Here is where the speedup comes from, which network setups skip the compression part, and the one environment variable to know if a corporate proxy breaks.


On October 16, 2026, the ClaudeDevs account posted that Claude Code “now gzips the conversation it sends on every turn, so it reaches the model faster,” and that cloud sessions “start up as soon as you start typing.” No new model is involved. The question for builders: how much faster is it, does my setup actually get the speedup, and what do I do if compression breaks something on my network?

The numbers Anthropic published

The chart attached to the post measures the wait before the first token at p90, comparing August with October 2026. For the Claude Code rows this excludes model time, so it is the overhead around the request, not generation speed.

SurfaceAugustOctoberSpeedup
Claude Code, local sessions4.07 s1.33 s3x
Claude Code, cloud sessions16.99 s6.00 s2.8x
Claude chat and Cowork3.36 s2.17 s1.5x
Claude API (p50, including model time)1.53 s1.01 s1.5x

Note the API row uses a different measure (p50 time to first token, model time included), so don’t compare it directly with the Claude Code rows.

Where the compression shipped

The client side of this is in the Claude Code changelog for 2.1.300 (published to npm on October 14, 2026, UTC): large requests to api.anthropic.com now use gzip compression “even when telemetry is disabled.” If you are on an older build, update first; the current latest is 2.1.302, covered in our 2.1.302 upgrade notes.

Which setups skip compression

Per the environment variable reference, Claude Code compresses large request bodies on direct connections and skips compression when you:

  • send requests through a proxy,
  • configure a client certificate (mTLS), or
  • set NODE_EXTRA_CA_CERTS.

So if your company routes Claude Code through a proxy or a custom CA, the gzip part of this improvement doesn’t apply to you by default. That is documented behavior, not a bug.

When to turn it off

The same reference documents CLAUDE_CODE_GZIP_REQUEST_BODIES. Setting it to 0 turns off gzip for Claude API, telemetry and artifact publish request bodies sent to api.anthropic.com. Anthropic’s advice is to use it when a TLS-inspecting proxy that Claude Code can’t detect mishandles compressed requests:

export CLAUDE_CODE_GZIP_REQUEST_BODIES=0

The network configuration docs add context: TLS-inspection proxies work without extra configuration when their root certificate is in the OS trust store and the runtime can read it. The native installer can always read that store; npm installs need Node 22.15 or later. If requests start failing right after an update, run claude --debug (logs go to ~/.claude/debug/<session-id>.txt) and check the Proxy row in /status before reaching for the variable.

Codex made a similar move the same day

A couple of hours later, Tibo (@thsottiaux), who works on Codex at OpenAI, posted that Codex and Work now give more effective usage by “reusing context across subagents, keeping context cached longer,” and routing requests to raise cache hits. That change targets usage limits rather than latency, but both are request-plumbing work on the agent side. For how the two agents compare on a real task, see our write-up of a Claude Code vs Codex science-pipeline test.

Bottom line

Update to 2.1.300 or later and you get compressed requests on a direct connection automatically. Behind a detected proxy, client certificate or NODE_EXTRA_CA_CERTS, compression is skipped on its own. Set CLAUDE_CODE_GZIP_REQUEST_BODIES=0 only when an inspecting proxy Claude Code can’t detect chokes on compressed requests. To cut cost and context on top of latency, our guide to reducing Claude Code token overhead covers the other levers.

Source: ClaudeDevs on X — Claude Code first-token latency