Claude Code v2.1.80 — Channels, Plugin Simplification, and a Bug Fix Sprint#
Published on March 20, 2026
Part of the Claude Code Version Tracker series. | Official Env Vars | Official Changelog
Claude Code v2.1.80 ships no new environment variables compared to v2.1.79, but it's one of the most feature-dense point releases in recent memory. The headline is --channels — a research preview that lets external messaging platforms like Telegram and Discord push messages into a running Claude Code session — alongside a simplified plugin installation flow, an 80MB memory reduction for large repos, and seven bug fixes spanning --resume, voice mode, and managed settings.
What Changed#
| v2.1.79 | v2.1.80 | |
|---|---|---|
| Environment variables | 182 | 182 (no change) |
| Model IDs | 16 | 16 (no change) |
| Feature gates | 41 | 41 (no change) |
| Dynamic configs | 29 | 30 (+1) |
| Slash commands | 22 | 22 (no change) |
The new dynamic config (spinner_words, id 2157446543) moves the spinner word list into a server-controlled config, allowing Anthropic to update loading spinner vocabulary without shipping a new binary.
Key Changes in This Release#
--channels — Messaging Platform Integration (Research Preview)#
The --channels flag is not an MCP protocol primitive — it's a product-level feature built on top of MCP that turns Claude Code into a persistent agent reachable from external messaging platforms. When you start a session with --channels, Claude Code spins up a polling service that monitors configured channel plugins (currently Telegram and Discord from the claude-plugins-official allowlist) and injects incoming messages directly into the active session.
This is architecturally similar to what OpenClaw (the open-source AI coding agent for messaging apps, formerly Moltbot) provides — VentureBeat framed it as an "OpenClaw killer"[1] — but with Anthropic's official backing, safety guardrails, and simpler setup. During the research preview, --channels only accepts plugins from Anthropic's maintained allowlist and requires claude.ai login (Console/API key auth is not supported).
The practical use case: message your Telegram bot with a coding question, and your running Claude Code session picks it up, executes against your local repo, and responds in the chat. Events only arrive while the session is open, so this requires a persistent terminal or background process.
Simplified Plugin Installation#
Plugin installation previously required a two-step flow. v2.1.80 collapses this into a single /plugin install command. The release also adds CLI tool usage detection to plugin tips (not just file pattern matching) and introduces a source: 'settings' marketplace source so you can declare plugin entries inline in settings.json rather than fetching from a registry. This last change is particularly relevant for enterprise deployments — organizations can bundle approved plugins directly in managed settings files without requiring marketplace access, solving a real distribution problem for air-gapped or policy-restricted environments.
Bug Fix Sprint#
Seven fixes landed in this release, several addressing real pain points:
| Fix | Impact |
|---|---|
--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. This was a data-loss bug for anyone resuming complex sessions. |
| Voice mode WebSocket failures | Cloudflare bot detection was rejecting non-browser TLS fingerprints. Fixed by adjusting the TLS handshake profile. |
| Fine-grained tool streaming 400 errors | The eager_input_streaming parameter that Claude Code sends to tool definitions was causing 400 errors on API proxies, Bedrock, and Vertex deployments. This is the same class of issue previously worked around with CLAUDE_CODE_ENABLE_FINE_GRAINED_TOOL_STREAMING=0 (see #32765). v2.1.80 makes fine-grained streaming work correctly across all deployment targets, meaning the env var workaround should no longer be necessary. |
| Managed settings not applied on startup | Enterprise-critical: enabledPlugins, permissions.defaultMode, and policy-set env vars from remote-settings.json were silently ignored when cached from a prior session. |
| Startup memory reduction (~80MB) | On 250k-file repositories, startup memory is reduced by approximately 80MB. Combined with v2.1.79's 18MB general reduction, large-repo users see nearly 100MB less memory pressure across two releases. |
What These Tell Us#
Claude Code is becoming a persistent, reachable agent — not just a CLI tool. The --channels flag is the most architecturally significant addition in several releases. Rather than extending the MCP protocol itself (which has no "channels" primitive), Anthropic built a product-level integration layer that lets messaging platforms push into a live session. The competition with OpenClaw is telling: the open-source community proved the demand for "message your AI agent from your phone," and Anthropic responded with an official, sandboxed implementation. The research preview label and allowlist restriction suggest they're iterating on safety and protocol design before opening it up, but the direction is clear — Claude Code sessions will increasingly be long-lived processes that accept input from multiple sources.
The plugin ecosystem is being streamlined for adoption. Three separate plugin-related changes in one release — simplified install, inline settings declarations, and CLI-based tip detection — signal that adoption metrics aren't where the team wants them. The source: 'settings' option is the most interesting for enterprises: it means organizations can define approved plugins in managed settings files without marketplace access, which unblocks air-gapped deployments.
Cross-provider compatibility is maturing — but Bedrock still has its gotchas. The fine-grained tool streaming fix closes a loop that started in v2.1.72 when eager_input_streaming was prematurely sent to Bedrock (#32765, #26941). Users previously needed the CLAUDE_CODE_ENABLE_FINE_GRAINED_TOOL_STREAMING=0 workaround documented in our complete env vars list. With this fix and fine-grained streaming now GA across all platforms, that workaround should be retired. That said, Bedrock users remain a release or two behind on feature parity — the voice mode WebSocket fix in this release, for example, only applies to direct API connections. We'd love to see /voice support come to Bedrock as well, given how many enterprise teams run Claude Code through AWS. Combined with seven bug fixes across voice mode, --resume, and managed settings, this release shows the team actively chasing edge cases across the full deployment surface — direct API, Bedrock, Vertex, and enterprise proxy configurations alike.
This analysis is conducted for independent security research and interoperability purposes under fair use principles. All trademarks belong to their respective owners. The information presented here documents publicly observable behavior of installed software and is not intended to circumvent any technological protection measures, infringe on intellectual property rights, or encourage unauthorized use. Use these findings at your own discretion.
Related Versions#
- Claude Code v2.1.79 — 3 New Environment Variables — subprocess sandboxing, startup optimization
- Claude Code v2.1.78 — 2 New Environment Variables — plugin persistence, security hardening
- Claude Code v2.1.77 — 1 New Environment Variable — cowork memory guidelines, 25+ bug fixes
- Claude Code v2.1.76 — 3 New Environment Variables — MCP elicitation, workspace host paths
- Claude Code v2.1.75 — 2 New Environment Variables — auto-compact window, plugin options
Related: Context Window Management Guide | Claude Code Productivity Tips | The Agentic Engineering Playbook