Claude Code 2.1.105

💡

Plugin background monitors, PreCompact hook, automatic API stream-stall recovery, and improvements to /doctor.

🔗 Official announcement →

This article is a summary based on official documentation.

What changed

Claude Code 2.1.105 (April 13, 2026) expands the plugin surface (background monitors, PreCompact hook) and fixes several API, rendering, and plugin issues.

New features

  • Plugin background monitors — plugins can declare monitors in the manifest and auto-start them at session start or on skill invocation. Great for continuous tasks (build watcher, log tailing) owned by a plugin.

  • PreCompact hook — runs before context compaction. Exit 2 or emit {"decision":"block"} to prevent compaction (or take action — e.g. persist important state — before it runs).

  • EnterWorktree path param — switch to an existing worktree instead of always creating a new one.

  • /proactive alias — alias for /loop, reads more naturally for autonomous repeats.

Improvements

  • Stream-stall recovery — if the API streams go silent for 5+ minutes, Claude Code aborts the stream and retries in non-streaming mode. Much better on flaky networks.
  • Network error messages — immediate retry message instead of a silent spinner.
  • Long single-line writes — UI truncates cleanly (e.g. minified JSON).
  • /doctor layout — status icons plus f to let Claude auto-fix reported issues.
  • WebFetch — strips <style> and <script> from fetched pages so CSS-heavy sites don’t blow the content budget.
  • MCP large output — hints jq filters for JSON, Read-tool chunk sizes for text.

Notable fixes

Rendering

  • Empty screen on prompt wrap in long conversations.
  • Leading whitespace strip broke ASCII art and indented diagrams.
  • Bash output broke with Python rich/loguru clickable file links.
  • alt+enter and Ctrl+J newline (2.1.100 regression).
  • Dim 16-color palette over SSH/mosh (Ghostty, Kitty, Alacritty).

Plugins and marketplace

  • package.json deps weren’t installed after plugin install/update.
  • Auto-update could corrupt the official marketplace if the plugin process held files.

MCP and sessions

  • Headless/remote-trigger first turn missed tools from async-connecting MCP servers.
  • stdio MCP servers writing non-JSON could freeze sessions.
  • 429 responses now render as a clean message instead of raw JSON.

Other

  • Image attachments no longer dropped from queued messages.
  • Queued prompts no longer lost in focus mode.
  • One-shot scheduled tasks no longer repeat.

Notes

  • Plugin authors: check out monitors and the PreCompact hook.
  • The stream-stall recovery is a big reliability win on VPN or overseas connections.