Claude docs changes for March 20th, 2026 [diff]
Executive Summary
- Channels (research preview): Claude Code v2.1.80 introduces a new
--channelsflag 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
effortfrontmatter, enabling fine-grained control over model reasoning depth per task - Plugin marketplace via settings: Plugins can now be declared inline in
settings.jsonusingsource: '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.SetJSONAPI 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_limitsfield to statusline scripts for displaying Claude.ai rate limit usage (5-hour and 7-day windows withused_percentageandresets_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
effortfrontmatter 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
/effortto 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 installcommand 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
--resumedropping 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-controlappearing 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 whenremote-settings.jsonwas 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
--channelsflag for enabling named channel servers to push messages into a session. [line 36] [Source] - Added
--dangerously-load-development-channelsflag for testing custom channels not on the approved allowlist. [line 38] [Source]
Hooks [Source]
- Added
resumeas a newSessionEndmatcher value, triggered when a session is switched via interactive/resume. [line 187] [Source] - Clarified that the SessionEnd hook timeout applies to session switching via
/resumein addition to exit and/clear. [line 1916] [Source]
Index [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
effortfield. [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]
Remote control [Source]
Settings [Source]
- Added
channelsEnabledmanaged 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 fixif trust isn't accepted. [line 655] [Source]
Sub-agents [Source]
- Added
effortas a supported frontmatter field for subagents, overriding the session effort level when that subagent is active. [line 253] [Source] - Updated
--agentsflag documentation to includeeffort,background, andisolationas 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_controlon 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]