claudekit / updates / claude-code-2-1-145
[ PATCH · ]

Claude Code 2.1.145

Added `claude agents --json` to list live sessions as JSON for scripting. `claude_code.tool` OTEL spans now include `agent_id` and `parent_agent_id` so background subagent traces nest correctly. Status line JSON now includes GitHub repo and PR information, and `/plugin` Discover/Browse screens show commands, agents, skills, hooks, and MCP/LSP servers before installation. Fixed a permission-prompt bypass where bare variable assignments to non-allowlisted environment variables in Bash were auto-approved, along with MCP slash-command validation, spinner freezing after terminal resize, and the Read tool now returning a truncated PARTIAL view instead of a hard error on oversized reads.

Official announcement →

This article is a summary based on official documentation.

What changed

Claude Code 2.1.145 shipped on May 19, 2026. The additions are scripting- and observability-oriented: claude agents --json exposes live sessions as structured JSON, claude_code.tool OTEL spans now carry agent_id and parent_agent_id with corrected trace parenting, the status line JSON input now carries detected GitHub repo and PR information, /plugin Discover and Browse show a plugin’s commands, agents, skills, hooks, and MCP/LSP servers before install, and Stop / SubagentStop hook input includes new background_tasks and session_crons fields. The rest of the release closes a permission-prompt bypass in Bash, cleans up MCP slash command validation errors, fixes terminal, /plugin, and claude agents rendering issues, restores deterministic task list ordering, handles non-ASCII Agent Teams headers, and resolves an infinite-loop case in skills using context: fork. The Read tool also gains a PARTIAL view fallback when a whole-file read exceeds the token limit.

New features

  • claude agents --json — list live Claude sessions as JSON for scripting

    Live sessions were only visible through the interactive picker, so tools like tmux-resurrect, status bars, and session pickers had no structured way to read session state. claude agents --json now emits the live session list as JSON for scripts to consume.

  • agent_id and parent_agent_id attributes on claude_code.tool OTEL spans, with corrected trace parenting

    Background subagent spans did not nest under the dispatching Agent tool span, so traces lost the parent-child relationship between caller and callee. This release adds agent_id and parent_agent_id attributes and fixes trace parenting so background subagent spans nest under the dispatching Agent tool span.

  • Status line JSON input now includes GitHub repo and PR information when detected

    Detected GitHub repo and PR context wasn’t passed to status line JSON input, so custom status lines had to collect the same information separately. The status line JSON input now includes the detected GitHub repo and PR information.

  • /plugin Discover and Browse — show commands, agents, skills, hooks, and MCP/LSP servers before installation

    Before this release, the contents of a plugin (commands, agents, skills, hooks, MCP/LSP servers) only became visible after install. Discover and Browse now show those entries up front so the install decision is made with full visibility.

  • Stop and SubagentStop hook input now includes background_tasks and session_crons fields

    Stop / SubagentStop hook input lacked the context needed to reason about lingering background work, so hooks had no built-in signal for live background tasks or session crons. Hook input now includes background_tasks and session_crons fields.

Improvements

  • claude agents terminal tab title now shows the awaiting-input count

    When the tab was in the background, identifying which agent needed input required switching to it. The tab title now shows the awaiting-input count, so an alt-tabbed window tells you when an agent needs attention.

  • Slash command and @-mention suggestion list supports mouse hover and click in fullscreen mode

    In fullscreen mode the suggestion list was keyboard-only — mouse hover and click did nothing. Both are now supported.

  • Read tool returns a truncated first page with a “PARTIAL view” notice instead of a hard error when a whole-file read exceeds the token limit

    A whole-file read that exceeded the token limit returned a hard error, which broke the calling turn and required a separate split-read attempt. The Read tool now returns a truncated first page with a “PARTIAL view” notice, so follow-up reads can continue naturally.

Bug fixes

Security

  • Permission-prompt bypass where bare variable assignments to non-allowlisted environment variables in Bash commands were auto-approved — the permission prompt is now shown as expected.

MCP, plugins & skills

  • MCP prompt slash commands showing raw server validation errors when a required argument is omitted — the error now names the missing argument and shows expected usage.
  • claude plugin validate not flagging skills: entries that point at a file instead of a directory — now flagged, with a suggestion to use the parent directory.
  • Infinite loop where a skill using context: fork could repeatedly re-invoke itself instead of running — fixed.

Terminal & UI

  • Spinner and elapsed-time display freezing until a keypress after the terminal was resized or refocused — display updates resume immediately.
  • Voice push-to-talk not working in the agent view’s reply pane — fixed.
  • Task lists rendering in random order when several tasks are created at once — ordering is now consistent.
  • Stale “Failed to install Anthropic marketplace” banner shown when the marketplace is already installed — fixed.

Windows & platform

  • Cross-project resume hint failing in default Windows PowerShell 5.1 — Windows now uses ; as the command separator.

Git / PR & /review

  • PR badge in the footer not updating immediately after gh pr create and other PR-state-changing commands run in-session — now updates immediately.
  • /review using a deprecated projectCards GraphQL query that errored on repos with Classic Projects — fixed.

Agent Teams & API

  • Agent Teams teammates with non-ASCII names failing every API call due to invalid header encoding — headers are now encoded correctly so API calls succeed.

Notes

  • Bash bare-assignment bypass closed: bare variable assignments to non-allowlisted environment variables in Bash commands no longer slip past the permission prompt. Scripts that relied on the implicit auto-approval need to allow those variables explicitly in the permission policy.
  • claude agents --json: a new script-facing surface for live session state. Useful for tmux-resurrect, status bars, and session pickers that previously had to scrape the interactive picker.
  • OTEL trace parenting restored: if background subagent traces were previously detached from the dispatching Agent tool span, they now nest correctly under it, so trace analysis lines up with the actual call structure.
  • /plugin content preview pre-install: Discover and Browse expose a plugin’s commands, agents, skills, hooks, and MCP/LSP servers before install, so evaluation no longer requires installing first.
  • Read tool PARTIAL view: whole-file reads exceeding the token limit no longer fail the turn — they return a truncated first page with a “PARTIAL view” notice, reducing the need to pre-split large files defensively.