Follow Discord
Sweep 22 Sep 2026 · 17:19Z Build v2.1.280 501 read Stable v2.1.267 Latest v2.1.280 Next v2.1.280 Feeds RSS JSON llms.txt Unofficial
One change · claude-code

Customize your status line changed

statusline

Nearest release: v2.1.251, published 8 hours before this site recorded the change. Shown because the two are within 24 hours of each other. Nothing here says the release caused the edit.

Recorded here
Lines+42added
Lines−0removed
From line 143 where the diff opens
First seen 14 Aug 2026 this site's first read of the page
Recorded edits18to this page, all time

### Prompt cache fields

The whole hunk

from line 143, old and new numbered
/
lines
from line 143
143143* You change the `command` in your `statusLine` settings
144144* A [`refreshInterval`](#manually-configure-a-status-line) timer elapses, if you set one
145145* A [rate-limit window](#rate-limit-usage) in the data your script last received reaches its `resets_at` time
146* A warm [prompt cache](#prompt-cache-fields) in the data your script last received reaches its `expires_at` time
146147 
147148Claude Code debounces updates at 300ms, so rapid changes batch together and your script runs once after the changes stop. A change to the `command` itself skips the debounce: Claude Code runs the new command right away. If a new update triggers while your script is still running, Claude Code cancels the in-flight script. If you edit your script, the changes appear the next time an update trigger re-runs it.
148149 
from line 188
187188| `thinking.enabled` | Whether extended thinking is enabled for the session |
188189| `rate_limits.five_hour.used_percentage`, `rate_limits.seven_day.used_percentage` | Percentage of the 5-hour or 7-day rate limit consumed, from 0 to 100 |
189190| `rate_limits.five_hour.resets_at`, `rate_limits.seven_day.resets_at` | Unix epoch seconds when the 5-hour or 7-day rate limit window resets |
191| `prompt_cache` | The session's [prompt cache](/docs/en/prompt-caching) statistics for the main conversation: hit ratio, misses, and whether the cache is warm. See [prompt cache fields](#prompt-cache-fields) for every field. Absent until the main conversation's first API response. Requires Claude Code v2.1.251 or later |
190192| `session_id` | Unique session identifier |
191193| `session_name` | Session name. Uses the custom name set with the `--name` flag or `/rename` when one exists, otherwise the AI-generated session title. The [default display name](/docs/en/sessions#name-your-sessions), such as `my-app-3f`, doesn't populate this field. Absent when the session has neither a custom name nor an AI-generated title |
192194| `prompt_id` | UUID identifying the user prompt currently being processed. Matches the [`prompt.id` attribute on OpenTelemetry events](/docs/en/monitoring-usage#event-correlation-attributes). Absent until the first user input. Requires Claude Code v2.1.196 or later |
from line 256
254256 }
255257 },
256258 "exceeds_200k_tokens": false,
259 "prompt_cache": {
260 "warm": true,
261 "caching_observed": true,
262 "ttl": "1h",
263 "expires_at": 1738429200,
264 "requests": 14,
265 "misses": 2,
266 "expected_rebuilds": 1,
267 "hit_ratio": 0.91,
268 "cache_write_tokens": 352000,
269 "miss_recache_tokens": 310200,
270 "last_miss_at": 1738425230,
271 "recache_tokens_if_cold": 45000
272 },
257273 "fast_mode": false,
258274 "effort": {
259275 "level": "high"
from line 320
304320 * `pr`: appears only while an open PR or GitLab merge request is found for the current branch, and is removed once it merges or closes. `pr.review_state` and `pr.kind` may be independently absent
305321 * `worktree`: appears only while the session is in a [worktree session](/docs/en/worktrees). When present, `branch` and `original_branch` may also be absent for hook-based worktrees
306322 * `rate_limits`: appears only for Claude.ai subscribers (Pro/Max) after the first API response in the session. Each window (`five_hour`, `seven_day`) may be independently absent, and Claude Code drops a window once its `resets_at` time passes. Use `jq -r '.rate_limits.five_hour.used_percentage // empty'` to handle absence gracefully.
323 * `prompt_cache`: appears after the main conversation's first API response. See [prompt cache fields](#prompt-cache-fields)
307324 
308325 **Fields that may be `null`**:
309326 
from line 351
334351If you calculate context percentage manually from `current_usage`, use the same input-only formula to match `used_percentage`.
335352 
336353The `current_usage` object is `null` before the first API call in a session, and again immediately after `/compact` until the next API call repopulates it.
354 
355### Prompt cache fields
356 
357The `prompt_cache` object summarizes how the session's main conversation is using the [prompt cache](/docs/en/prompt-caching). Claude Code computes it from the cache token counts in the API's responses, so it works on every provider.
358 
359The object appears after the main conversation's first API response. Claude Code doesn't count subagent requests in these statistics. Requires Claude Code v2.1.251 or later.
360 
361The table lists each field with its meaning. Timestamps are Unix epoch seconds, the same unit as `rate_limits.*.resets_at`. A short status line usually shows one or two of these; `warm` and `hit_ratio` summarize the cache state most directly.
362 
363| Field | Description |
364| ------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
365| `warm` | Whether the cached prefix is still within its TTL. `false` when the last response reported no cache tokens, even while `caching_observed` is `true` |
366| `caching_observed` | Whether any response this session reported cache tokens. `false` means prompt caching is off, or your provider or gateway doesn't report it |
367| `ttl` | [Cache lifetime](/docs/en/prompt-caching#cache-lifetime) of the current cached prefix: `"5m"` or `"1h"` |
368| `expires_at` | When the cached prefix leaves its TTL and goes cold, in epoch seconds. `null` when the last response reported no cache tokens |
369| `requests` | API requests recorded for the main conversation this session |
370| `misses` | Requests that re-processed content the cache already held: more than 5% and at least 2,000 tokens of what the request could have read from cache, with no compaction or tool-result clearing to explain the shortfall in cache reads |
371| `expected_rebuilds` | Cache rebuilds that followed a compaction or a clearing of old tool results |
372| `hit_ratio` | Cache read tokens as a fraction of all input tokens this session, from 0 to 1. The denominator counts cache reads, cache writes, and uncached input. `null` while those counts are all zero |
373| `cache_write_tokens` | All tokens written to the cache this session, the first request's initial write included |
374| `miss_recache_tokens` | Tokens written to the cache by the requests counted as misses |
375| `last_miss_at` | When the last miss happened, in epoch seconds. `null` while the session has no misses |
376| `recache_tokens_if_cold` | Tokens the next request re-caches if the cache has gone cold by then. `null` right after a compaction or a clearing of old tool results, until the next request records the rewritten conversation's size |
377 
378Claude Code shows the same statistics in the terminal, on the [`/usage` command's `Prompt cache (main)` line](/docs/en/costs#prompt-cache-statistics).
337379 
338380## Examples
339381 
Feedback