{"version":"2.1.312","anchor":"per-turn-shell-cpu-accounting-fields-added-to-the-result-sch","canonical_anchor":"per-turn-shell-cpu-accounting-fields-added-to-the-result-sch","heading":"Shell CPU time is now reported per turn","tier":"internal","area":"Telemetry","scope":"individual","heads_up":false,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.312\/e\/per-turn-shell-cpu-accounting-fields-added-to-the-result-sch","release_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.312","markdown":"### Shell CPU time is now reported per turn\n\nClaude Code now records how much CPU time Bash and Monitor shells used in each turn, read from a Linux cgroup, in optional internal fields\n\n**What**\n\nClaude Code could already read shell CPU time from the cgroup file `cpuacct.usage`. A cgroup is a Linux feature that groups processes and tracks the resources they use. That figure is now captured at the start of each turn and reported per turn. A turn is one round of Claude working on your request.\n\n- The turn timing now carries a `shellCpu` object with `turnMs` and `sinceLastResult`.\n\n- The result schema gains three optional internal fields: `shell_cpu_ms_turn`, `shell_cpu_ms_since_last_result` and `shell_wall_ms_since_last_result`. These are CPU time for the turn, CPU time since the last result, and elapsed clock time since the last result.\n\n- The figures cover shells started by the Bash and Monitor tools, the tools Claude uses to run commands.\n\n- They come from a Linux cgroup v1 `cpuacct` group. When there is no such group, the fields are left out.\n\n**Why**\n\nThis is internal measurement of how much processing time shell commands use. You do not see it in the interface and nothing about how commands run changes.\n\n- Area: Telemetry\n- Tier: Under the hood\n- Useful: 2\/5\n- Signal: 2\/5\n- Scope: individual\n- Heads-up: no"}