Status line
Status line
.claude/settings.json
Vendor docs
stdin
| name | type | required | meaning | concept | |
|---|---|---|---|---|---|
| agent.name | string |
Agent name when running with the `--agent` flag or agent settings configured
|
docs ↗ | ||
| cache_write_tokens | string |
All tokens written to the cache this session, the first request's initial write included
|
docs ↗ | ||
| caching_observed | string |
Whether any response this session reported cache tokens. `false` means prompt caching is off, or your provider or gateway doesn't report it
|
docs ↗ | ||
| context_window.context_window_size | string |
Maximum context window size in tokens. 200000 by default, or 1000000 for models with extended context.
|
docs ↗ | ||
| context_window.current_usage | string |
Token counts from the last API call, described in context window fields
|
docs ↗ | ||
| context_window.remaining_percentage | string |
Pre-calculated percentage of context window remaining
|
docs ↗ | ||
| context_window.total_input_tokens | string |
Token counts currently in the context window, from the most recent API response. Input includes cache reads and writes
|
docs ↗ | ||
| context_window.total_output_tokens | string |
Token counts currently in the context window, from the most recent API response. Input includes cache reads and writes
|
docs ↗ | ||
| context_window.used_percentage | string |
Pre-calculated percentage of context window used
|
docs ↗ | ||
| cost.total_api_duration_ms | string |
Total time spent waiting for API responses in milliseconds
|
docs ↗ | ||
| cost.total_cost_usd | string |
Estimated session cost in USD, computed client-side at list price unless a `modelPricing` table is in effect. May differ from your actual bill. Resets to \$0 when `/clear` starts a new session. Before v2.1.211, the total carried over after `/clear`
|
docs ↗ | ||
| cost.total_duration_ms | string |
Total wall-clock time since the session started, in milliseconds
|
docs ↗ | ||
| cost.total_lines_added | string |
Lines of code changed
|
docs ↗ | ||
| cost.total_lines_removed | string |
Lines of code changed
|
docs ↗ | ||
| cwd | string |
Current working directory. Both fields contain the same value; `workspace.current_dir` is preferred for consistency with `workspace.project_dir`.
|
docs ↗ | ||
| effort.level | string |
Current reasoning effort (`low`, `medium`, `high`, `xhigh`, or `max`). Reflects the live session value, including mid-session `/effort` changes. Ultracode is not a distinct level and reports as `xhigh`. Absent when the current model does not support the effort parameter
|
docs ↗ | ||
| exceeds_200k_tokens | string |
Whether the total token count (input, cache, and output tokens combined) from the most recent API response exceeds 200k. This is a fixed threshold regardless of actual context window size.
|
docs ↗ | ||
| expected_rebuilds | string |
Cache rebuilds that followed a compaction or a clearing of old tool results
|
docs ↗ | ||
| expires_at | string |
When the cached prefix leaves its TTL and goes cold, in epoch seconds. `null` when the last response reported no cache tokens
|
docs ↗ | ||
| fast_mode | string |
Whether fast mode is enabled for the session
|
docs ↗ | ||
| hit_ratio | string |
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
|
docs ↗ | ||
| last_miss_at | string |
When the last miss happened, in epoch seconds. `null` while the session has no misses
|
docs ↗ | ||
| miss_recache_tokens | string |
Tokens written to the cache by the requests counted as misses
|
docs ↗ | ||
| misses | string |
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
|
docs ↗ | ||
| model.display_name | string |
Current model identifier and display name
|
docs ↗ | ||
| model.id | string |
Current model identifier and display name
|
docs ↗ | ||
| output_style.name | string |
Name of the current output style
|
docs ↗ | ||
| pr.kind | string |
`mr` when `pr` describes a GitLab merge request. Absent for GitHub pull requests, so scripts written before this field keep working. For a merge request, Claude Code sets `review_state` to `approved` when GitLab reports it mergeable, `pending` for any other open state, and `draft` for a draft. Requires Claude Code v2.1.234 or later
|
docs ↗ | ||
| pr.number | string |
Open pull request for the current branch. Mirrors the PR badge in the footer. In a repository with a GitLab remote, Claude Code fills these fields from the branch's open merge request instead, so `pr.number` is the merge request number. Merge request data requires Claude Code v2.1.234 or later. Absent when not in a git repository, until a pull request or merge request is found, or once it merges or closes
|
docs ↗ | ||
| pr.review_state | string |
Review status of the open PR: `approved`, `pending`, `changes_requested`, or `draft`. May be independently absent even when `pr` is present
|
docs ↗ | ||
| pr.url | string |
Open pull request for the current branch. Mirrors the PR badge in the footer. In a repository with a GitLab remote, Claude Code fills these fields from the branch's open merge request instead, so `pr.number` is the merge request number. Merge request data requires Claude Code v2.1.234 or later. Absent when not in a git repository, until a pull request or merge request is found, or once it merges or closes
|
docs ↗ | ||
| prompt_cache | string |
The session's prompt cache statistics for the main conversation: hit ratio, misses, and whether the cache is warm. See prompt cache fields for every field. Absent until the main conversation's first API response. Requires Claude Code v2.1.251 or later
|
docs ↗ | ||
| prompt_id | string |
UUID identifying the user prompt currently being processed. Matches the `prompt.id` attribute on OpenTelemetry events. Absent until the first user input. Requires Claude Code v2.1.196 or later
|
docs ↗ | ||
| rate_limits.five_hour.resets_at | string |
Unix epoch seconds when the 5-hour or 7-day rate limit window resets
|
docs ↗ | ||
| rate_limits.five_hour.used_percentage | string |
Percentage of the 5-hour or 7-day rate limit consumed, from 0 to 100
|
docs ↗ | ||
| rate_limits.seven_day.resets_at | string |
Unix epoch seconds when the 5-hour or 7-day rate limit window resets
|
docs ↗ | ||
| rate_limits.seven_day.used_percentage | string |
Percentage of the 5-hour or 7-day rate limit consumed, from 0 to 100
|
docs ↗ | ||
| rate_limits.spend_limit.resets_at | string |
Behind a Claude apps gateway, the percentage used of the spend limit that applies to you, and the Unix epoch seconds when its period resets. The percentage runs from 0 to 100, or above 100 once you exceed the limit. Requires Claude Code v2.1.251 or later
|
docs ↗ | ||
| rate_limits.spend_limit.used_percentage | string |
Behind a Claude apps gateway, the percentage used of the spend limit that applies to you, and the Unix epoch seconds when its period resets. The percentage runs from 0 to 100, or above 100 once you exceed the limit. Requires Claude Code v2.1.251 or later
|
docs ↗ | ||
| recache_tokens_if_cold | string |
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
|
docs ↗ | ||
| requests | string |
API requests recorded for the main conversation this session
|
docs ↗ | ||
| session_id | string |
Unique session identifier
|
docs ↗ | ||
| session_name | string |
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, such as `my-app-3f`, doesn't populate this field. Absent when the session has neither a custom name nor an AI-generated title
|
docs ↗ | ||
| thinking.enabled | string |
Whether extended thinking is enabled for the session
|
docs ↗ | ||
| transcript_path | string |
Path to conversation transcript file
|
docs ↗ | ||
| ttl | string |
Cache lifetime of the current cached prefix: `"5m"` or `"1h"`
|
docs ↗ | ||
| version | string |
Claude Code version
|
docs ↗ | ||
| vim.mode | string |
Current vim mode (`NORMAL`, `INSERT`, `VISUAL`, or `VISUAL LINE`) when vim mode is enabled
|
docs ↗ | ||
| warm | string |
Whether the cached prefix is still within its TTL. `false` when the last response reported no cache tokens, even while `caching_observed` is `true`
|
docs ↗ | ||
| workspace.added_dirs | string |
Additional directories added via `/add-dir` or `--add-dir`. Empty array if none have been added
|
docs ↗ | ||
| workspace.current_dir | string |
Current working directory. Both fields contain the same value; `workspace.current_dir` is preferred for consistency with `workspace.project_dir`.
|
docs ↗ | ||
| workspace.git_worktree | string |
Git worktree name when the current directory is inside a linked worktree created with `git worktree add`. Absent in the main working tree. Populated for any git worktree, unlike `worktree.*`, which is present only while the session is in a worktree session
|
docs ↗ | ||
| workspace.project_dir | string |
Directory where Claude Code was launched, which may differ from `cwd` if the working directory changes during a session
|
docs ↗ | ||
| workspace.repo.host | string |
Repository identity parsed from the `origin` remote, for example `"github.com"`, `"anthropics"`, `"claude-code"`. Absent outside a git repository or when no `origin` remote is configured
|
docs ↗ | ||
| workspace.repo.name | string |
Repository identity parsed from the `origin` remote, for example `"github.com"`, `"anthropics"`, `"claude-code"`. Absent outside a git repository or when no `origin` remote is configured
|
docs ↗ | ||
| workspace.repo.owner | string |
Repository identity parsed from the `origin` remote, for example `"github.com"`, `"anthropics"`, `"claude-code"`. Absent outside a git repository or when no `origin` remote is configured
|
docs ↗ | ||
| worktree.branch | string |
Git branch name for the worktree (for example, `"worktree-my-feature"`). Absent for hook-based worktrees
|
docs ↗ | ||
| worktree.name | string |
Name of the active worktree. Present only while the session is in a worktree session
|
docs ↗ | ||
| worktree.original_branch | string |
Git branch checked out before entering the worktree. Absent for hook-based worktrees
|
docs ↗ | ||
| worktree.original_cwd | string |
The directory Claude was in before entering the worktree
|
docs ↗ | ||
| worktree.path | string |
Absolute path to the worktree directory
|
docs ↗ |