[DOCS] Status line docs missing `effort.level` and `thinking.enabled` stdin fields

Status Fixed / completed
Maintainer reply None cached
Activity 4 comments · opened Apr 24, 2026 · closed Apr 29, 2026

Documentation Type

Incorrect/outdated documentation

Documentation Location

https://code.claude.com/docs/en/statusline

Section/Topic

"Available data" and "Full JSON schema" in the status line documentation

Current Documentation

The docs currently say:

Claude Code sends the following JSON fields to your script via stdin: | model.id, model.display_name | Current model identifier and display name | | cwd, workspace.current_dir | Current working directory. Both fields contain the same value; workspace.current_dir is preferred for consistency with workspace.project_dir. | | workspace.project_dir | Directory where Claude Code was launched, which may differ from cwd if the working directory changes during a session | ... | agent.name | Agent name when running with the --agent flag or agent settings configured |

It also says:

Your status line command receives this JSON structure via stdin: ``json { "cwd": "/current/working/directory", "session_id": "abc123...", "model": { "id": "claude-opus-4-6", "display_name": "Opus" }, ..., "agent": { "name": "security-reviewer" } } ``

The page does not document the newly added effort.level or thinking.enabled fields anywhere in the available-data table or JSON schema.

What's Wrong or Missing?

Changelog v2.1.119 says: "Status line: stdin JSON now includes effort.level and thinking.enabled".

The status line page presents the stdin payload as an explicit field list plus a full JSON schema, but both are missing these new fields. That makes the page outdated for users who want to show the current effort level or thinking state in a custom status line.

Suggested Improvement

Update https://code.claude.com/docs/en/statusline to document both new fields in the two places that describe the stdin payload:

  1. Add rows to the "Available data" table for:
  • effort.level — current effort level for the session/turn
  • thinking.enabled — whether thinking is currently enabled
  1. Add both fields to the "Full JSON schema" example.
  2. If either field can be absent or null in some situations, document that in the "Fields that may be absent" or "Fields that may be null" notes.

Impact

Medium - Makes feature difficult to understand

Additional Context

Affected Pages:

| Page | Context |
|------|---------|
| https://code.claude.com/docs/en/statusline | Primary status line stdin field reference and JSON schema |

Total scope: 1 page affected

Source: Changelog v2.1.119

Exact changelog entry: Status line: stdin JSON now includes effort.level and thinking.enabled

View original on GitHub ↗

4 Comments

github-actions[bot] · 5 months ago

Found 3 possible duplicate issues:

  1. https://github.com/anthropics/claude-code/issues/42016
  2. https://github.com/anthropics/claude-code/issues/9488
  3. https://github.com/anthropics/claude-code/issues/38392

This issue will be automatically closed as a duplicate in 3 days.

  • If your issue is a duplicate, please close it and 👍 the existing issue instead
  • To prevent auto-closure, add a comment or 👎 this comment

🤖 Generated with Claude Code

coygeek · 5 months ago

Small follow-up with a working example for anyone who lands here before the docs are updated.

These are not new settings.json keys. They are extra fields in the JSON payload passed to your statusLine.command via stdin.

~/.claude/settings.json

{
  "statusLine": {
    "type": "command",
    "command": "~/.claude/statusline.sh"
  }
}

~/.claude/statusline.sh

#!/usr/bin/env bash
input=$(cat)

model=$(echo "$input" | jq -r '.model.display_name // ""')
effort=$(echo "$input" | jq -r '.effort.level // empty')
thinking=$(echo "$input" | jq -r '.thinking.enabled // empty')

case "$thinking" in
  true) thinking_label="thinking on" ;;
  false) thinking_label="thinking off" ;;
  *) thinking_label="" ;;
esac

[ -n "$model" ] && echo "🤖 $model"

if [ -n "$effort" ] || [ -n "$thinking_label" ]; then
  line=""
  [ -n "$effort" ] && line="$effort"
  if [ -n "$thinking_label" ]; then
    [ -n "$line" ] && line="$line · "
    line="$line$thinking_label"
  fi
  echo "$line"
fi

With stdin like:

{
  "effort": { "level": "high" },
  "thinking": { "enabled": true }
}

that renders:

🤖 Opus 4.7
high · thinking on

Using // empty is important because these fields can be absent depending on session state / model support.

coygeek · 5 months ago

Issue #52616 Verification

Title: [DOCS] Status line docs missing effort.level and thinking.enabled stdin fields
Issue Date: 2026-04-24
Verification Date: 2026-04-29
Status: RESOLVED

---

Issue Summary

This issue reports that the status line documentation omitted the newly added effort.level and thinking.enabled stdin fields from both the Available data table and the Full JSON schema example.

---

Verification Results

Claim 1: The Available data table is missing effort.level and thinking.enabled

Status: RESOLVED

At https://code.claude.com/docs/en/statusline, lines 170-171, the table now includes both fields: "effort.level | Current reasoning effort (low, medium, high, xhigh, or max). Reflects the live session value, including mid-session /effort changes. Absent when the current model does not support the effort parameter" and "thinking.enabled | Whether extended thinking is enabled for the session".

Verdict: The Available data section now documents both reported missing stdin fields.

---

Claim 2: The Full JSON schema is missing effort.level and thinking.enabled

Status: RESOLVED

At https://code.claude.com/docs/en/statusline, lines 231-236, the schema now includes both objects: "effort": { "level": "high" } and "thinking": { "enabled": true }. The same page also documents absence conditions at lines 263-268, including "effort: appears only when the current model supports the reasoning effort parameter".

Verdict: The Full JSON schema has been updated to include both fields, and the page now documents the absence condition for effort.

---

Current State

| Claim | Status |
|-------|--------|
| Available data table was missing effort.level and thinking.enabled | RESOLVED |
| Full JSON schema was missing effort.level and thinking.enabled | RESOLVED |

---

Suggested Fix

N/A - issue has been resolved.

---

References

---

Conclusion & Recommendation

Primary Concern: The issue reported that the status line stdin field reference had not been updated to include effort.level and thinking.enabled.

Resolution Status: RESOLVED

Recommendation: CLOSE

The current status line page now documents both fields in the Available data table and in the Full JSON schema. The reported documentation gap no longer appears in the current docs.

---

github-actions[bot] · 5 months ago

This issue has been automatically locked since it was closed and has not had any activity for 7 days. If you're experiencing a similar issue, please file a new issue and reference this one if it's relevant.