Include effort level in statusline JSON data

Resolved 💬 1 comment Opened Mar 17, 2026 by nakanishi-ryota-canuu Closed Mar 17, 2026

Summary

The statusline script receives JSON data via stdin, but the current effort level is not included in the data. This makes it impossible for custom statusline scripts to display the current effort setting.

Current behavior

When changing the effort level via /model, the statusline JSON only contains:

{
  "model": {
    "id": "claude-opus-4-6[1m]",
    "display_name": "Opus 4.6 (1M context)"
  },
  "context_window": { ... },
  "cost": { ... },
  ...
}

No effort level field is present. Additionally, /model only changes the effort for the current session and does not update settings.json, so there is no reliable way for the statusline script to detect the current effort level.

Expected behavior

The statusline JSON should include the current session's effort level, e.g.:

{
  "model": {
    "id": "claude-opus-4-6[1m]",
    "display_name": "Opus 4.6 (1M context)",
    "effort_level": "max"
  },
  ...
}

This would allow custom statusline scripts to display and react to effort level changes made via /model.

Workaround attempted

Reading effortLevel from ~/.claude/settings.json in the statusline script — but this doesn't reflect session-scoped changes made via /model.

View original on GitHub ↗

This issue has 1 comment on GitHub. Read the full discussion on GitHub ↗