Claude docs changes for March 20th, 2026 [diff]

Executive Summary

  • Channels (research preview): Claude Code v2.1.80 introduces a new --channels flag that lets MCP servers push events into a running session, enabling Telegram/Discord chat bridges and webhook-driven automation
  • Effort level for skills & subagents: Skills and subagents can now override the session effort level via effort frontmatter, enabling fine-grained control over model reasoning depth per task
  • Plugin marketplace via settings: Plugins can now be declared inline in settings.json using source: 'settings', without needing a separate marketplace
  • Prompt caching documentation overhauled: The explanation of how cache breakpoints, writes, and the 20-block lookback window work has been rewritten for clarity, with a new "common mistake" example
  • Go SDK updated to v1.27.1: Now requires Go 1.23+, and adds a new param.SetJSON API for round-trip deserialization of param types

New Claude Code versions

2.1.80

New features

  • Added --channels (research preview) — allow MCP servers to push messages into your session from Telegram, Discord, webhooks, or custom sources
  • Added rate_limits field to statusline scripts for displaying Claude.ai rate limit usage (5-hour and 7-day windows with used_percentage and resets_at)
  • Added source: 'settings' plugin marketplace source — declare plugin entries inline in settings.json
  • Added CLI tool usage detection to plugin tips, in addition to file pattern matching
  • Added effort frontmatter support for skills and slash commands to override the model effort level when invoked

Existing feature improvements

  • Improved responsiveness of @ file autocomplete in large git repositories
  • Improved /effort to show what auto currently resolves to, matching the status bar indicator
  • Improved /permissions — Tab and arrow keys now switch tabs from within a list
  • Improved background tasks panel — left arrow now closes from the list view
  • Simplified plugin install tips to use a single /plugin install command instead of a two-step flow
  • Reduced memory usage on startup in large repositories (~80 MB saved on 250k-file repos)

Major bug fixes

  • Fixed --resume dropping parallel tool results — sessions with parallel tool calls now restore all tool_use/tool_result pairs instead of showing [Tool result missing] placeholders
  • Fixed voice mode WebSocket failures caused by Cloudflare bot detection on non-browser TLS fingerprints
  • Fixed 400 errors when using fine-grained tool streaming through API proxies, Bedrock, or Vertex
  • Fixed /remote-control appearing for gateway and third-party provider deployments where it cannot function
  • Fixed managed settings (enabledPlugins, permissions.defaultMode, policy-set env vars) not being applied at startup when remote-settings.json was cached from a prior session

Claude Code changes

New Documents

Channels [Source]

New file documenting the Channels research preview feature (requires v2.1.80+). Channels are MCP servers that push events into a running Claude Code session, enabling Claude to react to external events while you're away from the terminal. Covers setup for Telegram and Discord bots (including pairing/allowlist security), a localhost demo via fakechat, enterprise controls (channelsEnabled managed setting), and the --channels CLI flag.

Channels reference [Source]

New developer reference for building custom channel servers. Explains the MCP claude/channel capability, notification format (notifications/claude/channel), a full walkthrough for building a webhook receiver, how to add a two-way reply tool, sender allowlist gating to prevent prompt injection, the --dangerously-load-development-channels flag for local testing, and how to package channels as plugins.

Changed documents

CLI reference [Source]

  • Added --channels flag for enabling named channel servers to push messages into a session. [line 36] [Source]
  • Added --dangerously-load-development-channels flag for testing custom channels not on the approved allowlist. [line 38] [Source]

Hooks [Source]

  • Added resume as a new SessionEnd matcher value, triggered when a session is switched via interactive /resume. [line 187] [Source]
  • Clarified that the SessionEnd hook timeout applies to session switching via /resume in addition to exit and /clear. [line 1916] [Source]

Index [Source]

  • Added Channels to the "I want to…" quick reference table. [line 211] [Source]

MCP [Source]

  • Added a note that MCP servers can act as Channels to push events into a session. [line 14] [Source]
  • Added Miro to the popular MCP servers list. [line 91] [Source]
  • Reordered several MCP server entries (Miro moved up, PubMed/Supabase swapped, Ahrefs/NetSuite swapped, ZoomInfo/Scholar Gateway positions changed).

Model config [Source]

  • Added that skill and subagent frontmatter can now override effort level via the effort field. [line 155] [Source]
  • Clarified the effort level precedence order: env var > configured level > model default, with frontmatter overriding session level but not env var. [line 157] [Source]

Overview [Source]

  • Added Channels to the "I want to…" quick reference table. [line 211] [Source]

Remote control [Source]

  • Added Channels as a related resource in the "Related resources" section. [line 189] [Source]

Settings [Source]

  • Added channelsEnabled managed setting that controls whether Team/Enterprise users can receive channel messages. [line 174] [Source]

Statusline [Source]

  • Added a "Workspace trust required" troubleshooting section: the status line command only runs after accepting the workspace trust dialog, and shows statusline skipped · restart to fix if trust isn't accepted. [line 655] [Source]

Sub-agents [Source]

  • Added effort as a supported frontmatter field for subagents, overriding the session effort level when that subagent is active. [line 253] [Source]
  • Updated --agents flag documentation to include effort, background, and isolation as supported JSON fields. [line 204] [Source]
  • Memory scope option label changed from "Enable" to "User scope" in the configure memory UI step. [line 130] [Source]

API changes

Changed documents

Extended thinking [Source]

  • Minor wording improvements throughout (no new information added — phrasing polished for clarity).

Fast mode [Source]

  • Availability classification updated from "research preview" to "beta: research preview" in title and description. [line 1] [Source]

Overview (Build with Claude) [Source]

  • Added a new "Feature availability" section defining the classification stages: Beta, Generally available (GA), Deprecated, and Retired — with a note that beta features use a beta header. [line 15] [Source]

Prompt caching [Source]

  • Rewrote the "How automatic prefix checking works" section with three clearer principles: cache writes happen only at the breakpoint; cache reads look backward for prior writes; the lookback window is 20 blocks. [line 208] [Source]
  • Replaced the abstract lookback example with a concrete "growing conversation" example (Turn 1 → Turn 2 → Turn 3) showing exactly how cache entries accumulate. [line 219] [Source]
  • Added a new "Common mistake" section explaining why placing cache_control on a block that changes every request (e.g. timestamps) results in zero cache hits. [line 225] [Source]
  • Updated the key takeaway and "When to use multiple breakpoints" section to reflect the corrected mental model. [line 232] [Source]
  • Updated troubleshooting tip to explain that the lookback only finds prior writes, not stable content. [line 432] [Source]

Remote MCP servers [Source]

  • Reordered several MCP server entries in the directory listing (Miro/Granola, PubMed/Supabase, ClickUp/Indeed positions swapped, and others).

Go SDK [Source]

  • Updated pinned version from v1.19.0 to v1.27.1. [line 20] [Source]
  • Updated minimum Go version requirement from 1.22 to 1.23. [line 24] [Source]
  • Added a new "Deserializing params" section explaining how to use param.SetJSON (available since v1.20.0) for round-trip deserialization of param types, with a full code example. [line 156] [Source]