[FEATURE] VS Code extension: render MCP `claude/channel` push notifications in the native panel (parity with the terminal TUI)
Preflight Checklist
- [x] I have searched existing requests and this feature hasn't been requested yet
- [x] This is a single feature request (not multiple features)
Problem Statement
Summary
The Claude Code VS Code extension's native panel does not surface inbound notifications/claude/channel messages from MCP servers that declare the experimental claude/channel capability. The interactive terminal CLI renders them fine. Please bring the native panel to parity so channel pushes appear there too.
Environment
- Claude Code VS Code extension v2.1.215 (win32-x64), Windows 11, Bun 1.3.14
- Account has channels enabled (confirmed — the terminal path works)
- MCP server under test: claude-peers (peer-to-peer messaging between Claude Code instances)
What works ✅
Running the CLI in a terminal with:
claude --dangerously-load-development-channels server:claude-peers
renders <channel source="claude-peers" …> notifications in-session, in real time. Verified end to end: another Claude instance pushed a message via the MCP server, it appeared in the session immediately, and the agent responded — round-trip in ~13s.
What doesn't ❌
The same MCP server, same flag, launched by the VS Code extension's native panel (stream-json mode) does not surface the notification.
I confirmed the failure is specifically at the panel's rendering layer, not upstream:
- The extension launches the native binary as
claude.exe --output-format stream-json --input-format stream-json …. Using the extension's ownclaudeCode.claudeProcessWrappersetting, I injected--dangerously-load-development-channels server:claude-peersinto that launch (verified present in the process args). - The MCP server's inbound-message poll loop then consumed the message and emitted
notifications/claude/channel(the broker marked the message delivered). - Nothing appeared in the panel. No agent response. Tested across a fresh window and a full VS Code restart — identical result each time.
So: channel loads, server pushes, but the native webview drops notifications/claude/channel on the floor. The interactive TUI, with the identical account and flag, renders it.
Why it matters
Channels enable real-time, event-driven workflows — most notably coordination between multiple concurrent Claude Code sessions (e.g. one Claude messaging another as they work in different repos). Today that only works if you leave the polished native panel for the terminal TUI, which pushes VS Code users toward dropping the extension entirely for this functionality.
Proposed Solution
Request
Have the native panel subscribe to and render notifications/claude/channel — with the same allowlist / --channels / --dangerously-load-development-channels gating the CLI already uses. Even a minimal inline render (like the TUI's <channel> block) would unblock these use cases. Ideally also expose channel selection as an extension setting so users don't need a launch-arg wrapper at all.
Alternative Solutions
I wrote a wrapper for Claude Code and added that to the setting for the extension so that it added --dangerously-load-development-channels when calling Claude Code but no channel messages arrived. The same wrapper works fine outside of VS Code.
Priority
High - Significant impact on productivity
Feature Category
CLI commands and flags
Use Case Example
_No response_
Additional Context
_No response_